ci: test against Ruby 4.0 - #160
Conversation
There was a problem hiding this comment.
Pull request overview
Adds Ruby 4.0 to the GitHub Actions build matrix for this gem, aligning CI coverage with the newly released Ruby version and extending the existing BUNDLE_FORCE_RUBY_PLATFORM mitigation used for Ruby 3.4.
Changes:
- Expand CI Ruby matrix to include Ruby
4.0. - Enable
BUNDLE_FORCE_RUBY_PLATFORMfor Ruby4.0in addition to Ruby3.4.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 11 changed files in this pull request and generated no new comments.
Suppressed comments (1)
.github/workflows/build.yml:9
- The Ruby CI matrix drops Ruby 3.0 (previously tested) without any corresponding update to the documented support/testing range. README.md states “You need Ruby 3.0 or later” and that CI is tested on Ruby 3.0–3.4; if Ruby 3.0 is still supported, it should remain in the matrix (or the docs/support policy should be updated in a separate change).
matrix:
ruby: ['3.1', '3.2', '3.3', '3.4', '4.0']
gemfile: ['active6.0.6', 'active6.1.7.6', 'active7.0.8', 'active7.1.3', 'rails6.0.6', 'rails6.1.7.6', 'rails7.0.8', 'rails7.1.3']
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 11 changed files in this pull request and generated no new comments.
Suppressed comments (1)
.github/workflows/build.yml:8
- The Ruby matrix drops 3.0 (now starts at 3.1), but the PR title/description only mention adding Ruby 4.0, and README.md states the project is tested on Ruby 3.0 through 3.4. If Ruby 3.0 support is still intended, add it back to the matrix; if not, please explicitly document the dropped support (e.g., update README and/or required_ruby_version) so the CI coverage matches the stated compatibility.
ruby: ['3.1', '3.2', '3.3', '3.4', '4.0']
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 11 changed files in this pull request and generated no new comments.
Suppressed comments (1)
.github/workflows/build.yml:8
- The CI matrix dropped Ruby 3.0 (previously tested) while the PR description only mentions adding Ruby 4.0. If Ruby 3.0 is still a supported/runtime target, this change reduces coverage and may be an unintended breaking change in CI expectations.
ruby: ['3.1', '3.2', '3.3', '3.4', '4.0']
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 11 changed files in this pull request and generated no new comments.
Suppressed comments (1)
.github/workflows/build.yml:8
- The CI matrix drops Ruby 3.0 (now starts at 3.1), but the PR description only mentions adding Ruby 4.0, and the repo docs state testing spans Ruby 3.0+ (e.g., README). If Ruby 3.0 support is still intended, it should remain in the CI matrix; otherwise the docs/support statement should be updated accordingly.
ruby: ['3.1', '3.2', '3.3', '3.4', '4.0']
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 11 changed files in this pull request and generated no new comments.
Suppressed comments (1)
.github/workflows/build.yml:8
- The CI matrix drops Ruby 3.0, but README.md currently states the gem requires Ruby 3.0+ and is tested on Ruby 3.0–3.4. Either Ruby 3.0 should remain in the matrix, or the documentation/support statement should be updated accordingly (and potentially any other Ruby-version assertions elsewhere).
ruby: ['3.1', '3.2', '3.3', '3.4', '4.0']
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 11 changed files in this pull request and generated no new comments.
Suppressed comments (1)
.github/workflows/build.yml:8
- The CI matrix now removes Ruby 3.0 (previously tested) even though the project documentation states Ruby 3.0+ and that CI covers Ruby 3.0–3.4. If Ruby 3.0 support is still intended, add it back to the matrix; if support is being dropped, the README (and ideally gemspec
required_ruby_version) should be updated accordingly.
ruby: ['3.1', '3.2', '3.3', '3.4', '4.0']
minitest has no single version supporting both Ruby 3.0 and 4.0 (5.26.x caps at < 4.0, 5.27.0 drops the cap but requires >= 3.1). Ruby 3.0 is EOL, so drop it from the matrix and bump minitest.
rubocop's html_formatter requires ostruct, which is no longer a default gem as of Ruby 4.0, causing bundle exec rubocop to fail with a LoadError.
rubocop's exe/rubocop, rake, and activesupport require benchmark, which is no longer a default gem as of Ruby 4.0.
rspec-core 3.5.x calls ERB.new with the deprecated 3-argument signature, which Ruby 4.0 removed entirely, crashing `bundle exec rspec` on startup. rspec-core 3.13.x fixed this.
activesupport, rake, and comma's own lib/comma.rb require logger, which is no longer a default gem as of Ruby 4.0.
Old rack (used by the rails6/7 appraisal gemfiles) requires cgi/cookie, which is no longer bundled with Ruby 4.0.
Summary
BUNDLE_FORCE_RUBY_PLATFORMを 4.0 でも有効化Test plan