Upgrade to Ruby 4.0.6 - #5707
Conversation
Used OpenCode and Qwen3.8 to accomplish this upgrade. Bump the runtime/CI/dev/production Ruby version pins to 4.0.6. Add benchmark and readline to the Gemfile: both were removed from Ruby's default gems in 4.0 but delayed_job and pry-remote require them without declaring them as dependencies. faraday-retry transitively updates to 1.0.4. Verified under Ruby 4.0.6: full rspec suite (main models/services/controllers, requests, and system specs), rubocop + erb_lint, factory_bot:lint, and brakeman all pass.
|
In general Ruby upgrades are handled by the core team. This is because we have to plan the migration - we have to spin up a new server with the new Ruby version, add it to the load balancer, ensure nothing breaks, then bring down the old one. Because of the work, we generally only upgrade Ruby every couple of years instead of as soon as possible. A new Ruby version is due out in December (so in 3 months from now) - I'd probably want to wait until then to do this so we don't have to do it twice. @awwaiid thoughts? Are you up for doing the upgrades more often or are we OK to wait? |
|
@dorner yeah the machine thing and installation there is what gets me. I think keeping up to date on rails is more important, unless there is something about the 3-to-4 jump in ruby that we should know about. |
Used OpenCode and Qwen3.8 to accomplish this upgrade.
Bump the runtime/CI/dev/production Ruby version pins to 4.0.6.
Add benchmark and readline to the Gemfile: both were removed from Ruby's
default gems in 4.0 but delayed_job and pry-remote require them without
declaring them as dependencies. faraday-retry transitively updates to 1.0.4.
Verified under Ruby 4.0.6: full rspec suite (main models/services/controllers,
requests, and system specs), rubocop + erb_lint, factory_bot:lint, and
brakeman all pass.