Skip to content

CI: drop EOL Ruby 3.2 / Rails 7.1, cover Ruby 4.0 and Rails 8.1#221

Merged
Fivell merged 3 commits into
masterfrom
chore/drop-eol-ruby-rails-add-8.1-ruby4
Jun 15, 2026
Merged

CI: drop EOL Ruby 3.2 / Rails 7.1, cover Ruby 4.0 and Rails 8.1#221
Fivell merged 3 commits into
masterfrom
chore/drop-eol-ruby-rails-add-8.1-ruby4

Conversation

@Fivell

@Fivell Fivell commented Jun 15, 2026

Copy link
Copy Markdown
Member

Refreshes the supported-version matrix to current upstream reality (checked against endoflife.date on 2026-06-15).

Removed — end of life

Runtime EOL date
Ruby 3.2 2026-03-31
Rails 7.1 2025-10-01

Added — current stable

Runtime Latest Supported until
Ruby 4.0 4.0.5 2029-03-31
Rails 8.1 8.1.3 2027-10-10

Rails 7.2 (security until 2026-08-09) and 8.0 (security until 2026-11-07) are kept — still supported, not EOL.

Changes

  • .github/workflows/test.yml: matrix is now Ruby 3.3 / 3.4 / 4.0 × Rails 7.2.0 / 8.0.0 / 8.1.0. Active Admin 3.2.0 is excluded on Rails 8.1 (as it already was on 8.0 — it predates Rails 8 support), and a Rails 8.1 cell is added to the Active Admin 4 set.
  • active_admin_import.gemspec: required_ruby_version >= 3.1.0>= 3.3.0.
  • Gemfile: dev defaults moved from Rails 7.1.0 + AA 3.2.0 (EOL / incompatible with Rails 8) to Rails 8.0.0 + AA 3.5.1.
  • spec/support/rails_template.rb: strip stale_when_importmap_changes from the generated ApplicationController. Rails 8.1 emits this importmap-rails macro by default, but the AA 3 test app uses Sprockets, so without this the controller raised NameError at boot and every feature spec failed on Rails 8.1. No-op on Rails < 8.1; harmless on the AA 4 path.

Verification

Full suite green locally on the new top combo Ruby 3.3 / Rails 8.1.3 / AA 3.5.1 / SQLite58 examples, 0 failures (coverage 99.3%). The Ruby 4.0 and Active Admin 4 / Rails 8.1 cells are exercised by CI on this PR.

Fivell added 3 commits June 15, 2026 10:56
Rails 8.1's generated ApplicationController calls stale_when_importmap_changes,
a macro from importmap-rails. The Active Admin 3 asset setup uses Sprockets,
not importmap, so the macro is undefined and the controller raised NameError
at boot, failing every feature spec on Rails 8.1. Strip the line from the
generated controller. No-op on Rails < 8.1 and harmless on the AA 4 path.
Ruby 3.2 reached EOL on 2026-03-31 and Rails 7.1 on 2025-10-01, so remove
them from the matrix. Add the current stable releases Ruby 4.0 and Rails 8.1
(8.1.x via the existing ~> pin), keeping Rails 7.2/8.0 which are still in
security support. Exclude Active Admin 3.2.0 on Rails 8.1 as well, since it
predates Rails 8 support, and add a Rails 8.1 cell to the Active Admin 4 set.

Bump the gemspec required_ruby_version to >= 3.3.0 and move the Gemfile dev
defaults to Rails 8.0.0 + Active Admin 3.5.1 (the previous 7.1.0 default is
EOL; 3.2.0 cannot run on Rails 8).
The earlier gsub_file approach could not work: on Rails 8.1 rake setup boots
the app during `rails generate model` (the gem's bundle has no importmap-rails),
so the generated ApplicationController's stale_when_importmap_changes macro
raised NameError and aborted setup before the gsub ran. Drop the gsub and pass
--skip-javascript on the non-v4 path so the macro is never generated. Verified:
fresh rake setup + full suite on Ruby 3.3 / Rails 8.1.3 / AA 3.5.1 / SQLite is
green (58 examples, 0 failures).
@Fivell Fivell merged commit 85c8378 into master Jun 15, 2026
38 checks passed
@Fivell Fivell deleted the chore/drop-eol-ruby-rails-add-8.1-ruby4 branch June 15, 2026 09:35
@Fivell Fivell mentioned this pull request Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant