From fed4309d3d71701b9a016846bb4ff4608f7824ee Mon Sep 17 00:00:00 2001 From: AlexKovynev Date: Fri, 24 Oct 2025 10:35:58 +0300 Subject: [PATCH] Rails 8.1 Support (#6054) * Rails 8.1 Support * Re-enable rails master tests --------- Co-authored-by: AlexKovynev Co-authored-by: Dmitry Rybakov --- .evergreen/config.yml | 34 +++++++++++++++++------------- .evergreen/config/axes.yml.erb | 4 ++++ .evergreen/config/variants.yml.erb | 30 +++++++++++++------------- .github/workflows/test.yml | 2 +- gemfiles/rails-8.1.gemfile | 14 ++++++++++++ mongoid.gemspec | 2 +- spec/shared | 2 +- 7 files changed, 55 insertions(+), 33 deletions(-) create mode 100644 gemfiles/rails-8.1.gemfile diff --git a/.evergreen/config.yml b/.evergreen/config.yml index f1235d61cd..d52660b5ae 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -608,6 +608,10 @@ axes: display_name: "Rails 8.0" variables: RAILS: "8.0" + - id: "8.1" + display_name: "Rails 8.1" + variables: + RAILS: "8.1" - id: "test-i18n-fallbacks" display_name: Test i18n fallbacks @@ -641,7 +645,7 @@ buildvariants: matrix_spec: ruby: ["ruby-3.3"] driver: ["current"] - topology: '*' + topology: ['replica_set'] mongodb-version: ['latest'] os: ubuntu-22.04 display_name: "${ruby}, ${driver}, ${mongodb-version}, ${topology}" @@ -769,19 +773,19 @@ buildvariants: tasks: - name: "test" -# Skip until Rails 8.1 supported -#- matrix_name: "rails-master" -# matrix_spec: -# ruby: ["ruby-3.2"] -# driver: ["current"] -# mongodb-version: "7.0" -# topology: "server" -# rails: ['master'] -# os: ubuntu-22.04 -# fle: helper -# display_name: "${rails}, ${driver}, ${mongodb-version} (FLE ${fle})" -# tasks: -# - name: "test" + +- matrix_name: "rails-master" + matrix_spec: + ruby: ["ruby-3.2"] + driver: ["current"] + mongodb-version: "7.0" + topology: "server" + rails: ['master'] + os: ubuntu-22.04 + fle: helper + display_name: "${rails}, ${driver}, ${mongodb-version} (FLE ${fle})" + tasks: + - name: "test" - matrix_name: "rails-8" matrix_spec: @@ -789,7 +793,7 @@ buildvariants: driver: ["current"] mongodb-version: "7.0" topology: "server" - rails: ['8.0'] + rails: ['8.0', '8.1'] os: ubuntu-22.04 fle: helper display_name: "${rails}, ${driver}, ${mongodb-version} (FLE ${fle})" diff --git a/.evergreen/config/axes.yml.erb b/.evergreen/config/axes.yml.erb index d80c33da13..cfab713195 100644 --- a/.evergreen/config/axes.yml.erb +++ b/.evergreen/config/axes.yml.erb @@ -208,6 +208,10 @@ axes: display_name: "Rails 8.0" variables: RAILS: "8.0" + - id: "8.1" + display_name: "Rails 8.1" + variables: + RAILS: "8.1" - id: "test-i18n-fallbacks" display_name: Test i18n fallbacks diff --git a/.evergreen/config/variants.yml.erb b/.evergreen/config/variants.yml.erb index 08b57b68cd..9fd057b141 100644 --- a/.evergreen/config/variants.yml.erb +++ b/.evergreen/config/variants.yml.erb @@ -3,7 +3,7 @@ buildvariants: matrix_spec: ruby: ["ruby-3.3"] driver: ["current"] - topology: '*' + topology: ['replica_set'] mongodb-version: ['latest'] os: ubuntu-22.04 display_name: "${ruby}, ${driver}, ${mongodb-version}, ${topology}" @@ -131,19 +131,19 @@ buildvariants: tasks: - name: "test" -# Skip until Rails 8.1 supported -#- matrix_name: "rails-master" -# matrix_spec: -# ruby: ["ruby-3.2"] -# driver: ["current"] -# mongodb-version: "7.0" -# topology: "server" -# rails: ['master'] -# os: ubuntu-22.04 -# fle: helper -# display_name: "${rails}, ${driver}, ${mongodb-version} (FLE ${fle})" -# tasks: -# - name: "test" + +- matrix_name: "rails-master" + matrix_spec: + ruby: ["ruby-3.2"] + driver: ["current"] + mongodb-version: "7.0" + topology: "server" + rails: ['master'] + os: ubuntu-22.04 + fle: helper + display_name: "${rails}, ${driver}, ${mongodb-version} (FLE ${fle})" + tasks: + - name: "test" - matrix_name: "rails-8" matrix_spec: @@ -151,7 +151,7 @@ buildvariants: driver: ["current"] mongodb-version: "7.0" topology: "server" - rails: ['8.0'] + rails: ['8.0', '8.1'] os: ubuntu-22.04 fle: helper display_name: "${rails}, ${driver}, ${mongodb-version} (FLE ${fle})" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 115a9fe3bf..0d3d10fc77 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,7 +20,7 @@ jobs: matrix: ruby: [ "3.3" ] mongodb: [ "8.0" ] - rails: [ ~, "8.0" ] + rails: [ ~, "8.1" ] fle: [ ~, "helper" ] topology: [ replica_set, sharded_cluster ] diff --git a/gemfiles/rails-8.1.gemfile b/gemfiles/rails-8.1.gemfile new file mode 100644 index 0000000000..92915ef5c1 --- /dev/null +++ b/gemfiles/rails-8.1.gemfile @@ -0,0 +1,14 @@ +# rubocop:todo all +source 'https://rubygems.org' + +gem 'actionpack', '~> 8.1.0' +gem 'activemodel', '~> 8.1.0' + +group :test do + gem 'activejob', '~> 8.1.0' +end +gemspec path: '..' + +require_relative './standard' + +standard_dependencies diff --git a/mongoid.gemspec b/mongoid.gemspec index eff07f07ff..a1e53ef05b 100644 --- a/mongoid.gemspec +++ b/mongoid.gemspec @@ -31,7 +31,7 @@ Gem::Specification.new do |s| # Ruby 3.0 requires ActiveModel 6.0 or higher. # activemodel 7.0.0 cannot be used due to Class#descendants issue # See: https://github.com/rails/rails/pull/43951 - s.add_dependency("activemodel", ['>=5.1', '<8.1', '!= 7.0.0']) + s.add_dependency("activemodel", ['>=5.1', '< 8.2', '!= 7.0.0']) s.add_dependency("mongo", ['>=2.18.0', '<3.0.0']) s.add_dependency("concurrent-ruby", ['>= 1.0.5', '< 2.0']) diff --git a/spec/shared b/spec/shared index 6b1158f69f..702f23f98b 160000 --- a/spec/shared +++ b/spec/shared @@ -1 +1 @@ -Subproject commit 6b1158f69f7a23345259223bc305393b86e9ab3e +Subproject commit 702f23f98b4be12fae3cf4d235a27a7985272251