rails / rails

Ruby on Rails
https://rubyonrails.org
MIT License
55.35k stars 21.44k forks source link

Require Rack 3 #50565

Open rafaelfranca opened 6 months ago

rafaelfranca commented 6 months ago

As this is a major version, let's drop support to Rack 2 and keep pushing the ecosystem forward.

ioquatix commented 6 months ago

I am happy to do this, if you are happy with that. There is a lot of compatibility cruft that I am responsible for and I'd be glad to rip it all out.

In addition to this, I've been testing Rack head (what will be released as 3.1) with Rails head and found there were no issues (at least last time I checked). Rack head cleans up a lot of deprecations/Rack 2 compatibility stuff. It makes sense we stick with Rack 3.0+ but also start testing on both Rack 3.0 and Rack head (3.1).

Earlopain commented 2 months ago

Some info to potentially consider: the unicorn webserver still doesn't work well with Rack 3, even though a patch for support has been available for almost a year now. https://yhbt.net/unicorn-public/ZHlX3HkxP6mK16If@jeremyevans.local/. This results in issues like https://github.com/rails/rails/issues/48195 because it doesn't prevent pulling in incompatible rack versions. It is questionable if a new release will even be made, and if that release will be available on RubyGems as per the maintainers comments in the mailing list.

People need to replace unicorn with something else in the future, waiting on unicorn will not push the ecosystem forward. Rails 8 is still months out anyways and things with unicorn have hopefully changed by then, though I would urge anyone that still uses unicorn to make plans to replace it regardless.

rafaelfranca commented 2 months ago

https://github.com/Shopify/pitchfork if people are interested in moving on

ekampp commented 1 week ago

The default for Rails is currently puma, right? And since 6.1 supports rack 3, it feels like pushing forward should generally be safe.