Declare and test the supported Ruby versions - #10
Merged
Conversation
The gemspec constrained nothing, so the gem installed happily onto Rubies it cannot boot on: 3.4 dropped mutex_m from the default gems and Rails 6.1 needs it. .rubocop.yml separately claimed 2.5, which no longer resolves. The specs job becomes a matrix so the range is tested rather than asserted. 3.0 through 3.3 all pass, which is what the constraint now declares.
IgorFroehner
force-pushed
the
chore/ruby-support
branch
from
August 13, 2026 19:33
ee53d82 to
5baa170
Compare
IgorFroehner
marked this pull request as ready for review
August 13, 2026 19:34
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the last item from the maintenance sweep: the gem never said which
Rubies it supports, and nothing tested the answer.
Why
recorder.gemspechad norequired_ruby_versionat all, so the gem installedonto Rubies it cannot boot on — 3.4 dropped
mutex_mfrom the default gems andRails 6.1 needs it. That is the same failure that made the suite unrunnable
before #8, except a consumer hits it at
requiretime instead..rubocop.ymlseparately claimedTargetRubyVersion: 2.5, which the pinnedRuboCop no longer resolves against anything real.
What's here
required_ruby_version = ['>= 3.0', '< 3.4']TargetRubyVersion: 3.0, matching the floor rather than contradicting itThe matrix is the point. A declared range nothing exercises is a guess, and this
gem has just spent three years demonstrating where that leads.
Verification
All four pass, so the range is measured rather than asserted:
3.0 went in provisionally — it would not build locally, so CI decided it. It
passes, so the floor is wider than I could confirm by hand, and no consumer on
3.0 gets locked out.
Notes
The upper bound comes off with the Rails 7/8 upgrade, which is what actually
blocks 3.4. Until then it is load-bearing.
.ruby-versionstays at 3.3.11 for local development and for the lint job;only the specs job varies.