From dc382967ac5ba6f31f8ffb182a3880402697870c Mon Sep 17 00:00:00 2001 From: Igor Fedoronchuk Date: Thu, 1 Oct 2026 13:45:40 +0200 Subject: [PATCH 1/2] ci: drop EOL Ruby and Rails from the matrix Ruby 3.2 reached end of life on 2026-03-31 and Rails 7.2 on 2026-08-09, so neither belongs in CI any more. The new matrix is Ruby 3.3/3.4/4.0 against Rails 8.0 and 8.1 - Rails 8.0 itself goes EOL on 2026-11-07, which leaves 8.1 as the only long-lived leg, so it has to be there. Rails 8.1's app generator writes `stale_when_importmap_changes` into ApplicationController, and rails_template.rb discards the generated Gemfile, so the sample app boots with no importmap-rails and raises NameError before any example runs. Generating with --skip-javascript keeps the fix at the generator instead of patching a generated file. --- .github/workflows/ci.yml | 7 ++++--- README.md | 2 +- tasks/test.rake | 4 ++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c8df5db..e556729 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,9 +15,10 @@ jobs: strategy: fail-fast: false matrix: - # Rails 7.1 is out of even severe-security support, so the floor is 7.2. - ruby: ['3.2', '3.4'] - rails: ['7.2.0', '8.0.0'] + # Rails 7.2 reached end of life on 2026-08-09, so the floor is 8.0. Ruby 3.2 went EOL + # on 2026-03-31, so the floor there is 3.3 (security-only until 2027-03-31). + ruby: ['3.3', '3.4', '4.0'] + rails: ['8.0.0', '8.1.0'] activeadmin: ['3.5.0'] env: RAILS: ${{ matrix.rails }} diff --git a/README.md b/README.md index 2a31edd..2a5e3f8 100644 --- a/README.md +++ b/README.md @@ -143,7 +143,7 @@ Four `prepend`s, no source patching: `default:` needs no registration of its own: `add_filter` stores whatever options it is given, without a whitelist. -Tested against Active Admin 3.5 on Rails 7.2 and 8.0. +Tested against Active Admin 3.5 on Rails 8.0 and 8.1, under Ruby 3.3, 3.4 and 4.0. ## License diff --git a/tasks/test.rake b/tasks/test.rake index b048447..266f4cc 100644 --- a/tasks/test.rake +++ b/tasks/test.rake @@ -4,11 +4,15 @@ desc "Creates a test rails app for the specs to run against" task :setup do require "rails/version" + # The template throws the generated Gemfile away, so the app runs under this gem's sprockets + # bundle with no importmap-rails. Without --skip-javascript, Rails 8.1 writes + # `stale_when_importmap_changes` into ApplicationController and booting it raises NameError. args = %w[ --skip-spring --skip-bootsnap --skip-test --skip-system-test + --skip-javascript -m spec/support/rails_template.rb ].join(" ") From 96969865de644cf38abfd3c8055bb6ff20adf37a Mon Sep 17 00:00:00 2001 From: Igor Fedoronchuk Date: Thu, 1 Oct 2026 13:45:53 +0200 Subject: [PATCH 2/2] chore: raise the gemspec Ruby floor to 3.3 Ruby 3.0 through 3.2 are all out of support and none of them is tested any more, so claiming ">= 3.0" overstates what the gem is known to run on. The activeadmin dependency is untouched: narrowing the tested Rails range is not evidence the gem broke on older Active Admin, and raising a runtime floor would be a breaking change for consumers. --- active_admin_filters_defaults.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/active_admin_filters_defaults.gemspec b/active_admin_filters_defaults.gemspec index 6b0c9a1..dc46889 100644 --- a/active_admin_filters_defaults.gemspec +++ b/active_admin_filters_defaults.gemspec @@ -14,7 +14,7 @@ Gem::Specification.new do |s| s.description = "Lets an Active Admin resource declare what its index filters on when opened " \ "without filters of its own: filter :state_eq, default: 'active'" - s.required_ruby_version = ">= 3.0" + s.required_ruby_version = ">= 3.3" s.add_dependency "activeadmin", ">= 3.5", "< 4" s.files = `git ls-files`.split("\n")