From 609e929186c45a58e0f4ddf9b2a11ecb75b02415 Mon Sep 17 00:00:00 2001 From: Sam Saffron Date: Fri, 8 May 2020 10:44:51 +1000 Subject: [PATCH] Revert "Revert "DEV: upgrade to Rails 6.0.3"" This reverts commit 2ff8b4f5d9dd72a55d7ebdc23a3758dd5ec4682d. Attempt #2 at a Rails update this time we also update the rails_multisite gem to allow for cleaner reordering --- Gemfile | 14 ++--- Gemfile.lock | 60 ++++++++++---------- config/application.rb | 6 ++ config/initializers/200-first_middlewares.rb | 17 ++---- 4 files changed, 47 insertions(+), 50 deletions(-) diff --git a/Gemfile b/Gemfile index 039acc6a2ad..980bce100ab 100644 --- a/Gemfile +++ b/Gemfile @@ -18,13 +18,13 @@ else # this allows us to include the bits of rails we use without pieces we do not. # # To issue a rails update bump the version number here - gem 'actionmailer', '6.0.2.2' - gem 'actionpack', '6.0.2.2' - gem 'actionview', '6.0.2.2' - gem 'activemodel', '6.0.2.2' - gem 'activerecord', '6.0.2.2' - gem 'activesupport', '6.0.2.2' - gem 'railties', '6.0.2.2' + gem 'actionmailer', '6.0.3' + gem 'actionpack', '6.0.3' + gem 'actionview', '6.0.3' + gem 'activemodel', '6.0.3' + gem 'activerecord', '6.0.3' + gem 'activesupport', '6.0.3' + gem 'railties', '6.0.3' gem 'sprockets-rails' end diff --git a/Gemfile.lock b/Gemfile.lock index 6d97e8a504e..dc81306ab77 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,21 +1,21 @@ GEM remote: https://rubygems.org/ specs: - actionmailer (6.0.2.2) - actionpack (= 6.0.2.2) - actionview (= 6.0.2.2) - activejob (= 6.0.2.2) + actionmailer (6.0.3) + actionpack (= 6.0.3) + actionview (= 6.0.3) + activejob (= 6.0.3) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.0.2.2) - actionview (= 6.0.2.2) - activesupport (= 6.0.2.2) + actionpack (6.0.3) + actionview (= 6.0.3) + activesupport (= 6.0.3) rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actionview (6.0.2.2) - activesupport (= 6.0.2.2) + actionview (6.0.3) + activesupport (= 6.0.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -24,20 +24,20 @@ GEM actionview (>= 6.0.a) active_model_serializers (0.8.4) activemodel (>= 3.0) - activejob (6.0.2.2) - activesupport (= 6.0.2.2) + activejob (6.0.3) + activesupport (= 6.0.3) globalid (>= 0.3.6) - activemodel (6.0.2.2) - activesupport (= 6.0.2.2) - activerecord (6.0.2.2) - activemodel (= 6.0.2.2) - activesupport (= 6.0.2.2) - activesupport (6.0.2.2) + activemodel (6.0.3) + activesupport (= 6.0.3) + activerecord (6.0.3) + activemodel (= 6.0.3) + activesupport (= 6.0.3) + activesupport (6.0.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) - zeitwerk (~> 2.2) + zeitwerk (~> 2.2, >= 2.2.2) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) annotate (3.1.1) @@ -184,7 +184,7 @@ GEM mini_mime (>= 0.1.1) maxminddb (0.1.22) memory_profiler (0.9.14) - message_bus (3.1.0) + message_bus (3.2.0) rack (>= 1.1.3) method_source (1.0.0) mini_mime (1.0.2) @@ -278,12 +278,12 @@ GEM nokogiri (>= 1.6) rails-html-sanitizer (1.3.0) loofah (~> 2.3) - rails_multisite (2.1.1) + rails_multisite (2.1.2) activerecord (> 5.0, < 7) railties (> 5.0, < 7) - railties (6.0.2.2) - actionpack (= 6.0.2.2) - activesupport (= 6.0.2.2) + railties (6.0.3) + actionpack (= 6.0.3) + activesupport (= 6.0.3) method_source rake (>= 0.8.7) thor (>= 0.20.3, < 2.0) @@ -428,14 +428,14 @@ PLATFORMS ruby DEPENDENCIES - actionmailer (= 6.0.2.2) - actionpack (= 6.0.2.2) - actionview (= 6.0.2.2) + actionmailer (= 6.0.3) + actionpack (= 6.0.3) + actionview (= 6.0.3) actionview_precompiler active_model_serializers (~> 0.8.3) - activemodel (= 6.0.2.2) - activerecord (= 6.0.2.2) - activesupport (= 6.0.2.2) + activemodel (= 6.0.3) + activerecord (= 6.0.3) + activesupport (= 6.0.3) addressable annotate aws-sdk-s3 @@ -512,7 +512,7 @@ DEPENDENCIES rack-mini-profiler rack-protection rails_multisite - railties (= 6.0.2.2) + railties (= 6.0.3) rake rb-fsevent rb-inotify (~> 0.9) diff --git a/config/application.rb b/config/application.rb index b2649ad17f9..3eb998adca4 100644 --- a/config/application.rb +++ b/config/application.rb @@ -91,6 +91,12 @@ module Discourse end end + # we skip it cause we configure it in the initializer + # the railstie for message_bus would insert it in the + # wrong position + config.skip_message_bus_middleware = true + config.skip_multisite_middleware = true + # Disable so this is only run manually # we may want to change this later on # issue is image_optim crashes on missing dependencies diff --git a/config/initializers/200-first_middlewares.rb b/config/initializers/200-first_middlewares.rb index 2647fd039a4..14432d8b9a1 100644 --- a/config/initializers/200-first_middlewares.rb +++ b/config/initializers/200-first_middlewares.rb @@ -6,12 +6,8 @@ # # We aren't manipulating the middleware stack directly because of # https://github.com/rails/rails/pull/27936 -session_operations = Rails::Configuration::MiddlewareStackProxy.new([ - [:delete, MessageBus::Rack::Middleware], - [:unshift, MessageBus::Rack::Middleware], -]) -Rails.configuration.middleware = Rails.configuration.middleware + session_operations +Rails.configuration.middleware.unshift(MessageBus::Rack::Middleware) # no reason to track this in development, that is 300+ redis calls saved per # page view (we serve all assets out of thin in development) @@ -25,12 +21,7 @@ if Rails.env != 'development' || ENV['TRACK_REQUESTS'] end if Rails.configuration.multisite - # Multisite needs to be first, because the request tracker and message bus - # rely on it - session_operations = Rails::Configuration::MiddlewareStackProxy.new([ - [:delete, RailsMultisite::Middleware], - [:unshift, [RailsMultisite::Middleware, RailsMultisite::DiscoursePatches.config]], - ]) - - Rails.configuration.middleware = Rails.configuration.middleware + session_operations + # Multisite needs to be first, because the request tracker and message bus rely on it + Rails.configuration.middleware.unshift RailsMultisite::Middleware, RailsMultisite::DiscoursePatches.config + Rails.configuration.middleware.delete ActionDispatch::Executor end