Skip to content

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

Open
etagwerker wants to merge 5 commits into
mainfrom
ci/test-modern-ruby-versions
Open

ci: test against Ruby 4.0 and ruby-head#133
etagwerker wants to merge 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
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