Skip to content

ci: stop gating releases on Ruby 4.0 + Rails 7.1, which Rails does not support - #288

Merged
pftg merged 1 commit into
masterfrom
ci/drop-ruby4-rails71
Aug 24, 2026
Merged

ci: stop gating releases on Ruby 4.0 + Rails 7.1, which Rails does not support#288
pftg merged 1 commit into
masterfrom
ci/drop-ruby4-rails71

Conversation

@pftg

@pftg pftg commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

Rails 7.1's gemspec declares required_ruby_version >= 2.7.0 — a floor with no upper bound, not a statement of support. Rails 7.1 shipped in October 2023, years before Ruby 4.0, and Rails never tested the pair.

We have been propping it up, not testing it

prop why it exists
gemfiles/rails71_gems.rbrequire: %w[logger ...] Ruby 3.5+/4.0 dropped logger from default gems
#283's defined?(ActiveSupport::Testing::TestsWithoutAssertions) guard the constant is Rails 7.2+

Both were correct fixes. Together they mean a red on that cell is upstream's unsupported configuration, not our defect — and today it blocked a release twice while every supported combination was green.

After this change

Rails 7.1 stays covered on 3.3, 3.4, jruby-10.0. The #283 guard stays — 7.1 lacks that constant on every Ruby, not only 4.0.

Deliberately not decided here

3.4 + Rails 7.1 is also outside what Rails formally lists, though 7.1.5+ carries Ruby 3.4 fixes. Left alone: that is a support-policy call, and unlike Ruby 4 it is not currently costing us anything.

YAML validated.

Summary by Sourcery

Stop gating releases on the unsupported Ruby 4.0 and Rails 7.1 combination while preserving supported Rails 7.1 test coverage.

Enhancements:

  • Remove Ruby 4.0 with Rails 7.1 from the release-gating test matrix while retaining Rails 7.1 coverage on supported Ruby versions.

CI:

  • Stop allowing the unsupported Ruby 4.0 and Rails 7.1 combination to block releases.

…t support

Rails 7.1's gemspec says `required_ruby_version >= 2.7.0`. That is a floor with
no upper bound, not a statement of support: 7.1 shipped in October 2023, years
before Ruby 4.0 existed, and Rails never tested the pair.

We have been propping the combination up rather than testing it:

- `gemfiles/rails71_gems.rb` carries an explicit `require: %w[logger ...]`
  purely because Ruby 3.5+/4.0 dropped logger from the default gems;
- #283 added a `defined?` guard for `ActiveSupport::Testing::TestsWithoutAssertions`
  on the same cells.

Each was a real fix, but together they mean a red there is upstream's
unsupported configuration, not our defect -- and today that cell blocked a
release twice while every supported combination was green.

Rails 7.1 stays covered on 3.3, 3.4 and jruby-10.0, which Rails does support.
The #283 guard stays: 7.1 lacks that constant on every Ruby, not just 4.0.

Open question left deliberately: 3.4 + Rails 7.1 is also outside what Rails
formally lists, though 7.1.5+ carries 3.4 fixes. Not touched here -- that call
belongs with whoever sets the support policy, and unlike Ruby 4 it is not
currently costing us anything.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @pftg, you have reached your weekly rate limit of 250000 diff characters.

Please try again later or upgrade to continue using Sourcery

@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 36 minutes.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 240d0f3c-2410-45dc-b539-de93686d7327

📥 Commits

Reviewing files that changed from the base of the PR and between bd0a190 and 6359123.

📒 Files selected for processing (1)
  • .github/workflows/test.yml

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sourcery-ai

sourcery-ai Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

Updates the CI matrix policy so the unsupported Ruby 4.0/Rails 7.1 combination no longer gates releases, while preserving supported Rails 7.1 coverage and documenting the rationale.

File-Level Changes

Change Details Files
Remove Ruby 4.0 with Rails 7.1 from the release-gating CI matrix because Rails 7.1 does not support that combination.
  • Document why the Rails 7.1/Ruby 4.0 job is an unsupported configuration rather than a project defect.
  • Retain release-gating coverage for Rails 7.1 on Ruby 3.3 and 3.4.
  • Leave existing compatibility workarounds and the Rails 7.1 constant guard unchanged.
.github/workflows/test.yml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@pftg pftg added the full-ci Run full test matrix on this PR label Aug 24, 2026
@pftg
pftg merged commit f1951c1 into master Aug 24, 2026
33 checks passed
@pftg
pftg deleted the ci/drop-ruby4-rails71 branch August 24, 2026 18:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

full-ci Run full test matrix on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant