-
Notifications
You must be signed in to change notification settings - Fork 751
Update Ruby version to 3.3 #1364
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
justin808
wants to merge
14
commits into
main
Choose a base branch
from
jg-/update-ruby-version
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
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
- Updated CHANGELOG.md with 3.3.0 release for Propshaft support - Renamed master branch references to main in documentation links - Updated VERSIONS.md to show main branch instead of master
c34a5c7 to
067a605
Compare
- Update GitHub Actions workflows to test Ruby 2.7, 3.0, 3.1, 3.2, and 3.3 - Ensures compatibility across a wide range of Ruby versions - Rebuilt Gemfile.lock with Ruby 3.4 (compatible with 3.x)
067a605 to
c30c40e
Compare
The previous pry-byebug 3.11.0 required byebug ~> 12.0, which only supports Ruby >= 3.1. This caused CI failures on Ruby 3.0 because bundle lock would modify the Gemfile.lock during the build. This change constrains pry-byebug to ~> 3.8.0, which uses byebug ~> 11.0 that supports Ruby 2.7 through 3.3, ensuring the Gemfile.lock works across all supported Ruby versions without modification. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
The previous Nokogiri version 1.13.8 did not support Ruby 3.2+, causing CI test failures for Ruby 3.2 and 3.3. Updated all gemfile.lock files to use Nokogiri 1.18.10 which supports Ruby versions from 2.6 through 3.4+. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Nokogiri 1.18.10 uses x86_64-linux-gnu as the platform identifier instead of x86_64-linux. The CI workflow runs 'bundle lock --add-platform x86_64-linux' which was causing the lockfile to be modified because the platform wasn't pre-resolved. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Nokogiri 1.18.10+ uses x86_64-linux-gnu instead of x86_64-linux as the platform identifier. Updated the CI workflow to use the correct platform and removed the arm64-darwin-24 platform from Gemfile.lock to keep it consistent with CI expectations. This fixes the check_react_and_ujs test failures where Gemfile.lock was being modified during CI runs. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Nokogiri 1.18+ requires Ruby >= 3.2, which breaks Ruby 3.0 and 3.1 support. Additionally, nokogiri 1.18 changed the platform identifier from x86_64-linux to x86_64-linux-gnu, causing lockfile inconsistencies. Using nokogiri 1.17.2 which: - Supports the full Ruby 2.7-3.3 range - Uses the x86_64-linux platform identifier consistently - Resolves dependency issues across all supported Ruby versions Reverted CI workflow to use x86_64-linux platform (not -gnu). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
7de2087 to
bd0aac3
Compare
The x86_64-linux platform is already present in all Gemfile.lock files, so running 'bundle lock --add-platform' is unnecessary and was causing the lockfile to be modified during CI runs, particularly on Ruby 2.7. This fixes the check_react_and_ujs (2.7) test failure. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Created gemfiles/ruby27.gemfile with nokogiri ~> 1.15.0 to support Ruby 2.7. Nokogiri 1.16.0+ requires Ruby >= 3.0, making it impossible to use a single Gemfile.lock for Ruby 2.7-3.3. Changes: - Added gemfiles/ruby27.gemfile with nokogiri 1.15.x constraint - Generated gemfiles/ruby27.gemfile.lock with nokogiri 1.15.7 - Updated CI workflow to use ruby27.gemfile for Ruby 2.7 tests - Main Gemfile.lock remains for Ruby 3.0+ with nokogiri 1.17.2 This allows supporting the full Ruby 2.7-3.3 range while working around the nokogiri version compatibility constraints. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Added conditional nokogiri ~> 1.17.0 constraint in Gemfile for Ruby 3.0+. Regenerated Gemfile.lock with nokogiri 1.17.2 for Ruby 3.0-3.3 support. This ensures: - Ruby 2.7 uses gemfiles/ruby27.gemfile with nokogiri 1.15.7 - Ruby 3.0+ uses main Gemfile with nokogiri 1.17.2 Also fixed cache key logic in CI workflow to properly separate cache by Ruby version and gemfile. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Use absolute path for vendor/bundle to prevent bundler from creating directories relative to BUNDLE_GEMFILE location (gemfiles/vendor/). This fixes untracked file errors in Ruby 2.7 CI runs. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Bundler creates a .bundle config directory relative to BUNDLE_GEMFILE location. Added gemfiles/.bundle/ to .gitignore to prevent CI check from failing due to untracked files when using ruby27.gemfile. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Add Ruby version-specific nokogiri constraints to ensure compatibility: - nokogiri ~> 1.15.0 for Ruby < 3.0 - nokogiri ~> 1.17.0 for Ruby >= 3.0 This extends the constraint added to the main Gemfile to all the test gemfiles used for different configurations. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Created separate lockfiles for Ruby 2.7 with nokogiri 1.15.x: - gemfiles/base.gemfile.ruby27.lock - gemfiles/propshaft.gemfile.ruby27.lock - gemfiles/shakapacker.gemfile.ruby27.lock - gemfiles/sprockets_3.gemfile.ruby27.lock - gemfiles/sprockets_4.gemfile.ruby27.lock Updated CI workflow test job to: - Copy Ruby 2.7-specific lockfile before bundle install - Add Ruby version to cache key for proper cache separation Regenerated all gemfiles/*.gemfile.lock with Ruby 3.0 to use nokogiri 1.17.2 for Ruby 3.0-3.3 support. This provides full test coverage for all Ruby versions (2.7-3.3) while working around nokogiri version incompatibilities. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
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
Updates the project from Ruby 2.7/3.0 to Ruby 3.3 to take advantage of the latest Ruby features and improvements. Ruby 3.3 is the current stable release with better performance and modern features.
Changes
pry-byebugwithdebuggem (standard library in Ruby 3.0+) for better Ruby 3.3+ compatibilityPull Request checklist
[ ] Add/update test to cover these changes[ ] Update CHANGELOG file