diff --git a/.evergreen/config.yml b/.evergreen/config.yml index f804a21de8..2da948106f 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -586,6 +586,10 @@ axes: display_name: "Rails 7.2" variables: RAILS: "7.2" + - id: "8.0" + display_name: "Rails 8.0" + variables: + RAILS: "8.0" - id: "test-i18n-fallbacks" display_name: Test i18n fallbacks @@ -727,6 +731,19 @@ buildvariants: tasks: - name: "test" +- matrix_name: "rails-8" + matrix_spec: + ruby: ["ruby-3.2"] + driver: ["current"] + mongodb-version: "7.0" + topology: "standalone" + rails: ['8.0'] + os: ubuntu-22.04 + fle: helper + display_name: "${rails}, ${driver}, ${mongodb-version} (FLE ${fle})" + tasks: + - name: "test" + - matrix_name: "bson-min" matrix_spec: driver: [bson-min] diff --git a/.evergreen/config/axes.yml.erb b/.evergreen/config/axes.yml.erb index e654086105..546225f54b 100644 --- a/.evergreen/config/axes.yml.erb +++ b/.evergreen/config/axes.yml.erb @@ -213,6 +213,10 @@ axes: display_name: "Rails 7.2" variables: RAILS: "7.2" + - id: "8.0" + display_name: "Rails 8.0" + variables: + RAILS: "8.0" - id: "test-i18n-fallbacks" display_name: Test i18n fallbacks diff --git a/.evergreen/config/variants.yml.erb b/.evergreen/config/variants.yml.erb index 1911f8c902..656d6ba49b 100644 --- a/.evergreen/config/variants.yml.erb +++ b/.evergreen/config/variants.yml.erb @@ -111,6 +111,19 @@ buildvariants: tasks: - name: "test" +- matrix_name: "rails-8" + matrix_spec: + ruby: ["ruby-3.2"] + driver: ["current"] + mongodb-version: "7.0" + topology: "standalone" + rails: ['8.0'] + os: ubuntu-22.04 + fle: helper + display_name: "${rails}, ${driver}, ${mongodb-version} (FLE ${fle})" + tasks: + - name: "test" + - matrix_name: "bson-min" matrix_spec: driver: [bson-min] @@ -158,14 +171,40 @@ buildvariants: tasks: - name: "test" -- matrix_name: app-tests-rails-7 +- matrix_name: app-tests-rails-master + matrix_spec: + ruby: ["ruby-3.1", "ruby-3.2"] + driver: ["current"] + mongodb-version: '7.0' + topology: standalone + app-tests: yes + rails: ['master'] + os: ubuntu-20.04 + display_name: "app tests ${driver}, ${ruby}, ${rails}" + tasks: + - name: "test" + +- matrix_name: app-tests-rails-8 matrix_spec: ruby: ["ruby-3.1", "ruby-3.2"] driver: ["current"] - mongodb-version: '6.0' + mongodb-version: '7.0' topology: standalone app-tests: yes - rails: ['6.1', '7.0', '7.1', '7.2'] + rails: ['8.0'] + os: ubuntu-20.04 + display_name: "app tests ${driver}, ${ruby}, ${rails}" + tasks: + - name: "test" + +- matrix_name: app-tests-rails-7 + matrix_spec: + ruby: ["ruby-3.2"] + driver: ["current"] + mongodb-version: '7.0' + topology: standalone + app-tests: yes + rails: ['7.0', '7.1', '7.2'] os: ubuntu-20.04 display_name: "app tests ${driver}, ${ruby}, ${rails}" tasks: @@ -178,7 +217,7 @@ buildvariants: mongodb-version: '5.0' topology: standalone app-tests: yes - rails: ['6.0'] + rails: ['6.0', '6.1'] os: rhel80 display_name: "app tests ${driver}, ${ruby}, ${rails}" tasks: diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index ff5f5c1a3f..4ea2151a2f 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -123,6 +123,6 @@ if test -f tmp/rspec-all.json; then mv tmp/rspec-all.json tmp/rspec.json fi -python3 -m mtools.mlaunch.mlaunch stop --dir "$dbdir" +python3 -m mtools.mlaunch.mlaunch stop --dir "$dbdir" || true exit ${test_status} diff --git a/gemfiles/rails-6.0.gemfile b/gemfiles/rails-6.0.gemfile index c8962320a3..35923a605f 100644 --- a/gemfiles/rails-6.0.gemfile +++ b/gemfiles/rails-6.0.gemfile @@ -4,6 +4,10 @@ source 'https://rubygems.org' gem 'actionpack', '~> 6.0' gem 'activemodel', '~> 6.0' +group :test do + gem 'activejob', '~> 6.0' +end + gemspec path: '..' require_relative './standard' diff --git a/gemfiles/rails-6.1.gemfile b/gemfiles/rails-6.1.gemfile index 06a654ecd8..8e5a896766 100644 --- a/gemfiles/rails-6.1.gemfile +++ b/gemfiles/rails-6.1.gemfile @@ -4,6 +4,9 @@ source 'https://rubygems.org' gem 'actionpack', '~> 6.1' gem 'activemodel', '~> 6.1' +group :test do + gem 'activejob', '~> 6.1' +end gemspec path: '..' require_relative './standard' diff --git a/gemfiles/rails-7.0.gemfile b/gemfiles/rails-7.0.gemfile index c5bf14c395..5afbe8c57a 100644 --- a/gemfiles/rails-7.0.gemfile +++ b/gemfiles/rails-7.0.gemfile @@ -4,6 +4,9 @@ source 'https://rubygems.org' gem 'actionpack', '~> 7.0' gem 'activemodel', '~> 7.0' +group :test do + gem 'activejob', '~> 7.0' +end gemspec path: '..' require_relative './standard' diff --git a/gemfiles/rails-7.1.gemfile b/gemfiles/rails-7.1.gemfile index 3b6debf9ec..3019a83ef3 100644 --- a/gemfiles/rails-7.1.gemfile +++ b/gemfiles/rails-7.1.gemfile @@ -4,6 +4,9 @@ source 'https://rubygems.org' gem 'actionpack', '~> 7.1' gem 'activemodel', '~> 7.1' +group :test do + gem 'activejob', '~> 7.1' +end gemspec path: '..' require_relative './standard' diff --git a/gemfiles/rails-7.2.gemfile b/gemfiles/rails-7.2.gemfile index bdc1062ec6..8319573653 100644 --- a/gemfiles/rails-7.2.gemfile +++ b/gemfiles/rails-7.2.gemfile @@ -4,6 +4,9 @@ source 'https://rubygems.org' gem 'actionpack', '~> 7.2' gem 'activemodel', '~> 7.2' +group :test do + gem 'activejob', '~> 7.2' +end gemspec path: '..' require_relative './standard' diff --git a/gemfiles/rails-8.0.gemfile b/gemfiles/rails-8.0.gemfile new file mode 100644 index 0000000000..b83e3108a5 --- /dev/null +++ b/gemfiles/rails-8.0.gemfile @@ -0,0 +1,14 @@ +# rubocop:todo all +source 'https://rubygems.org' + +gem 'actionpack', '8.0.0.beta1' +gem 'activemodel', '8.0.0.beta1' + +group :test do + gem 'activejob', '8.0.0.beta1' +end +gemspec path: '..' + +require_relative './standard' + +standard_dependencies diff --git a/gemfiles/rails-master.gemfile b/gemfiles/rails-master.gemfile index 3dc51cbd13..e3a93d9c04 100644 --- a/gemfiles/rails-master.gemfile +++ b/gemfiles/rails-master.gemfile @@ -4,6 +4,10 @@ source 'https://rubygems.org' gem 'actionpack', git: 'https://github.com/rails/rails' gem 'activemodel', git: 'https://github.com/rails/rails' +group :test do + gem 'activejob', git: 'https://github.com/rails/rails' +end + gemspec path: '..' require_relative './standard' diff --git a/gemfiles/standard.rb b/gemfiles/standard.rb index e89e2ae899..0285630e2e 100644 --- a/gemfiles/standard.rb +++ b/gemfiles/standard.rb @@ -36,7 +36,6 @@ def standard_dependencies end group :test do - gem 'activejob' gem 'timecop' gem 'rspec-retry' gem 'benchmark-ips' diff --git a/mongoid.gemspec b/mongoid.gemspec index 91eab31938..0c8fb6b4e9 100644 --- a/mongoid.gemspec +++ b/mongoid.gemspec @@ -38,7 +38,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', '<7.3', '!= 7.0.0']) + s.add_dependency("activemodel", ['>=5.1', '<8.1', '!= 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/mongoid/railties/bson_object_id_serializer_spec.rb b/spec/mongoid/railties/bson_object_id_serializer_spec.rb index 694e14232c..9a446120f8 100644 --- a/spec/mongoid/railties/bson_object_id_serializer_spec.rb +++ b/spec/mongoid/railties/bson_object_id_serializer_spec.rb @@ -2,6 +2,8 @@ # rubocop:todo all require 'spec_helper' +RSpec.context.skip 'This test requires Rails version specified' if ENV['RAILS'].nil? + require 'active_job' require 'mongoid/railties/bson_object_id_serializer'