From 516dee7aa28c39f5d0541daee14d9cf48f2804be Mon Sep 17 00:00:00 2001 From: Bohdan Zhuravel Date: Fri, 17 Oct 2025 01:19:13 +0300 Subject: [PATCH 1/3] Rails 8.1 --- .github/workflows/ci.yml | 26 +++++++++---------- .github/workflows/gem-push.yml | 11 +++----- accept_values_for.gemspec | 2 +- gemfiles/activemodel_6_1.gemfile | 11 -------- ...vemodel_7_0.gemfile => activemodel_7.0.rb} | 3 +++ ...vemodel_7_1.gemfile => activemodel_7.1.rb} | 0 ...vemodel_7_2.gemfile => activemodel_7.2.rb} | 0 ...vemodel_8_0.gemfile => activemodel_8.0.rb} | 0 gemfiles/activemodel_8.1.rb | 11 ++++++++ lib/accept_values_for/matcher.rb | 8 ++++++ 10 files changed, 40 insertions(+), 32 deletions(-) delete mode 100644 gemfiles/activemodel_6_1.gemfile rename gemfiles/{activemodel_7_0.gemfile => activemodel_7.0.rb} (82%) rename gemfiles/{activemodel_7_1.gemfile => activemodel_7.1.rb} (100%) rename gemfiles/{activemodel_7_2.gemfile => activemodel_7.2.rb} (100%) rename gemfiles/{activemodel_8_0.gemfile => activemodel_8.0.rb} (100%) create mode 100644 gemfiles/activemodel_8.1.rb diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 018d2a7..3de4bca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,28 +5,28 @@ jobs: strategy: fail-fast: false matrix: - ruby: ['3.0', '3.1', '3.2', '3.3'] - gemfile: - - activemodel_6_1 - - activemodel_7_0 - - activemodel_7_1 - - activemodel_7_2 - - activemodel_8_0 + ruby: ['3.0', '3.1', '3.2', '3.3', '3.4'] + rails: ['7.0', '7.1', '7.2', '8.0', '8.1'] exclude: # Rails 7.2 requires Ruby >= 3.1.0 - ruby: '3.0' - gemfile: 'activemodel_7_2' + rails: '7.2' # Rails 8.0 requires Ruby >= 3.2.0 - ruby: '3.0' - gemfile: 'activemodel_8_0' + rails: '8.0' - ruby: '3.1' - gemfile: 'activemodel_8_0' - name: Ruby ${{ matrix.ruby }}, ${{ matrix.gemfile }} + rails: '8.0' + # Rails 8.1 requires Ruby >= 3.2.0 + - ruby: '3.0' + rails: '8.1' + - ruby: '3.1' + rails: '8.1' + name: Ruby ${{ matrix.ruby }}, Rails ${{ matrix.rails }} runs-on: ubuntu-latest env: - BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile + BUNDLE_GEMFILE: gemfiles/activemodel_${{ matrix.rails }}.rb steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} diff --git a/.github/workflows/gem-push.yml b/.github/workflows/gem-push.yml index 939d7aa..4400bce 100644 --- a/.github/workflows/gem-push.yml +++ b/.github/workflows/gem-push.yml @@ -12,14 +12,11 @@ jobs: packages: write steps: - - uses: actions/checkout@v4 - - name: Set up Ruby 3.2 - # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby, - # change this to (see https://github.com/ruby/setup-ruby#versioning): - # uses: ruby/setup-ruby@v1 - uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0 + - uses: actions/checkout@v5 + - name: Set up Ruby 3.4 + uses: ruby/setup-ruby@v1 with: - ruby-version: 3.2.2 + ruby-version: 3.4.7 - name: Publish to GPR run: | diff --git a/accept_values_for.gemspec b/accept_values_for.gemspec index 323ac83..d3b4b0c 100644 --- a/accept_values_for.gemspec +++ b/accept_values_for.gemspec @@ -25,7 +25,7 @@ Gem::Specification.new do |spec| spec.metadata["homepage_uri"] = spec.homepage spec.metadata["source_code_uri"] = spec.homepage - spec.add_dependency "activemodel", ">= 6.1", "< 8.1" + spec.add_dependency "activemodel", ">= 7.0", "< 8.2" spec.add_dependency "rspec", ">= 3.10", "< 4.0" spec.add_development_dependency "bundler", "~> 2.2" diff --git a/gemfiles/activemodel_6_1.gemfile b/gemfiles/activemodel_6_1.gemfile deleted file mode 100644 index 4ef4074..0000000 --- a/gemfiles/activemodel_6_1.gemfile +++ /dev/null @@ -1,11 +0,0 @@ -source "https://rubygems.org" - -gemspec path: ".." - -gem "activemodel", "~> 6.1.0" - -group :test do - gem "activerecord", "~> 6.1.0", require: "active_record" - gem "rspec", "~> 3.10" - gem "sqlite3", "~> 1.4" -end diff --git a/gemfiles/activemodel_7_0.gemfile b/gemfiles/activemodel_7.0.rb similarity index 82% rename from gemfiles/activemodel_7_0.gemfile rename to gemfiles/activemodel_7.0.rb index a35e9c8..7155dcf 100644 --- a/gemfiles/activemodel_7_0.gemfile +++ b/gemfiles/activemodel_7.0.rb @@ -3,6 +3,9 @@ gemspec path: ".." gem "activemodel", "~> 7.0.0" +gem "bigdecimal" +gem "logger" +gem "mutex_m" group :test do gem "activerecord", "~> 7.0.0", require: "active_record" diff --git a/gemfiles/activemodel_7_1.gemfile b/gemfiles/activemodel_7.1.rb similarity index 100% rename from gemfiles/activemodel_7_1.gemfile rename to gemfiles/activemodel_7.1.rb diff --git a/gemfiles/activemodel_7_2.gemfile b/gemfiles/activemodel_7.2.rb similarity index 100% rename from gemfiles/activemodel_7_2.gemfile rename to gemfiles/activemodel_7.2.rb diff --git a/gemfiles/activemodel_8_0.gemfile b/gemfiles/activemodel_8.0.rb similarity index 100% rename from gemfiles/activemodel_8_0.gemfile rename to gemfiles/activemodel_8.0.rb diff --git a/gemfiles/activemodel_8.1.rb b/gemfiles/activemodel_8.1.rb new file mode 100644 index 0000000..0211d72 --- /dev/null +++ b/gemfiles/activemodel_8.1.rb @@ -0,0 +1,11 @@ +source "https://rubygems.org" + +gemspec path: ".." + +gem "activemodel", ">= 8.1.0.rc1", "< 8.2" + +group :test do + gem "activerecord", ">= 8.1.0.rc1", "< 8.2", require: "active_record" + gem "rspec", "~> 3.13" + gem "sqlite3", "~> 2.2" +end diff --git a/lib/accept_values_for/matcher.rb b/lib/accept_values_for/matcher.rb index 51d432b..668cf0a 100644 --- a/lib/accept_values_for/matcher.rb +++ b/lib/accept_values_for/matcher.rb @@ -1,3 +1,11 @@ +begin + # This is only needed for Rails 7.0 and can be removed when we drop support for it + require "logger" + require "mutex_m" +rescue LoadError + # Rails 7.1+ handles these internally +end + require "active_model" module AcceptValuesFor From 19c566ef8aa9186e8416d748077272c40996d6fb Mon Sep 17 00:00:00 2001 From: Bohdan Zhuravel Date: Fri, 17 Oct 2025 02:04:12 +0300 Subject: [PATCH 2/3] Drop support for Rails 7.0 --- .github/workflows/ci.yml | 4 ++-- accept_values_for.gemspec | 2 +- gemfiles/activemodel_7.0.rb | 14 -------------- ...{activemodel_7.1.rb => activemodel_7.1.gemfile} | 0 ...{activemodel_7.2.rb => activemodel_7.2.gemfile} | 0 ...{activemodel_8.0.rb => activemodel_8.0.gemfile} | 0 ...{activemodel_8.1.rb => activemodel_8.1.gemfile} | 0 lib/accept_values_for/matcher.rb | 8 -------- 8 files changed, 3 insertions(+), 25 deletions(-) delete mode 100644 gemfiles/activemodel_7.0.rb rename gemfiles/{activemodel_7.1.rb => activemodel_7.1.gemfile} (100%) rename gemfiles/{activemodel_7.2.rb => activemodel_7.2.gemfile} (100%) rename gemfiles/{activemodel_8.0.rb => activemodel_8.0.gemfile} (100%) rename gemfiles/{activemodel_8.1.rb => activemodel_8.1.gemfile} (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3de4bca..50e1c0b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,7 +6,7 @@ jobs: fail-fast: false matrix: ruby: ['3.0', '3.1', '3.2', '3.3', '3.4'] - rails: ['7.0', '7.1', '7.2', '8.0', '8.1'] + rails: ['7.1', '7.2', '8.0', '8.1'] exclude: # Rails 7.2 requires Ruby >= 3.1.0 - ruby: '3.0' @@ -24,7 +24,7 @@ jobs: name: Ruby ${{ matrix.ruby }}, Rails ${{ matrix.rails }} runs-on: ubuntu-latest env: - BUNDLE_GEMFILE: gemfiles/activemodel_${{ matrix.rails }}.rb + BUNDLE_GEMFILE: gemfiles/activemodel_${{ matrix.rails }}.gemfile steps: - uses: actions/checkout@v5 - uses: ruby/setup-ruby@v1 diff --git a/accept_values_for.gemspec b/accept_values_for.gemspec index d3b4b0c..ba94160 100644 --- a/accept_values_for.gemspec +++ b/accept_values_for.gemspec @@ -25,7 +25,7 @@ Gem::Specification.new do |spec| spec.metadata["homepage_uri"] = spec.homepage spec.metadata["source_code_uri"] = spec.homepage - spec.add_dependency "activemodel", ">= 7.0", "< 8.2" + spec.add_dependency "activemodel", ">= 7.1", "< 8.2" spec.add_dependency "rspec", ">= 3.10", "< 4.0" spec.add_development_dependency "bundler", "~> 2.2" diff --git a/gemfiles/activemodel_7.0.rb b/gemfiles/activemodel_7.0.rb deleted file mode 100644 index 7155dcf..0000000 --- a/gemfiles/activemodel_7.0.rb +++ /dev/null @@ -1,14 +0,0 @@ -source "https://rubygems.org" - -gemspec path: ".." - -gem "activemodel", "~> 7.0.0" -gem "bigdecimal" -gem "logger" -gem "mutex_m" - -group :test do - gem "activerecord", "~> 7.0.0", require: "active_record" - gem "rspec", "~> 3.10" - gem "sqlite3", "~> 1.4" -end diff --git a/gemfiles/activemodel_7.1.rb b/gemfiles/activemodel_7.1.gemfile similarity index 100% rename from gemfiles/activemodel_7.1.rb rename to gemfiles/activemodel_7.1.gemfile diff --git a/gemfiles/activemodel_7.2.rb b/gemfiles/activemodel_7.2.gemfile similarity index 100% rename from gemfiles/activemodel_7.2.rb rename to gemfiles/activemodel_7.2.gemfile diff --git a/gemfiles/activemodel_8.0.rb b/gemfiles/activemodel_8.0.gemfile similarity index 100% rename from gemfiles/activemodel_8.0.rb rename to gemfiles/activemodel_8.0.gemfile diff --git a/gemfiles/activemodel_8.1.rb b/gemfiles/activemodel_8.1.gemfile similarity index 100% rename from gemfiles/activemodel_8.1.rb rename to gemfiles/activemodel_8.1.gemfile diff --git a/lib/accept_values_for/matcher.rb b/lib/accept_values_for/matcher.rb index 668cf0a..51d432b 100644 --- a/lib/accept_values_for/matcher.rb +++ b/lib/accept_values_for/matcher.rb @@ -1,11 +1,3 @@ -begin - # This is only needed for Rails 7.0 and can be removed when we drop support for it - require "logger" - require "mutex_m" -rescue LoadError - # Rails 7.1+ handles these internally -end - require "active_model" module AcceptValuesFor From d853d66170945443fc8033c9e5d89e7a5bfab909 Mon Sep 17 00:00:00 2001 From: Bohdan Zhuravel Date: Wed, 22 Oct 2025 18:24:17 +0300 Subject: [PATCH 3/3] Use stable Rails 8.1 --- gemfiles/activemodel_8.1.gemfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gemfiles/activemodel_8.1.gemfile b/gemfiles/activemodel_8.1.gemfile index 0211d72..87faca2 100644 --- a/gemfiles/activemodel_8.1.gemfile +++ b/gemfiles/activemodel_8.1.gemfile @@ -2,10 +2,10 @@ source "https://rubygems.org" gemspec path: ".." -gem "activemodel", ">= 8.1.0.rc1", "< 8.2" +gem "activemodel", "~> 8.1.0" group :test do - gem "activerecord", ">= 8.1.0.rc1", "< 8.2", require: "active_record" + gem "activerecord", "~> 8.1.0", require: "active_record" gem "rspec", "~> 3.13" gem "sqlite3", "~> 2.2" end