From eaa3a1d544d8e49fda58c942abda14d73db3a0da Mon Sep 17 00:00:00 2001
From: donoghuc
Date: Thu, 15 May 2025 10:33:54 -0700
Subject: [PATCH 1/3] Remove use of deprecated `org.jruby.Ruby.fastGetModule`
The `fastGetModule` is deprecated in jruby 9.4 and removed in 10:
https://github.com/jruby/jruby/blob/1611c8e4e464164474a0e8c0663e16d67fa5c268/core/src/main/java/org/jruby/Ruby.java#L1373-L1385
This commit uses the getModule method (which should bridge between 9 and 10).
Note that it is marked deprecated in 10 but having the 9/10 compatability will
be a win in the forseable future.
https://github.com/jruby/jruby/blob/02c56b6099582500f86262a1d16d6b0e5cf3fe95/core/src/main/java/org/jruby/Ruby.java#L1339-L1342
---
src/main/org/bson_ruby/NativeService.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/org/bson_ruby/NativeService.java b/src/main/org/bson_ruby/NativeService.java
index 02eb11896..9938380dd 100644
--- a/src/main/org/bson_ruby/NativeService.java
+++ b/src/main/org/bson_ruby/NativeService.java
@@ -56,7 +56,7 @@ public class NativeService implements BasicLibraryService {
* @since 2.0.0
*/
public boolean basicLoad(final Ruby runtime) throws IOException {
- RubyModule bson = runtime.fastGetModule(BSON);
+ RubyModule bson = runtime.getModule(BSON);
GeneratorExtension.extend(bson);
RubyClass byteBuffer = bson.defineClassUnder("ByteBuffer", runtime.getObject(), new ObjectAllocator() {
From 63bdd199bf3efb30dc0417a8ce082c003cf45887 Mon Sep 17 00:00:00 2001
From: donoghuc
Date: Thu, 15 May 2025 11:00:47 -0700
Subject: [PATCH 2/3] See if CI will run jruby 10
---
.evergreen/config.yml | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/.evergreen/config.yml b/.evergreen/config.yml
index cff844729..0f3017880 100644
--- a/.evergreen/config.yml
+++ b/.evergreen/config.yml
@@ -296,6 +296,10 @@ axes:
display_name: ruby-2.7
variables:
RVM_RUBY: ruby-2.7
+ - id: jruby-10.0
+ display_name: jruby-10.0
+ variables:
+ RVM_RUBY: jruby-10.0
- id: jruby-9.4
display_name: jruby-9.4
variables:
@@ -390,13 +394,13 @@ buildvariants:
- name: "test"
- matrix_name: "special-os"
- matrix_spec: { ruby: ["ruby-3.2", "ruby-3.1", "jruby-9.4"], special-os: '*' }
+ matrix_spec: { ruby: ["ruby-3.2", "ruby-3.1", "jruby-9.4", "jruby-10.0"], special-os: '*' }
display_name: "${ruby}, ${special-os}"
tasks:
- name: "test"
- matrix_name: "jruby"
- matrix_spec: { ruby: ["jruby-9.4", "jruby-9.3"], all-os: ubuntu2204 }
+ matrix_spec: { ruby: ["jruby-9.4", "jruby-9.3", "jruby-10.0"], all-os: ubuntu2204 }
display_name: "${ruby}, ${all-os}"
tasks:
- name: "test"
From e10525b6ba33171928d1708fbcfc0f6ff3e2c0f6 Mon Sep 17 00:00:00 2001
From: Dmitry Rybakov
Date: Thu, 12 Jun 2025 13:08:21 +0200
Subject: [PATCH 3/3] Use latest toolchain
---
.evergreen/config.yml | 23 ++++++++++++++---------
.evergreen/config/axes.yml.erb | 19 ++++++++++++-------
.evergreen/config/variants.yml.erb | 2 +-
.evergreen/run-tests.sh | 5 +++++
.evergreen/update-evergreen-configs | 6 +++---
spec/shared | 2 +-
6 files changed, 36 insertions(+), 21 deletions(-)
diff --git a/.evergreen/config.yml b/.evergreen/config.yml
index 0f3017880..1e8a84878 100644
--- a/.evergreen/config.yml
+++ b/.evergreen/config.yml
@@ -249,10 +249,15 @@ axes:
display_name: OS
values:
- id: debian
- display_name: "Debian 11"
- run_on: debian11-small
+ display_name: "Debian 12"
+ run_on: debian12-small
variables:
- MACHINE: "debian11"
+ MACHINE: "debian12"
+ - id: "ubuntu2404"
+ display_name: "Ubuntu 24.04"
+ run_on: ubuntu2404-small
+ variables:
+ MACHINE: "ubuntu2204"
- id: "ubuntu2204"
display_name: "Ubuntu 22.04"
run_on: ubuntu2204-small
@@ -267,11 +272,11 @@ axes:
- id: "special-os"
display_name: OS
values:
- - id: "ubuntu2204-arm64"
- display_name: "Ubuntu 22.04 ARM64"
- run_on: ubuntu2204-arm64-small
+ - id: "ubuntu2404-arm64"
+ display_name: "Ubuntu 24.04 ARM64"
+ run_on: ubuntu2404-arm64-small
variables:
- MACHINE: ubuntu2204-arm64
+ MACHINE: ubuntu2404-arm64
- id: ruby
display_name: Ruby Version
@@ -394,13 +399,13 @@ buildvariants:
- name: "test"
- matrix_name: "special-os"
- matrix_spec: { ruby: ["ruby-3.2", "ruby-3.1", "jruby-9.4", "jruby-10.0"], special-os: '*' }
+ matrix_spec: { ruby: ["ruby-3.2", "ruby-3.1"], special-os: '*' }
display_name: "${ruby}, ${special-os}"
tasks:
- name: "test"
- matrix_name: "jruby"
- matrix_spec: { ruby: ["jruby-9.4", "jruby-9.3", "jruby-10.0"], all-os: ubuntu2204 }
+ matrix_spec: { ruby: ["jruby-10.0", "jruby-9.4", "jruby-9.3"], all-os: ubuntu2204 }
display_name: "${ruby}, ${all-os}"
tasks:
- name: "test"
diff --git a/.evergreen/config/axes.yml.erb b/.evergreen/config/axes.yml.erb
index 99b691d0c..05949dde0 100644
--- a/.evergreen/config/axes.yml.erb
+++ b/.evergreen/config/axes.yml.erb
@@ -3,10 +3,15 @@ axes:
display_name: OS
values:
- id: debian
- display_name: "Debian 11"
- run_on: debian11-small
+ display_name: "Debian 12"
+ run_on: debian12-small
variables:
- MACHINE: "debian11"
+ MACHINE: "debian12"
+ - id: "ubuntu2404"
+ display_name: "Ubuntu 24.04"
+ run_on: ubuntu2404-small
+ variables:
+ MACHINE: "ubuntu2204"
- id: "ubuntu2204"
display_name: "Ubuntu 22.04"
run_on: ubuntu2204-small
@@ -21,11 +26,11 @@ axes:
- id: "special-os"
display_name: OS
values:
- - id: "ubuntu2204-arm64"
- display_name: "Ubuntu 22.04 ARM64"
- run_on: ubuntu2204-arm64-small
+ - id: "ubuntu2404-arm64"
+ display_name: "Ubuntu 24.04 ARM64"
+ run_on: ubuntu2404-arm64-small
variables:
- MACHINE: ubuntu2204-arm64
+ MACHINE: ubuntu2404-arm64
- id: ruby
display_name: Ruby Version
diff --git a/.evergreen/config/variants.yml.erb b/.evergreen/config/variants.yml.erb
index 40f27e921..d4a61541a 100644
--- a/.evergreen/config/variants.yml.erb
+++ b/.evergreen/config/variants.yml.erb
@@ -39,7 +39,7 @@ buildvariants:
- name: "test"
- matrix_name: "special-os"
- matrix_spec: { ruby: <%= recent_rubies %>, special-os: '*' }
+ matrix_spec: { ruby: <%= recent_rubies - %w[ jruby-10.0 ] %>, special-os: '*' }
display_name: "${ruby}, ${special-os}"
tasks:
- name: "test"
diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh
index 770ee2c28..a45af88ad 100644
--- a/.evergreen/run-tests.sh
+++ b/.evergreen/run-tests.sh
@@ -17,6 +17,11 @@ set_env_ruby
install_deps
+# TODO: move this to shared/shlib/set_env.sh
+export JAVA_HOME="/opt/java/jdk21"
+export SOURCE_VERSION=21
+export TARGET_VERSION=21
+# END TODO
echo "Running specs"
bundle exec rake spec
test_status=$?
diff --git a/.evergreen/update-evergreen-configs b/.evergreen/update-evergreen-configs
index 6c0fc5d3e..cddc1e3eb 100755
--- a/.evergreen/update-evergreen-configs
+++ b/.evergreen/update-evergreen-configs
@@ -75,7 +75,7 @@ module ConfigProcessor
# these are used for testing against a few recent ruby versions
def recent_rubies
- @recent_rubies ||= %w[ ruby-3.2 ruby-3.1 jruby-9.4 ]
+ @recent_rubies ||= %w[ ruby-3.2 ruby-3.1 jruby-10.0 ]
end
# the most recently released, stable version of Ruby (make sure this
@@ -96,7 +96,7 @@ module ConfigProcessor
# as above, but including the most recent JRuby release
def sample_rubies
- @sample_rubies ||= sample_mri_rubies + %w[ jruby-9.4 ]
+ @sample_rubies ||= sample_mri_rubies + %w[ jruby-10.0 ]
end
# older Ruby versions provided by 10gen/mongo-ruby-toolchain
@@ -106,7 +106,7 @@ module ConfigProcessor
# all supported JRuby versions provided by 10gen/mongo-ruby-toolchain
def jrubies
- @jrubies ||= %w[ jruby-9.4 jruby-9.3 ]
+ @jrubies ||= %w[ jruby-10.0 jruby-9.4 jruby-9.3 ]
end
# all supported MRI ruby versions
diff --git a/spec/shared b/spec/shared
index 2fe5724b0..51e2b4550 160000
--- a/spec/shared
+++ b/spec/shared
@@ -1 +1 @@
-Subproject commit 2fe5724b0a586fbeac602f15f7d43ccc7bbe531b
+Subproject commit 51e2b455044a9af844784e3c3a6a8a1ff354508a