Skip to content

Require Ruby 3.3 and stop testing Rails 7.2, both end of life - #565

Open
czj wants to merge 6 commits into
fnando:mainfrom
czj:drop-ruby-3-2-rails-7-2
Open

czj wants to merge 6 commits into
fnando:mainfrom
czj:drop-ruby-3-2-rails-7-2

Conversation

@czj

@czj czj commented Oct 25, 2026

Copy link
Copy Markdown

Hi Nando! Following @mjankowski's suggestion on #564, this drops Ruby 3.2 and Rails 7.2, which both reached end of life. It's stacked on #564, so only the last two commits are new here, and I kept it separate since raising required_ruby_version is your call for the next release.

  • The gemspec now requires Ruby 3.3, with a line in the changelog. Rails was only ever a development dependency, so dropping 7.2 just removes gemfiles/7_2.gemfile from the matrix.
  • Without Ruby 3.2, the workflow goes back to ubuntu-latest, since ruby/setup-ruby has Ruby 3.3 builds for Ubuntu 26.04.
  • RuboCop's TargetRubyVersion moves from 2.5 to 3.3. The 8 offenses this reveals are autocorrected and unchanged in behavior: .freeze on regexp literals (frozen since Ruby 3.0), require "set" (autoloaded since 3.2) and anonymous block forwarding.

bundle exec rake passes locally with Ruby 4.0 on both remaining gemfiles. Rails 8.0 reaches end of life soon too; I left it in the matrix for now, as it's the only thing still needing json < 3. Happy to drop it here as well if you prefer!


🤖 Generated with Claude Code, but prompted, read, and verified by @czj, a caring human :)

czj and others added 6 commits October 25, 2026 14:42
On Rails 8.1, requiring rails/railtie on its own raises NoMethodError
(delegate_missing_to is undefined), which broke the test suite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Active Support < 8.1 passes the quirks_mode option that json 3 removed,
so these gemfiles keep json 2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pull_request_target checks out main, so pull requests ran main's code
instead of their own. Pin ubuntu-24.04, which still has Ruby 3.2 builds,
and let setup-ruby cache the bundle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both reached end of life. Without Ruby 3.2 the workflow can run on
ubuntu-latest again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The offenses this reveals are autocorrected: regexp literals are frozen
since Ruby 3.0, Set is autoloaded since 3.2, and blocks can be forwarded
anonymously since 3.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@czj

czj commented Oct 25, 2026

Copy link
Copy Markdown
Author

Same as on #564: the red checks above come from the pull_request_target run, which checks out main (hence the 7_0 and 7_1 gemfiles). Here is this branch on my fork, green on all 6 jobs (Ruby 3.3 to 4.0, Rails 8.0 and 8.1, on ubuntu-latest): https://github.com/czj/browser/actions/runs/40208491505

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