Skip to content

ci: test against Ruby 4.0 and ruby-head#133

Merged
JuanVqz merged 5 commits into
mainfrom
ci/test-modern-ruby-versions
Jul 3, 2026
Merged

ci: test against Ruby 4.0 and ruby-head#133
JuanVqz merged 5 commits into
mainfrom
ci/test-modern-ruby-versions

Conversation

@etagwerker

@etagwerker etagwerker commented Jun 28, 2026

Copy link
Copy Markdown
Member

What

Extends the CI test matrix in .github/workflows/main.yml to cover more modern Ruby versions.

  • Adds Ruby 4.0 (the current stable release) to the supported matrix
  • Adds a non-blocking ruby-head (nightly) build via continue-on-error so upcoming breakage is visible without failing the suite
  • Sets fail-fast: false so one version failing doesn't cancel the rest of the matrix

Why

The matrix currently tops out at Ruby 3.4. Ruby 4.0 shipped on December 25, 2025 (the 3.5 line never reached a stable release), so the suite should run against it. Running head as well lets us catch incompatibilities before the next release.

Notes

Opening as a draft to see how the suite behaves on the newer versions before marking it ready for review.

🤖 Generated with Claude Code

etagwerker and others added 2 commits June 27, 2026 22:38
Extend the CI matrix to cover newer Ruby versions so we catch
incompatibilities early. Adds Ruby 3.5 to the supported matrix and
a non-blocking ruby-head build (continue-on-error) to surface
upcoming breakage without failing the suite.

Also sets fail-fast: false so one version failing doesn't cancel the
rest of the matrix.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Ruby 3.5 never shipped as a stable release; the December 2025 release
was branded Ruby 4.0. Point the matrix at the actual current stable
(4.0) instead of the 3.5 preview line.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@etagwerker etagwerker changed the title ci: test against Ruby 3.5 and ruby-head ci: test against Ruby 4.0 and ruby-head Jun 28, 2026
etagwerker and others added 3 commits June 28, 2026 17:23
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
terminal-table 4.0 requires unicode-display_width ~> 3.0, which conflicts
with every rubocop that still supports Ruby 2.7 (needs < 3.0). Bundler
silently backtracked rubocop to 0.7.2, which lacks rubocop/rake_task and
broke the suite on 2.6/2.7. terminal-table 3.x works on Ruby 4.0, so the
4.0 bump was unnecessary.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Skunk::Config is a process-global singleton. config_test.rb mutated
Config.formats but only reset in setup, so it leaked [:html, :json] into
other files. Under minitest's randomized order this intermittently failed
argv_test.rb's 'defaults to console format' expectation (seen on the
Ruby 3.2 CI job). Reset Config in config_test teardown and before/after
the argv formats tests so the suite is order-independent.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@etagwerker etagwerker marked this pull request as ready for review June 28, 2026 21:39

@JuanVqz JuanVqz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

looks good!

@etagwerker do you think is worth adding back support for Ruby 2.3?

@JuanVqz JuanVqz merged commit 0f542ea into main Jul 3, 2026
20 checks passed
@JuanVqz JuanVqz deleted the ci/test-modern-ruby-versions branch July 3, 2026 17:20
@etagwerker

Copy link
Copy Markdown
Member Author

do you think is worth adding back support for Ruby 2.3?

@JuanVqz I don't think that's necessary. It's getting harder and harder to support ancient rubies.

@JuanVqz

JuanVqz commented Jul 3, 2026

Copy link
Copy Markdown
Member

@etagwerker sounds good!

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.

2 participants