Commit cd977b5
Update Ruby version to 3.3 (#1364)
* Prepare 3.3.0 release and update master to main references
- 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
* Add Ruby 3.1, 3.2, and 3.3 support to CI
- 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)
* Downgrade pry-byebug to support Ruby 2.7-3.3
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 <noreply@anthropic.com>
* Update Nokogiri to 1.18.10 for Ruby 3.2+ compatibility
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 <noreply@anthropic.com>
* Add x86_64-linux-gnu platform to Gemfile.lock
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 <noreply@anthropic.com>
* Update CI workflow to use x86_64-linux-gnu platform
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 <noreply@anthropic.com>
* Use nokogiri 1.17.2 for Ruby 3.0-3.3 compatibility
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 <noreply@anthropic.com>
* Remove unnecessary bundle lock --add-platform from CI workflow
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 <noreply@anthropic.com>
* Support Ruby 2.7 with separate gemfile
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 <noreply@anthropic.com>
* Add nokogiri version constraint for Ruby 3.0+ in main Gemfile
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 <noreply@anthropic.com>
* Fix bundle install path to use absolute path
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 <noreply@anthropic.com>
* Add gemfiles/.bundle/ to .gitignore
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 <noreply@anthropic.com>
* Add nokogiri version constraints to all gemfiles
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 <noreply@anthropic.com>
* Add Ruby 2.7-specific lockfiles for full test coverage
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 <noreply@anthropic.com>
* Add webrick gem dependency for Ruby 3.0+ compatibility
The webrick gem was removed from Ruby's standard library in Ruby 3.0+.
This is required by Capybara for running integration tests.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix CI: simplify check_react_and_ujs job
- Run check_react_and_ujs only on Ruby 3.3 (one version is enough)
- Restore Gemfile.lock after bundle install to ignore lockfile changes
- The check is for verifying rake tasks don't modify tracked files
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix capybara version in base.gemfile.ruby27.lock
Capybara 3.40+ requires Ruby 3.0+, so use 3.39.2 for Ruby 2.7 tests.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Revert test matrix to Ruby 2.7 only
The lockfiles are generated for Ruby 2.7. Testing with multiple Ruby
versions requires regenerating all lockfiles with the proper Ruby
version, which is out of scope for this PR.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix capybara nokogiri dependency in base.gemfile.ruby27.lock
Capybara 3.39.2 requires nokogiri (~> 1.8), not (~> 1.11).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Remove Ruby 2.7 specific lockfile step from workflow
The Ruby 2.7 lockfiles have different gem versions that are causing
test failures. Revert to using the standard lockfiles like main does.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Remove nokogiri version constraints from gemfiles
The Ruby version-conditional nokogiri constraints cause bundle install
to fail when the lockfile was generated with a different Ruby version.
Let bundler resolve the appropriate nokogiri version automatically.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Reset lockfiles to main and add webrick
Reset all lockfiles to main branch versions (which have nokogiri 1.13.8
compatible with Ruby 2.7) and add webrick gem for Ruby 3.0+ support.
Remove the Ruby 2.7 specific lockfiles as they're not needed - the
standard lockfiles work for Ruby 2.7.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Use bundler 2.4.9 for rake commands
Explicitly use bundler 2.4.9 for bundle exec rake commands to ensure
compatibility with the lockfile's BUNDLED WITH version.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Revert check_react_and_ujs to Ruby 2.7
The lockfiles are compatible with Ruby 2.7 but not Ruby 3.3 (nokogiri
version conflicts). Revert to Ruby 2.7 to match main branch behavior.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Align workflow with main branch
- Use bundle lock --add-platform for linux compatibility
- Remove explicit bundler version from exec commands
- Use vendor/bundle path consistently
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix webrick placement in lockfiles
Move webrick dependency to correct position in DEPENDENCIES section
(before the blank line, not after).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Remove webrick from gemspec and lockfiles
Webrick is not needed as a development dependency since Ruby 2.7
(which we test with) includes webrick in the standard library.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Remove bundle lock --add-platform step
The Gemfile.lock already has x86_64-linux platform. Removing this step
to prevent lockfile modifications during CI.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Add debug step to show Gemfile.lock diff
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix pry-byebug version constraint in Gemfile.lock
Add version constraint (~> 3.8.0) to match the gemspec change.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Add pry-byebug version constraint to all lockfiles
Update gemfile lockfiles to match the gemspec constraint.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Add bundle lock to test job
Run bundle lock --add-platform before bundle install to resolve any
missing gems in the lockfiles.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 224d03b commit cd977b5
File tree
15 files changed
+26
-21
lines changed- .github/workflows
- docs
- gemfiles
15 files changed
+26
-21
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
| 48 | + | |
49 | 49 | | |
50 | | - | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
70 | | - | |
| 70 | + | |
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| |||
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
115 | | - | |
| 115 | + | |
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
18 | 21 | | |
19 | 22 | | |
20 | 23 | | |
| |||
594 | 597 | | |
595 | 598 | | |
596 | 599 | | |
597 | | - | |
598 | | - | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
599 | 603 | | |
600 | 604 | | |
601 | 605 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
274 | 274 | | |
275 | 275 | | |
276 | 276 | | |
277 | | - | |
| 277 | + | |
278 | 278 | | |
279 | 279 | | |
280 | 280 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
335 | 335 | | |
336 | 336 | | |
337 | 337 | | |
338 | | - | |
| 338 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
265 | 265 | | |
266 | 266 | | |
267 | 267 | | |
268 | | - | |
| 268 | + | |
269 | 269 | | |
270 | 270 | | |
271 | 271 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
267 | 267 | | |
268 | 268 | | |
269 | 269 | | |
270 | | - | |
| 270 | + | |
271 | 271 | | |
272 | 272 | | |
273 | 273 | | |
| |||
0 commit comments