You are viewing a plain text version of this content. The canonical link for it is here.
Posted to gitbox@yetus.apache.org by aw...@apache.org on 2022/04/07 00:16:13 UTC

[yetus] branch main updated: YETUS-1156. [April 2022] Update Dependencies (#250)

This is an automated email from the ASF dual-hosted git repository.

aw pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/yetus.git


The following commit(s) were added to refs/heads/main by this push:
     new c24da738 YETUS-1156. [April 2022] Update Dependencies (#250)
c24da738 is described below

commit c24da738ea63225eb0b877e4653cfac1ee6a294f
Author: Allen Wittenauer <aw...@apache.org>
AuthorDate: Wed Apr 6 17:16:08 2022 -0700

    YETUS-1156. [April 2022] Update Dependencies (#250)
---
 .codespellignorelines                              |  2 -
 .codespellrc                                       |  2 +-
 .yetus/detsecrets-ignored-hashes.txt               |  2 +
 asf-site-src/Dockerfile                            |  4 +-
 asf-site-src/Gemfile.lock                          | 42 ++++++++++----------
 asf-site-src/source/contribute/releases.html.md    |  2 +-
 .../precommit/plugins/detsecrets.html.md           |  6 +--
 precommit/src/main/shell/core.d/00-yetuslib.sh     |  2 +-
 precommit/src/main/shell/core.d/01-common.sh       |  2 +-
 precommit/src/main/shell/plugins.d/detsecrets.sh   |  4 ++
 precommit/src/main/shell/plugins.d/github.sh       |  2 +-
 precommit/src/main/shell/plugins.d/hadolint.sh     |  4 ++
 precommit/src/main/shell/plugins.d/revive.sh       |  5 +++
 precommit/src/main/shell/plugins.d/shellcheck.sh   |  3 +-
 .../src/main/shell/test-patch-docker/Dockerfile    | 46 +++++++++++-----------
 15 files changed, 71 insertions(+), 57 deletions(-)

diff --git a/.codespellignorelines b/.codespellignorelines
index 399bd3c5..a73b7c59 100644
--- a/.codespellignorelines
+++ b/.codespellignorelines
@@ -12,7 +12,5 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-      rouge (~> 3.2)
-    rouge (3.26.1)
   unless FileUtils.uptodate?(output, docs) &&
          FileUtils.uptodate?(output, [SHELLDOCS])
diff --git a/.codespellrc b/.codespellrc
index cb9f1201..91673b68 100644
--- a/.codespellrc
+++ b/.codespellrc
@@ -14,6 +14,6 @@
 # limitations under the License.
 
 [codespell]
-skip = *.css.*,*.js,./.git/*,./asf.yaml
+skip = *.css.*,*.js,./.git/*,./asf.yaml,./asf-site-src/Gemfile.lock
 ignore-regex = class\=\"nd\"
 
diff --git a/.yetus/detsecrets-ignored-hashes.txt b/.yetus/detsecrets-ignored-hashes.txt
index feff2e49..08b12d52 100644
--- a/.yetus/detsecrets-ignored-hashes.txt
+++ b/.yetus/detsecrets-ignored-hashes.txt
@@ -24,3 +24,5 @@ d8e18255635efa84e79bb9eaf2ffad3371a95288
 5dfd74f05dcaf3b8d23bb351915be66b4d2628a4
 1a1ce1ac1c87cc884ba59133f405f0d45b201d1f
 3b3c84f10a63cb8e95b93ea5f46e02d885153f5d
+c267b646441a206d44803d8cb20896c4a166cac2
+f4d95a7d14e9c4c69afe28d54743222acbe04b74
diff --git a/asf-site-src/Dockerfile b/asf-site-src/Dockerfile
index d7200578..2471f00b 100644
--- a/asf-site-src/Dockerfile
+++ b/asf-site-src/Dockerfile
@@ -80,10 +80,10 @@ ENV GEM_HOME ${BUNDLE_PATH}
 # on re-launches
 # hadolint ignore=DL3028
 RUN gem install bundler \
-        middleman:'4.4.0' \
+        middleman:'4.4.2' \
         middleman-livereload \
         middleman-syntax \
-        nokogiri:1.10.10 \
+        nokogiri:1.13.3 \
         sassc:2.4.0 \
         tzinfo-data
 
diff --git a/asf-site-src/Gemfile.lock b/asf-site-src/Gemfile.lock
index cfa9ad59..f049f095 100644
--- a/asf-site-src/Gemfile.lock
+++ b/asf-site-src/Gemfile.lock
@@ -9,7 +9,7 @@ GIT
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (6.1.4.1)
+    activesupport (6.1.5)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -17,33 +17,33 @@ GEM
       zeitwerk (~> 2.3)
     addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
-    backports (3.21.0)
+    backports (3.23.0)
     coffee-script (2.4.1)
       coffee-script-source
       execjs
     coffee-script-source (1.12.2)
-    concurrent-ruby (1.1.9)
+    concurrent-ruby (1.1.10)
     contracts (0.13.0)
     dotenv (2.7.6)
-    em-websocket (0.5.2)
+    em-websocket (0.5.3)
       eventmachine (>= 0.12.9)
-      http_parser.rb (~> 0.6.0)
+      http_parser.rb (~> 0)
     erubis (2.7.0)
     eventmachine (1.2.7)
     execjs (2.8.1)
     fast_blank (1.0.1)
-    fastimage (2.2.5)
-    ffi (1.15.4)
+    fastimage (2.2.6)
+    ffi (1.15.5)
     haml (5.2.2)
       temple (>= 0.8.0)
       tilt
     hamster (3.0.0)
       concurrent-ruby (~> 1.0)
     hashie (3.6.0)
-    http_parser.rb (0.6.0)
+    http_parser.rb (0.8.0)
     i18n (1.6.0)
       concurrent-ruby (~> 1.0)
-    kramdown (2.3.1)
+    kramdown (2.3.2)
       rexml
     kramdown-parser-gfm (1.1.0)
       kramdown (~> 2.0)
@@ -52,15 +52,15 @@ GEM
       rb-fsevent (~> 0.9, >= 0.9.4)
       rb-inotify (~> 0.9, >= 0.9.7)
     memoist (0.16.2)
-    middleman (4.4.0)
+    middleman (4.4.2)
       coffee-script (~> 2.2)
       haml (>= 4.0.5)
       kramdown (>= 2.3.0)
-      middleman-cli (= 4.4.0)
-      middleman-core (= 4.4.0)
-    middleman-cli (4.4.0)
+      middleman-cli (= 4.4.2)
+      middleman-core (= 4.4.2)
+    middleman-cli (4.4.2)
       thor (>= 0.17.0, < 2.0)
-    middleman-core (4.4.0)
+    middleman-core (4.4.2)
       activesupport (>= 6.1, < 7.0)
       addressable (~> 2.4)
       backports (~> 3.6)
@@ -89,24 +89,24 @@ GEM
       em-websocket (~> 0.5.1)
       middleman-core (>= 3.3)
       rack-livereload (~> 0.3.15)
-    minitest (5.14.4)
+    minitest (5.15.0)
     padrino-helpers (0.15.1)
       i18n (>= 0.6.7, < 2)
       padrino-support (= 0.15.1)
       tilt (>= 1.4.1, < 3)
     padrino-support (0.15.1)
-    parallel (1.21.0)
+    parallel (1.22.1)
     parslet (2.0.0)
     public_suffix (4.0.6)
     rack (2.2.3)
     rack-livereload (0.3.17)
       rack
-    rb-fsevent (0.11.0)
+    rb-fsevent (0.11.1)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
     ref (2.0.0)
     rexml (3.2.5)
-    rouge (3.26.1)
+    rouge (3.28.0)
     sassc (2.4.0)
       ffi (~> 1.9)
     servolux (0.13.0)
@@ -114,7 +114,7 @@ GEM
     therubyracer (0.12.3)
       libv8 (~> 3.16.14.15)
       ref
-    thor (1.1.0)
+    thor (1.2.1)
     tilt (2.0.10)
     toml (0.3.0)
       parslet (>= 1.8.0, < 3.0.0)
@@ -123,7 +123,7 @@ GEM
     uglifier (3.2.0)
       execjs (>= 0.3.0, < 3)
     webrick (1.7.0)
-    zeitwerk (2.4.2)
+    zeitwerk (2.5.4)
 
 PLATFORMS
   ruby
@@ -138,4 +138,4 @@ DEPENDENCIES
   wdm (~> 0.1.0)
 
 BUNDLED WITH
-   2.2.27
+   2.3.10
diff --git a/asf-site-src/source/contribute/releases.html.md b/asf-site-src/source/contribute/releases.html.md
index ed4da515..515ac6eb 100644
--- a/asf-site-src/source/contribute/releases.html.md
+++ b/asf-site-src/source/contribute/releases.html.md
@@ -145,7 +145,7 @@ Depending on how candidate evaluation goes, you may end up performing these step
 
 1. Update JIRA version release date. Browse to the JIRA project version management page <https://issues.apache.org/jira/plugins/servlet/project-config/YETUS/versions>, mark the version as 'Release', and set the release date. Our generated release notes will use this date.
 1. Update your `${HOME}/.m2/settings.xml` file to include the Maven snapshot information as indicated on <https://www.apache.org/dev/publishing-maven-artifacts.html>
-1. Build release artifacts. Run the following from the *release staging branch* created by the `release/initial-patches.sh` script and run these commands:
+1. Build release artifacts. Run the following from the _release staging branch_ created by the `release/initial-patches.sh` script and run these commands:
 
    ```bash
    $ git checkout YETUS-XXX-release
diff --git a/asf-site-src/source/documentation/in-progress/precommit/plugins/detsecrets.html.md b/asf-site-src/source/documentation/in-progress/precommit/plugins/detsecrets.html.md
index b4e63bd7..83249b06 100644
--- a/asf-site-src/source/documentation/in-progress/precommit/plugins/detsecrets.html.md
+++ b/asf-site-src/source/documentation/in-progress/precommit/plugins/detsecrets.html.md
@@ -27,7 +27,7 @@ Test
 
 # Description
 
-Runs IBM's version of [detect-secrets](https://github.com/IBM/detect-secrets).
+Runs [detect-secrets](https://github.com/yelp/detect-secrets).
 
 NOTE: This test also requires a working Python 3.4+ interpreter available on the path.  It will be called first
 as `python3` and secondarily as `python`.
@@ -48,8 +48,8 @@ None
 
 # Docker Notes
 
-While the original project came from Yelp, the IBM version is provided due to instability with the Yelp version.
-That may change in the future depending upon how the project shakes out.
+The IBM version is based upon 0.13 and is slightly incompatible with the Yelp version.  The docker container includes
+the Yelp version.  Using the IBM version may result in some weirdness.
 
 # Developer Notes
 
diff --git a/precommit/src/main/shell/core.d/00-yetuslib.sh b/precommit/src/main/shell/core.d/00-yetuslib.sh
index d41561fa..5d940062 100755
--- a/precommit/src/main/shell/core.d/00-yetuslib.sh
+++ b/precommit/src/main/shell/core.d/00-yetuslib.sh
@@ -108,7 +108,7 @@ function yetus_relative_dir
 {
   declare dir=$1
   declare path=$2
-  declare p=${path#${dir}}
+  declare p=${path#"${dir}"}
 
   if [[ ${#p} -eq ${#path} ]]; then
     echo "${p}"
diff --git a/precommit/src/main/shell/core.d/01-common.sh b/precommit/src/main/shell/core.d/01-common.sh
index 4acfedb2..d130866e 100755
--- a/precommit/src/main/shell/core.d/01-common.sh
+++ b/precommit/src/main/shell/core.d/01-common.sh
@@ -488,7 +488,7 @@ function delete_test_type
 function replace_test_type
 {
   if verify_plugin_enabled "${1}" && verify_plugin_enabled "${2}"; then
-    ENABLED_PLUGINS=${ENABLED_PLUGINS%$2}
+    ENABLED_PLUGINS=${ENABLED_PLUGINS%"$2"}
     delete_test_type "$2"
     delete_test "$2"
     return 0
diff --git a/precommit/src/main/shell/plugins.d/detsecrets.sh b/precommit/src/main/shell/plugins.d/detsecrets.sh
index 68d7f41a..0a9ebfc5 100755
--- a/precommit/src/main/shell/plugins.d/detsecrets.sh
+++ b/precommit/src/main/shell/plugins.d/detsecrets.sh
@@ -209,6 +209,10 @@ function detsecrets_postapply
 
   # shellcheck disable=SC2016
   DETSECRETS_VERSION=$("${DETSECRETS}" --version 2>/dev/null | "${GREP}" detsecrets | "${AWK}" '{print $NF}')
+  if [[ -z "${DETSECRETS_VERSION}" ]]; then
+    # shellcheck disable=SC2016
+    DETSECRETS_VERSION=$("${DETSECRETS}" --version 2>/dev/null  | "${AWK}" '{print $NF}')
+  fi
   add_version_data detsecrets "${DETSECRETS_VERSION%,}"
 
 
diff --git a/precommit/src/main/shell/plugins.d/github.sh b/precommit/src/main/shell/plugins.d/github.sh
index 05192c16..a3853736 100755
--- a/precommit/src/main/shell/plugins.d/github.sh
+++ b/precommit/src/main/shell/plugins.d/github.sh
@@ -172,7 +172,7 @@ function github_brute_force_repo_on_remote
   remoteurl=$("${GIT}" remote get-url "${remote}")
   if [[ ${remoteurl} =~ ${domain} ]]; then
     # chop off (protocol)(hostname)
-    repo=${remoteurl#*${domain}}
+    repo=${remoteurl#*"${domain}"}
     # chop off / or : in the front
     repo=${repo:1}
     # chop off ending .git
diff --git a/precommit/src/main/shell/plugins.d/hadolint.sh b/precommit/src/main/shell/plugins.d/hadolint.sh
index 7d45f616..52e3e4f1 100755
--- a/precommit/src/main/shell/plugins.d/hadolint.sh
+++ b/precommit/src/main/shell/plugins.d/hadolint.sh
@@ -69,6 +69,10 @@ function hadolint_precheck
 
   HADOLINT_VERSION=$("${HADOLINT}" --version)
   HADOLINT_VERSION=${HADOLINT_VERSION##* v}
+  if [[ ${HADOLINT_VERSION} =~ Haskell ]]; then
+    # shellcheck disable=SC2016
+    HADOLINT_VERSION=$("${HADOLINT}" --version | "${AWK}" '{print $NF}')
+  fi
   add_version_data hadolint "${HADOLINT_VERSION}"
 
   if [[ ! "${LANG}" =~ UTF-8 ]]; then
diff --git a/precommit/src/main/shell/plugins.d/revive.sh b/precommit/src/main/shell/plugins.d/revive.sh
index 0057945c..db1ed23b 100755
--- a/precommit/src/main/shell/plugins.d/revive.sh
+++ b/precommit/src/main/shell/plugins.d/revive.sh
@@ -138,6 +138,11 @@ function revive_postapply
     revive \
     "${PATCH_DIR}/branch-revive-result.txt" \
     "${PATCH_DIR}/patch-revive-result.txt"
+
+
+  # shellcheck disable=SC2016
+  REVIVE_VERSION=$("${REVIVE}" --version | "${AWK}" '{print $NF}')
+  add_version_data revive "${REVIVE_VERSION}"
 }
 
 function revive_postcompile
diff --git a/precommit/src/main/shell/plugins.d/shellcheck.sh b/precommit/src/main/shell/plugins.d/shellcheck.sh
index ae66e70e..fd771f5a 100755
--- a/precommit/src/main/shell/plugins.d/shellcheck.sh
+++ b/precommit/src/main/shell/plugins.d/shellcheck.sh
@@ -189,7 +189,6 @@ function shellcheck_preapply
     msg="v${SHELLCHECK_VERSION} is an old version that has serious bugs. Consider upgrading."
     add_footer_table shellcheck "${msg}"
   fi
-  add_version_data shellcheck "${SHELLCHECK_VERSION}"
 
   # keep track of how much as elapsed for us already
   SHELLCHECK_TIMER=$(stop_clock)
@@ -229,6 +228,8 @@ function shellcheck_postapply
     shellcheck \
     "${PATCH_DIR}/branch-shellcheck-result.txt" \
     "${PATCH_DIR}/patch-shellcheck-result.txt"
+
+  add_version_data shellcheck "${SHELLCHECK_VERSION}"
 }
 
 function shellcheck_postcompile
diff --git a/precommit/src/main/shell/test-patch-docker/Dockerfile b/precommit/src/main/shell/test-patch-docker/Dockerfile
index 9194e3af..159b894c 100644
--- a/precommit/src/main/shell/test-patch-docker/Dockerfile
+++ b/precommit/src/main/shell/test-patch-docker/Dockerfile
@@ -115,7 +115,7 @@ RUN mkdir -p /opt/apache-rat \
 # Install SpotBugs
 #####
 FROM yetusbase AS yetusspotbugs
-ARG SPOTBUGS_VERSION=4.4.1
+ARG SPOTBUGS_VERSION=4.6.0
 SHELL ["/bin/bash", "-o", "pipefail", "-c"]
 RUN curl -sSL https://repo.maven.apache.org/maven2/com/github/spotbugs/spotbugs/$SPOTBUGS_VERSION/spotbugs-$SPOTBUGS_VERSION.tgz -o spotbugs.tgz \
     && curl -sSL https://repo.maven.apache.org/maven2/com/github/spotbugs/spotbugs/$SPOTBUGS_VERSION/spotbugs-$SPOTBUGS_VERSION.tgz.sha1 -o spotbugs.tgz.sha1 \
@@ -131,7 +131,7 @@ RUN curl -sSL https://repo.maven.apache.org/maven2/com/github/spotbugs/spotbugs/
 # Install shellcheck (shell script lint)
 ####
 FROM yetusbase AS yetusshellcheck
-ARG SHELLCHECK_VERSION=0.7.2
+ARG SHELLCHECK_VERSION=0.8.0
 SHELL ["/bin/bash", "-o", "pipefail", "-c"]
 RUN curl -sSL \
     https://github.com/koalaman/shellcheck/releases/download/v$SHELLCHECK_VERSION/shellcheck-v$SHELLCHECK_VERSION.linux."$(uname -m)".tar.xz \
@@ -143,7 +143,7 @@ RUN curl -sSL \
 # Install hadolint (dockerfile lint)
 ####
 FROM yetusbase AS yetushadolint
-ARG HADOLINT_VERSION=2.8.0
+ARG HADOLINT_VERSION=2.10.0
 SHELL ["/bin/bash", "-o", "pipefail", "-c"]
 RUN if [[ "$(uname -m)" == "x86_64" ]]; then curl -sSL \
         https://github.com/hadolint/hadolint/releases/download/v$HADOLINT_VERSION/hadolint-Linux-"$(uname -m)" \
@@ -155,7 +155,7 @@ RUN if [[ "$(uname -m)" == "x86_64" ]]; then curl -sSL \
 # Install buf (protobuf lint)
 ####
 FROM yetusbase AS yetusbuf
-ARG BUF_VERSION=1.0.0-rc10
+ARG BUF_VERSION=1.3.1
 SHELL ["/bin/bash", "-o", "pipefail", "-c"]
 RUN curl -sSL \
       https://github.com/bufbuild/buf/releases/download/v$BUF_VERSION/buf-Linux-"$(uname -m)".tar.gz \
@@ -167,7 +167,7 @@ RUN curl -sSL \
 # Install bats (TAP-capable unit testing for shell scripts)
 ####
 FROM yetusbase AS yetusbats
-ARG BATS_VERSION=1.4.1
+ARG BATS_VERSION=1.6.0
 SHELL ["/bin/bash", "-o", "pipefail", "-c"]
 RUN git clone --branch v$BATS_VERSION \
       https://github.com/bats-core/bats-core.git \
@@ -180,7 +180,7 @@ RUN git clone --branch v$BATS_VERSION \
 ####
 FROM yetusbase AS yetusrevive
 SHELL ["/bin/bash", "-o", "pipefail", "-c"]
-RUN go get -u github.com/mgechev/revive
+RUN go install github.com/mgechev/revive@latest
 
 
 ####
@@ -190,7 +190,7 @@ RUN go get -u github.com/mgechev/revive
 #
 ####
 FROM yetusbase AS yetuscheckmake
-ARG CHECKMAKE_VERSION=8915bd40945dd20b153cfcecb787ecdb5020ba38
+ARG CHECKMAKE_VERSION=0.2.1
 SHELL ["/bin/bash", "-o", "pipefail", "-c"]
 ENV BUILDER_NAME='Apache Yetus'
 ENV BUILDER_EMAIL='dev@apache.yetus.org'
@@ -204,9 +204,9 @@ RUN git clone \
 # golangci-lint (Multi-tool golang linter)
 ####
 FROM yetusbase as yetusgolangci
-ARG GOLANGCILINT_VERSION=1.42.1
+ARG GOLANGCILINT_VERSION=1.45.2
 SHELL ["/bin/bash", "-o", "pipefail", "-c"]
-RUN (GO111MODULE=on go get github.com/golangci/golangci-lint/cmd/golangci-lint@v$GOLANGCILINT_VERSION)
+RUN go install github.com/golangci/golangci-lint/cmd/golangci-lint@v$GOLANGCILINT_VERSION
 
 ########
 #
@@ -278,11 +278,11 @@ RUN add-apt-repository -y \
 # Install maven
 ######
 # hadolint ignore=DL3008,DL3059
-ARG MVN_VERSION=3.8.4
+ARG MVN_VERSION=3.8.5
 ARG MVN_TGZ=apache-maven-$MVN_VERSION-bin.tar.gz
 RUN curl -sSL \
         -o $MVN_TGZ \
-        https://downloads.apache.org/maven/maven-3/$MVN_VERSION/binaries/$MVN_TGZ \
+        https://archive.apache.org/dist/maven/maven-3/$MVN_VERSION/binaries/$MVN_TGZ \
     && tar xzpf $MVN_TGZ \
     && mkdir -p /opt \
     && mv apache-maven-$MVN_VERSION /opt \
@@ -293,7 +293,7 @@ RUN curl -sSL \
     && gpg --import KEYS \
     && curl -sSL \
         -o $MVN_TGZ.asc \
-        https://downloads.apache.org/maven/maven-3/$MVN_VERSION/binaries/$MVN_TGZ.asc \
+         https://archive.apache.org/dist/maven/maven-3/$MVN_VERSION/binaries/$MVN_TGZ.asc \
     && gpg --verify $MVN_TGZ.asc $MVN_TGZ \
     && rm -rf $MVN_TGZ* /root/.gnupg KEYS
 
@@ -311,12 +311,13 @@ RUN apt-get -q update && apt-get -q install --no-install-recommends -y \
 # Install python3 and pylint3
 # astroid and pylint go hand-in-hand.  Upgrade both at the same time.
 ######
-ARG PY3_ANSIBLE_VERSION=4.7.0
-ARG PY3_ANSIBLELINT_VERSION=5.2.1
-ARG PY3_ASTROID_VERSION=2.8.0
+ARG PY3_ANSIBLE_VERSION=5.5.0
+ARG PY3_ANSIBLELINT_VERSION=6.0.2
+ARG PY3_ASTROID_VERSION=2.11.2
 ARG PY3_CODESPELL_VERSION=2.1.0
+ARG PY3_DETECT_SECRETS=1.2.0
 ARG PY3_DOCKER_COMPOSE=1.29.2
-ARG PY3_PYLINT_VERSION=2.11.1
+ARG PY3_PYLINT_VERSION=2.13.4
 ARG PY3_YAMLLINT_VERSION=1.26.3
 # hadolint ignore=DL3008
 RUN apt-get -q update && apt-get -q install --no-install-recommends -y \
@@ -346,11 +347,10 @@ RUN apt-get -q update && apt-get -q install --no-install-recommends -y \
         ansible-lint==$PY3_ANSIBLELINT_VERSION \
         astroid==$PY3_ASTROID_VERSION \
         codespell==$PY3_CODESPELL_VERSION \
+        detect-secrets==$PY3_DETECT_SECRETS \
         docker-compose==$PY3_DOCKER_COMPOSE \
         pylint==$PY3_PYLINT_VERSION \
         yamllint==$PY3_YAMLLINT_VERSION \
-    && pip3 install --no-cache-dir -v \
-        git+https://github.com/IBM/detect-secrets@0.13.1+ibm.46.dss \
     && rm -rf /root/.cache \
     && mv /usr/local/bin/pylint /usr/local/bin/pylint3 \
     && ln -s /usr/local/bin/pylint3 /usr/local/bin/pylint \
@@ -359,9 +359,9 @@ RUN apt-get -q update && apt-get -q install --no-install-recommends -y \
 ####
 # Install ruby and associated bits
 ###
-ARG RUBY_BUNDLER_VERSION=2.2.27
-ARG RUBY_RAKE_VERSION=13.0.3
-ARG RUBY_RUBOCOP_VERSION=1.21.0
+ARG RUBY_BUNDLER_VERSION=2.3.10
+ARG RUBY_RAKE_VERSION=13.0.6
+ARG RUBY_RUBOCOP_VERSION=1.26.1
 # hadolint ignore=DL3008
 RUN echo 'gem: --no-rdoc --no-ri' >> /root/.gemrc \
     && apt-get -q update && apt-get -q install --no-install-recommends -y \
@@ -381,8 +381,8 @@ ENV BUNDLE_PATH /var/tmp/.bundler-gems
 ###
 # Install npm and JSHint
 ###
-ARG JSHINT_VERSION=2.13.1
-ARG MARKDOWNLINTCLI_VERSION=0.28.1
+ARG JSHINT_VERSION=2.13.4
+ARG MARKDOWNLINTCLI_VERSION=0.31.1
 # hadolint ignore=DL3008
 RUN curl -sSL https://deb.nodesource.com/setup_14.x | bash - \
     && apt-get -q install --no-install-recommends -y nodejs \