Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #149 +/- ##
=======================================
Coverage 86.88% 86.88%
=======================================
Files 48 48
Lines 694 694
=======================================
Hits 603 603
Misses 91 91 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
Updates the Rails release “requirements” data used by the data:update_rails_releases task so stored RailsRelease records better reflect Rails/Bundler/RubyGems version constraints.
Changes:
- Adds
maximum_bundler_versionacross Rails versions and adjusts severalminimum_bundler_versionvalues. - Updates Ruby version ranges for Rails 7.x–8.1 (notably raising max Ruby for 8.0/8.1).
- Updates minimum RubyGems versions for Rails 7.2+ and 8.x.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "2.3" => { | ||
| minimum_ruby_version: "1.8.7", | ||
| maximum_ruby_version: "1.9.3", | ||
| minimum_bundler_version: "1.17.3", | ||
| minimum_bundler_version: "1.0.0", | ||
| maximum_bundler_version: "1.17.3", | ||
| minimum_rubygems_version: "1.3.6" |
There was a problem hiding this comment.
The task updates maximum Ruby/Bundler versions but never sets maximum_rubygems_version for any Rails version, even though the rails_releases table includes a maximum_rubygems_version column (see db/schema.rb). If the intent is to track max supported RubyGems versions (as mentioned in the PR description), add maximum_rubygems_version values here; otherwise consider removing/renaming the column or updating the PR description to match the implemented behavior.
| "8.0" => { | ||
| minimum_ruby_version: "3.2.0", | ||
| maximum_ruby_version: "3.4.2", | ||
| maximum_ruby_version: "4.0.2", | ||
| minimum_bundler_version: "2.5.20", | ||
| maximum_bundler_version: "2.5.20", | ||
| minimum_rubygems_version: "3.2.3" | ||
| }, | ||
| maximum_bundler_version: "4.0.8", | ||
| minimum_rubygems_version: "3.3.3" | ||
| }, | ||
| "8.1" => { | ||
| minimum_ruby_version: "3.2.0", |
There was a problem hiding this comment.
This task now includes Rails 8.0/8.1 entries (and updates Bundler/RubyGems constraints too), but the task desc still says it updates minimum Ruby versions only and only up to Rails 7.2. Updating the desc string would keep rake -T output accurate for the expanded scope.
There was a problem hiding this comment.
It would be great to have a document/section in the readme about where/what we should check to gather this information and what the criteria are that we use to update/add the new minimum/maximum version for future Rails releases.
Could we add a short section in the README documenting how we derive these Rails release compatibility values?
Specifically:
Which sources we use (for Ruby, Bundler, and RubyGems constraints).
The criteria/rules for setting minimum and maximum versions.
That would make future updates more consistent and easier to review.
| minimum_ruby_version: "2.7.0", | ||
| maximum_ruby_version: "3.1.6", | ||
| minimum_bundler_version: "2.4.0", | ||
| maximum_bundler_version: "4.0.8", |
There was a problem hiding this comment.
Bundler 4.0.8 (shows Required Ruby Version: >= 3.2.0): rubygems.org/gems/bundler/versions/4.0.8
There was a problem hiding this comment.
Yes, but bundle 2.4 works with Ruby 2.7, that's the point
| maximum_ruby_version: "3.3.5", | ||
| minimum_bundler_version: "2.3.27", | ||
| maximum_bundler_version: "2.5.20", | ||
| maximum_bundler_version: "4.0.8", |
There was a problem hiding this comment.
Should this max Bundler be lower for Rails 7.1? Bundler 4.0.8 needs Ruby >= 3.2.0 and the minimum_ruby_version is 2.7.0 which cannot be used at Bundler 4.0.8.
There was a problem hiding this comment.
I don't think so. The way I interpret these values is that there is a combination of ruby, bundler and rubygems that works with this version of Rails. So, if you use bundler 4.0.8, you cannot use Ruby 2.7, but you can use 3.3 and then both bundler and ruby at those versions are compatible with Rails 7.
The important thing here is if rails 7 is compatible with bundler 4, not if bundler 4 works with ruby 2.7 (which also happens to be compatible with Rails 7)
| end | ||
| end | ||
|
|
||
| desc "Update minimum Ruby versions from Rails 2.3 to 7.2" |
There was a problem hiding this comment.
| desc "Update minimum Ruby versions from Rails Releases" |
There was a problem hiding this comment.
I think you misunderstand the title of the task. Maybe it could be "Update minimum Ruby versions for all Rails releases"
Went through all the rails versions and updated the minimum and maximum required versions of ruby, bundler and rubygems to more closely reflect Rails maintenance policy and their gemspec as well as bundler's requirements for ruby versions.
Closes #147