Skip to content

Test against maintained Ruby versions (3.3, 3.4, 4.0)#56

Merged
matt-evervault merged 5 commits into
masterfrom
update-ruby-version-matrix
Jun 26, 2026
Merged

Test against maintained Ruby versions (3.3, 3.4, 4.0)#56
matt-evervault merged 5 commits into
masterfrom
update-ruby-version-matrix

Conversation

@matt-evervault

@matt-evervault matt-evervault commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

What

Updates the CI test matrix and gemspec to target currently-maintained Ruby versions.

  • Test matrix (run-tests.yml, e2e.yml): 3.0, 3.1, 3.23.3, 3.4, 4.0
  • required_ruby_version: >= 3.0.0>= 3.3.0
  • rake: ~> 12.0~> 13.0

Why

The previous matrix tested only EOL Ruby versions:

  • 3.0 — EOL April 2024
  • 3.1 — EOL March 2025
  • 3.2 — EOL March 2026

It also had a latent bug: the unquoted 3.0 is parsed by YAML as the float 3.0, which collapses to "3", so setup-ruby installed the latest 3.x instead of 3.0 — the job never actually tested the declared minimum. Versions are now quoted so they mean what they say.

Per maintainer guidance, dropping EOL versions is acceptable — consumers should not be on these. required_ruby_version is raised to match the tested floor.

rake bump

Testing Ruby 4.0 (and any 3.5+) required moving off the old rake ~> 12.0 pin: rake 12.3.3 requires ostruct, which is no longer a default gem in Ruby 3.5+, so bundle exec rake failed to load with cannot load such file -- ostruct. rake 13.x dropped that dependency. Verified locally on Ruby 4.0.5: 66 examples, 0 failures.

Why not 3.5? setup-ruby currently resolves 3.5 to 3.5.0-preview1 — there's no stable release on that line; 4.0 is the stable release after 3.4.

Note

Follow-up to #54, which fixed the immediate CI failures (missing base64 dependency on Ruby 3.4+ and RuboCop offenses).

🤖 Generated with Claude Code

The previous matrix tested 3.0, 3.1, 3.2 — all now EOL (3.0 in
Apr 2024, 3.1 in Mar 2025, 3.2 in Mar 2026). It also had a latent
bug: the unquoted `3.0` was parsed by YAML as the float 3.0 and
collapsed to "3", so that job actually ran the latest 3.x rather
than 3.0.

Quote the versions and target the currently-maintained releases.
Raise required_ruby_version to >= 3.3.0 to match.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Jun 16, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 8a83702

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
evervault-ruby Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

The previous matrix tested 3.0, 3.1, 3.2 — all now EOL (3.0 in
Apr 2024, 3.1 in Mar 2025, 3.2 in Mar 2026). It also had a latent
bug: the unquoted `3.0` was parsed by YAML as the float 3.0 and
collapsed to "3", so that job actually ran the latest 3.x rather
than 3.0.

Quote the versions and target the currently-maintained stable
releases (3.3, 3.4). Raise required_ruby_version to >= 3.3.0 to
match. 3.5 is still only available as a preview, so it is left out
until it has a stable release.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@matt-evervault matt-evervault changed the title Test against maintained Ruby versions (3.3, 3.4, 3.5) Test against maintained Ruby versions (3.3, 3.4) Jun 16, 2026
Ruby 4.0 is the current stable release line. Testing it requires
bumping rake off the old ~> 12.0 pin: rake 12.3.3 requires ostruct,
which is no longer a default gem in Ruby 3.5+, so `bundle exec rake`
failed to load. rake 13.x dropped that dependency.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@matt-evervault matt-evervault changed the title Test against maintained Ruby versions (3.3, 3.4) Test against maintained Ruby versions (3.3, 3.4, 4.0) Jun 16, 2026
@matt-evervault matt-evervault self-assigned this Jun 16, 2026
@matt-evervault matt-evervault requested a review from lfarrel6 June 16, 2026 09:54
lfarrel6
lfarrel6 previously approved these changes Jun 26, 2026
@matt-evervault matt-evervault requested a review from lfarrel6 June 26, 2026 14:06
@matt-evervault matt-evervault merged commit 08bb9aa into master Jun 26, 2026
10 checks passed
@matt-evervault matt-evervault deleted the update-ruby-version-matrix branch June 26, 2026 14:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants