Improve CI: test against Ruby 4.0 and update actions - #274
Open
tagliala wants to merge 1 commit into
Open
Conversation
- Add Ruby 4.0 to the CI test matrix - Update actions/checkout from v3 to v7 (latest release) - Restrict mustermann to < 4: mustermann 4.0 conflicts with sinatra 4.x's 'mustermann (~> 3.0)' requirement, causing Bundler to fall back to sinatra 1.0 which does not support rack 3.x - Move rackup gem inside Ruby >= 3.0 conditional: rack 2.x bundles rackup built-in, only Ruby >= 3.0 with rack 3.x needs the gem - Add rack < 3 for Ruby < 3.0: sinatra ~> 2.2 requires rack 2.x - Make localhost_server.rb require rackup conditionally to match
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.
Summary
actions/checkoutfrom v3 to v7 (latest release)What changed and why
actions/checkoutv3 → v7Updated to the latest major release (v7.0.1).
mustermannpinned to < 4The
mustermanngem was resolving to 4.0.0, which conflicts with sinatra 4.x'smustermann (~> 3.0)requirement. This caused Bundler to give up on sinatra 4.x and fall back to sinatra 1.0, which does not support rack 3.x (it requiresrack/showexceptions, removed in rack 3). Pinning to< 4allows sinatra 4.x to resolve correctly.rackupmoved inside Ruby >= 3.0 conditionalRack 2.x bundles rackup built-in (
Rack::Handler::WEBrick). The separaterackupgem is only needed for rack 3.x, so it is now only required for Ruby >= 3.0.rack < 3for Ruby < 3.0Sinatra ~> 2.2 (used for older Rubies) requires rack 2.x.
localhost_server.rbconditional rackup requireMatches the Gemfile change — only loads the rackup gem when running on Ruby >= 3.0 with rack 3.x.
CI results
Passing (18/22):
Failing (4/22) — all known/expected:
patronnative extension fails to build on Ruby 4.1.0dev (upstream issue), and Bundler 4 has compatibility issues with the lockfile formatbundleexit code 5 issueThese are all already
continue-on-error: truetargets in the CI matrix.Local test results
All 579 examples pass on Ruby 3.3, 3.4, and 4.0 with 0 failures (tested via mise).