rails icon indicating copy to clipboard operation
rails copied to clipboard

Allow upgrade to rack 3.0

Open ioquatix opened this issue 1 year ago • 7 comments

Should we add Rack 3 to the text matrix? It's not released yet but will be soon, in the mean time you can get it from git: "https://github.com/rack/rack".

ioquatix avatar Aug 03 '22 05:08 ioquatix

It's a bit complicated to add another gem version to the "matrix", we test multiple Ruby versions, but not multiple dependency versions.

I'd encourage you to first open a PR that points to rack 3 to see if we can spot some compatibility problems, and if so we'll address them.

byroot avatar Aug 03 '22 18:08 byroot

Note to self: CI is failing because bundle lock has to be run. (I'll probably do it tomorrow)

byroot avatar Aug 03 '22 18:08 byroot

I'd encourage you to first open a PR that points to rack 3 to see if we can spot some compatibility problems, and if so we'll address them.

Do you mind explaining how to do this, because I tried to find a BK pipeline config but couldn't find it. I could not see how to achieve what you are describing, unless you mean add gem "rack", git: ... to the top level gemfile?

ioquatix avatar Aug 05 '22 03:08 ioquatix

cc @tenderlove @jeremyevans

ioquatix avatar Aug 05 '22 03:08 ioquatix

unless you mean add gem "rack", git: ... to the top level gemfile?

Yeah I think that's what he meant

It's a bit complicated to add another gem version to the "matrix", we test multiple Ruby versions, but not multiple dependency versions.

While complicated, I do think if the plan is to support both versions in the next release we probably want both tested. Maybe running an isolated style suite against each (only on Ruby 3.1) would be sufficient?

https://github.com/rails/buildkite-config Buildkite config is here

skipkayhil avatar Aug 05 '22 04:08 skipkayhil

I have created a branch/PR to resolve the issue with sprockets preventing rack 3 at https://github.com/rails/sprockets/pull/758 - but there appears to be some similar issues with some other test dependencies.

  • Sidekiq has rack locked at (https://github.com/mperham/sidekiq/blob/1096df58a4f428d12b4b002f8f845f604073fdb1/sidekiq.gemspec#L27). Sidekiq also has a test dependency on Rails which means it can't start testing against Rack 3 until Rails fully supports it.
  • Blade has a dependency on Thin - which is locked at https://github.com/macournoyer/thin/blob/10607a2663fc282d67f98a930f954dc407fd056d/thin.gemspec#L25. I think that rails-ujs is no longer used by default so maybe we should remove it from ActionView and restore the https://github.com/rails/rails-ujs repo for it going forward - which would remove the only use case of Blade from Rails.

lsylvester avatar Sep 10 '22 14:09 lsylvester

  • Blade has a dependency on Thin - which is locked at https://github.com/macournoyer/thin/blob/10607a2663fc282d67f98a930f954dc407fd056d/thin.gemspec#L25. I think that rails-ujs is no longer used by default so maybe we should remove it from ActionView and restore the https://github.com/rails/rails-ujs repo for it going forward - which would remove the only use case of Blade from Rails.

An alternative to moving rails-ujs out of the repo would be #45546, which could be followed up by removing Blade

skipkayhil avatar Sep 10 '22 17:09 skipkayhil

Please see https://github.com/rails/rails/pull/46594 for an updated attempt.

ioquatix avatar Dec 05 '22 05:12 ioquatix