[rb] Update JRuby and rules_ruby
diff --git a/.github/workflows/ci-rbe.yml b/.github/workflows/ci-rbe.yml
index 44ac497..02cf352 100644
--- a/.github/workflows/ci-rbe.yml
+++ b/.github/workflows/ci-rbe.yml
@@ -15,7 +15,7 @@
     with:
       name: Check format script run
       caching: false
-      ruby-version: jruby-9.4.9.0
+      ruby-version: jruby-9.4.12.0
       run: ./scripts/github-actions/check-format.sh
 
   test:
@@ -25,5 +25,5 @@
     with:
       name: All RBE tests
       caching: false
-      ruby-version: jruby-9.4.9.0
+      ruby-version: jruby-9.4.12.0
       run: ./scripts/github-actions/ci-build.sh
diff --git a/.github/workflows/ci-renovate-rbe.yml b/.github/workflows/ci-renovate-rbe.yml
index e15fb67..205fd4c 100644
--- a/.github/workflows/ci-renovate-rbe.yml
+++ b/.github/workflows/ci-renovate-rbe.yml
@@ -47,7 +47,7 @@
     with:
       name: Check format script run
       caching: false
-      ruby-version: jruby-9.4.9.0
+      ruby-version: jruby-9.4.12.0
       run: ./scripts/github-actions/check-format.sh
 
   test:
@@ -58,7 +58,7 @@
     with:
       name: All RBE tests
       caching: false
-      ruby-version: jruby-9.4.9.0
+      ruby-version: jruby-9.4.12.0
       run: ./scripts/github-actions/ci-build.sh
 
   ci-gh:
diff --git a/.github/workflows/ci-ruby.yml b/.github/workflows/ci-ruby.yml
index 4343081..aa0d411 100644
--- a/.github/workflows/ci-ruby.yml
+++ b/.github/workflows/ci-ruby.yml
@@ -47,7 +47,7 @@
             os: macos
           - ruby-version: 3.3.5
             os: ubuntu
-          - ruby-version: jruby-9.4.9.0
+          - ruby-version: jruby-9.4.12.0
             os: ubuntu
           - ruby-version: truffleruby-24.1.1
             os: ubuntu
diff --git a/MODULE.bazel b/MODULE.bazel
index ef1ebd7..d741afd 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -25,7 +25,7 @@
 bazel_dep(name = "rules_pkg", version = "1.0.1")
 bazel_dep(name = "rules_python", version = "1.1.0")
 bazel_dep(name = "rules_proto", version = "7.0.2")
-bazel_dep(name = "rules_ruby", version = "0.13.0")
+bazel_dep(name = "rules_ruby", version = "0.17.2")
 
 linter = use_extension("@apple_rules_lint//lint:extensions.bzl", "linter")
 linter.configure(
@@ -281,14 +281,16 @@
         "debug-1.10.0": "11e28ca74875979e612444104f3972bd5ffb9e79179907d7ad46dba44bd2e7a4",
         "diff-lcs-1.5.1": "273223dfb40685548436d32b4733aa67351769c7dea621da7d9dd4813e63ddfe",
         "drb-2.2.1": "e9d472bf785f558b96b25358bae115646da0dbfd45107ad858b0bc0d935cb340",
+        "ffi-1.17.1": "26f6b0dbd1101e6ffc09d3ca640b2a21840cc52731ad8a7ded9fb89e5fb0fc39",
         "ffi-1.17.1-arm64-darwin": "a8e04f79d375742c54ee7f9fff4b4022b87200a4ec0eb082128d3b6559e67b4d",
         "ffi-1.17.1-java": "2546e11f9592e2b9b6de49eb96d2a378da47b0bb8469d5cbc9881a55c0d55da7",
         "ffi-1.17.1-x64-mingw-ucrt": "da79a832aee7ccd3635b4ec5e8a1927aed786e7ea03f2e33e2c06ea4fcece4a0",
+        "ffi-1.17.1-x86_64-darwin": "0036199c290462dd7f03bc22933644c1685b7834a21788062bd5df48c72aa7a6",
         "ffi-1.17.1-x86_64-linux-gnu": "8c0ade2a5d19f3672bccfe3b58e016ae5f159e3e2e741c856db87fcf07c903d0",
         "fileutils-1.7.3": "57271e854b694a87755d76f836f5c57b2c9538ebbaf4b2154bb66addf15eb5da",
         "git-1.19.1": "b0a422d9f6517353c48a330d6114de4db9e0c82dbe7202964a1d9f1fbc827d70",
         "hashdiff-1.1.2": "2c30eeded6ed3dce8401d2b5b99e6963fe5f14ed85e60dd9e33c545a44b71a77",
-        "i18n-1.14.6": "dc229a74f5d181f09942dd60ab5d6e667f7392c4ee826f35096db36d1fe3614c",
+        "i18n-1.14.7": "ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f",
         "io-console-0.8.0": "cd6a9facbc69871d69b2cb8b926fc6ea7ef06f06e505e81a64f14a470fddefa2",
         "io-console-0.8.0-java": "3cc6fd5c66e587145c1fdf8dc40c2e3d851e90722a5d0cc3f38da352f06fe1bd",
         "irb-1.14.3": "c457f1f2f1438ae9ce5c5be3981ae2138dec7fb894c7d73777eeeb0a6c0d0752",
@@ -301,8 +303,8 @@
         "minitest-5.25.4": "9cf2cae25ac4dfc90c988ebc3b917f53c054978b673273da1bd20bcb0778f947",
         "parallel-1.26.3": "d86babb7a2b814be9f4b81587bf0b6ce2da7d45969fab24d8ae4bf2bb4d4c7ef",
         "parser-3.3.7.0": "7449011771e3e7881297859b849de26a6f4fccd515bece9520a87e7d2116119b",
-        "psych-5.2.2": "a4a9477c85d3e858086c38cf64e7096abe40d1b1eed248b01020dec0ff9906ab",
-        "psych-5.2.2-java": "dae010e0bbc01e03da5c42cf538705759fb592f42eb9e06baf9bce932c2d7c4e",
+        "psych-5.2.3": "84a54bb952d14604fea22d99938348814678782f58b12648fcdfa4d2fce859ee",
+        "psych-5.2.3-java": "3e5425b9e8a2f41cc2707d5ef14fdc1ae908abbafb12fe45727bd63900056585",
         "public_suffix-6.0.1": "61d44e1cab5cbbbe5b31068481cf16976dd0dc1b6b07bd95617ef8c5e3e00c6f",
         "racc-1.8.1": "4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f",
         "racc-1.8.1-java": "54f2e6d1e1b91c154013277d986f52a90e5ececbe91465d29172e49342732b98",
diff --git a/rb/.ruby-version b/rb/.ruby-version
index 9cec716..dcb564f 100644
--- a/rb/.ruby-version
+++ b/rb/.ruby-version
@@ -1 +1 @@
-3.1.6
+jruby-9.4.12.0
diff --git a/third_party/jruby/VERSION b/third_party/jruby/VERSION
index 95f5a28..457110f 100644
--- a/third_party/jruby/VERSION
+++ b/third_party/jruby/VERSION
@@ -1 +1 @@
-jruby 9.4.9.0 (3.1.4) 2024-11-04 547c6b150e OpenJDK 64-Bit Server VM 17.0.13+11-LTS on 17.0.13+11-LTS +jit [arm64-darwin]
+jruby 9.4.12.0 (3.1.4) 2025-02-11 f4ab75096a Java HotSpot(TM) 64-Bit Server VM 25.172-b11 on 1.8.0_172-b11 +jit [x86_64-darwin]
diff --git a/third_party/jruby/jruby-complete.jar b/third_party/jruby/jruby-complete.jar
index aded7e3..bb72dca 100644
--- a/third_party/jruby/jruby-complete.jar
+++ b/third_party/jruby/jruby-complete.jar
Binary files differ
diff --git a/third_party/jruby/update.rb b/third_party/jruby/update.rb
index b5b91f6..552f062 100644
--- a/third_party/jruby/update.rb
+++ b/third_party/jruby/update.rb
@@ -2,7 +2,7 @@
 require "open-uri"
 require "rake"
 
-version = "9.4.9.0"
+version = "9.4.12.0"
 gems = {
   "inifile" => "3.0.0",
   "net-telnet" => "0.2.0",