From 372d342f5c6efc27b7a065d21e2b5cc29bac2ab4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20V=C3=A1squez?= Date: Mon, 4 May 2026 19:10:46 -0600 Subject: [PATCH 1/9] =?UTF-8?q?Bump=20Rails=207.1.5.1=20=E2=86=92=207.1.6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile.lock | 112 ++++++++++++++++++++++++--------------------- Gemfile.next.lock | 114 ++++++++++++++++++++++++---------------------- 2 files changed, 119 insertions(+), 107 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index e7b7110c..ae4585dc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -10,35 +10,36 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (7.1.5.1) - actionpack (= 7.1.5.1) - activesupport (= 7.1.5.1) + actioncable (7.1.6) + actionpack (= 7.1.6) + activesupport (= 7.1.6) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.1.5.1) - actionpack (= 7.1.5.1) - activejob (= 7.1.5.1) - activerecord (= 7.1.5.1) - activestorage (= 7.1.5.1) - activesupport (= 7.1.5.1) + actionmailbox (7.1.6) + actionpack (= 7.1.6) + activejob (= 7.1.6) + activerecord (= 7.1.6) + activestorage (= 7.1.6) + activesupport (= 7.1.6) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.1.5.1) - actionpack (= 7.1.5.1) - actionview (= 7.1.5.1) - activejob (= 7.1.5.1) - activesupport (= 7.1.5.1) + actionmailer (7.1.6) + actionpack (= 7.1.6) + actionview (= 7.1.6) + activejob (= 7.1.6) + activesupport (= 7.1.6) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.2) - actionpack (7.1.5.1) - actionview (= 7.1.5.1) - activesupport (= 7.1.5.1) + actionpack (7.1.6) + actionview (= 7.1.6) + activesupport (= 7.1.6) + cgi nokogiri (>= 1.8.5) racc rack (>= 2.2.4) @@ -46,35 +47,36 @@ GEM rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actiontext (7.1.5.1) - actionpack (= 7.1.5.1) - activerecord (= 7.1.5.1) - activestorage (= 7.1.5.1) - activesupport (= 7.1.5.1) + actiontext (7.1.6) + actionpack (= 7.1.6) + activerecord (= 7.1.6) + activestorage (= 7.1.6) + activesupport (= 7.1.6) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.1.5.1) - activesupport (= 7.1.5.1) + actionview (7.1.6) + activesupport (= 7.1.6) builder (~> 3.1) + cgi erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.1.5.1) - activesupport (= 7.1.5.1) + activejob (7.1.6) + activesupport (= 7.1.6) globalid (>= 0.3.6) - activemodel (7.1.5.1) - activesupport (= 7.1.5.1) - activerecord (7.1.5.1) - activemodel (= 7.1.5.1) - activesupport (= 7.1.5.1) + activemodel (7.1.6) + activesupport (= 7.1.6) + activerecord (7.1.6) + activemodel (= 7.1.6) + activesupport (= 7.1.6) timeout (>= 0.4.0) - activestorage (7.1.5.1) - actionpack (= 7.1.5.1) - activejob (= 7.1.5.1) - activerecord (= 7.1.5.1) - activesupport (= 7.1.5.1) + activestorage (7.1.6) + actionpack (= 7.1.6) + activejob (= 7.1.6) + activerecord (= 7.1.6) + activesupport (= 7.1.6) marcel (~> 1.0) - activesupport (7.1.5.1) + activesupport (7.1.6) base64 benchmark (>= 0.3) bigdecimal @@ -118,6 +120,7 @@ GEM capybara-screenshot (1.0.26) capybara (>= 1.0, < 4) launchy + cgi (0.5.1) coffee-script (2.4.1) coffee-script-source execjs @@ -292,20 +295,20 @@ GEM rackup (1.0.1) rack (< 3) webrick - rails (7.1.5.1) - actioncable (= 7.1.5.1) - actionmailbox (= 7.1.5.1) - actionmailer (= 7.1.5.1) - actionpack (= 7.1.5.1) - actiontext (= 7.1.5.1) - actionview (= 7.1.5.1) - activejob (= 7.1.5.1) - activemodel (= 7.1.5.1) - activerecord (= 7.1.5.1) - activestorage (= 7.1.5.1) - activesupport (= 7.1.5.1) + rails (7.1.6) + actioncable (= 7.1.6) + actionmailbox (= 7.1.6) + actionmailer (= 7.1.6) + actionpack (= 7.1.6) + actiontext (= 7.1.6) + actionview (= 7.1.6) + activejob (= 7.1.6) + activemodel (= 7.1.6) + activerecord (= 7.1.6) + activestorage (= 7.1.6) + activesupport (= 7.1.6) bundler (>= 1.15.0) - railties (= 7.1.5.1) + railties (= 7.1.6) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) @@ -317,13 +320,15 @@ GEM rails-html-sanitizer (1.6.2) loofah (~> 2.21) nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) - railties (7.1.5.1) - actionpack (= 7.1.5.1) - activesupport (= 7.1.5.1) + railties (7.1.6) + actionpack (= 7.1.6) + activesupport (= 7.1.6) + cgi irb rackup (>= 1.0.0) rake (>= 12.2) thor (~> 1.0, >= 1.2.2) + tsort (>= 0.2) zeitwerk (~> 2.6) rainbow (3.1.1) rake (13.3.0) @@ -442,6 +447,7 @@ GEM thor (1.3.2) tilt (2.3.0) timeout (0.4.3) + tsort (0.2.0) turbolinks (5.2.1) turbolinks-source (~> 5.2) turbolinks-source (5.2.0) diff --git a/Gemfile.next.lock b/Gemfile.next.lock index 670481b2..f9160d4a 100644 --- a/Gemfile.next.lock +++ b/Gemfile.next.lock @@ -10,66 +10,68 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (7.2.2.1) - actionpack (= 7.2.2.1) - activesupport (= 7.2.2.1) + actioncable (7.2.3) + actionpack (= 7.2.3) + activesupport (= 7.2.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.2.2.1) - actionpack (= 7.2.2.1) - activejob (= 7.2.2.1) - activerecord (= 7.2.2.1) - activestorage (= 7.2.2.1) - activesupport (= 7.2.2.1) + actionmailbox (7.2.3) + actionpack (= 7.2.3) + activejob (= 7.2.3) + activerecord (= 7.2.3) + activestorage (= 7.2.3) + activesupport (= 7.2.3) mail (>= 2.8.0) - actionmailer (7.2.2.1) - actionpack (= 7.2.2.1) - actionview (= 7.2.2.1) - activejob (= 7.2.2.1) - activesupport (= 7.2.2.1) + actionmailer (7.2.3) + actionpack (= 7.2.3) + actionview (= 7.2.3) + activejob (= 7.2.3) + activesupport (= 7.2.3) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.2.2.1) - actionview (= 7.2.2.1) - activesupport (= 7.2.2.1) + actionpack (7.2.3) + actionview (= 7.2.3) + activesupport (= 7.2.3) + cgi nokogiri (>= 1.8.5) racc - rack (>= 2.2.4, < 3.2) + rack (>= 2.2.4, < 3.3) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (7.2.2.1) - actionpack (= 7.2.2.1) - activerecord (= 7.2.2.1) - activestorage (= 7.2.2.1) - activesupport (= 7.2.2.1) + actiontext (7.2.3) + actionpack (= 7.2.3) + activerecord (= 7.2.3) + activestorage (= 7.2.3) + activesupport (= 7.2.3) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.2.2.1) - activesupport (= 7.2.2.1) + actionview (7.2.3) + activesupport (= 7.2.3) builder (~> 3.1) + cgi erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.2.2.1) - activesupport (= 7.2.2.1) + activejob (7.2.3) + activesupport (= 7.2.3) globalid (>= 0.3.6) - activemodel (7.2.2.1) - activesupport (= 7.2.2.1) - activerecord (7.2.2.1) - activemodel (= 7.2.2.1) - activesupport (= 7.2.2.1) + activemodel (7.2.3) + activesupport (= 7.2.3) + activerecord (7.2.3) + activemodel (= 7.2.3) + activesupport (= 7.2.3) timeout (>= 0.4.0) - activestorage (7.2.2.1) - actionpack (= 7.2.2.1) - activejob (= 7.2.2.1) - activerecord (= 7.2.2.1) - activesupport (= 7.2.2.1) + activestorage (7.2.3) + actionpack (= 7.2.3) + activejob (= 7.2.3) + activerecord (= 7.2.3) + activesupport (= 7.2.3) marcel (~> 1.0) - activesupport (7.2.2.1) + activesupport (7.2.3) base64 benchmark (>= 0.3) bigdecimal @@ -112,6 +114,7 @@ GEM capybara-screenshot (1.0.26) capybara (>= 1.0, < 4) launchy + cgi (0.5.1) coffee-script (2.4.1) coffee-script-source execjs @@ -287,20 +290,20 @@ GEM rackup (1.0.1) rack (< 3) webrick - rails (7.2.2.1) - actioncable (= 7.2.2.1) - actionmailbox (= 7.2.2.1) - actionmailer (= 7.2.2.1) - actionpack (= 7.2.2.1) - actiontext (= 7.2.2.1) - actionview (= 7.2.2.1) - activejob (= 7.2.2.1) - activemodel (= 7.2.2.1) - activerecord (= 7.2.2.1) - activestorage (= 7.2.2.1) - activesupport (= 7.2.2.1) + rails (7.2.3) + actioncable (= 7.2.3) + actionmailbox (= 7.2.3) + actionmailer (= 7.2.3) + actionpack (= 7.2.3) + actiontext (= 7.2.3) + actionview (= 7.2.3) + activejob (= 7.2.3) + activemodel (= 7.2.3) + activerecord (= 7.2.3) + activestorage (= 7.2.3) + activesupport (= 7.2.3) bundler (>= 1.15.0) - railties (= 7.2.2.1) + railties (= 7.2.3) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) @@ -312,13 +315,15 @@ GEM rails-html-sanitizer (1.6.2) loofah (~> 2.21) nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) - railties (7.2.2.1) - actionpack (= 7.2.2.1) - activesupport (= 7.2.2.1) + railties (7.2.3) + actionpack (= 7.2.3) + activesupport (= 7.2.3) + cgi irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) thor (~> 1.0, >= 1.2.2) + tsort (>= 0.2) zeitwerk (~> 2.6) rainbow (3.1.1) rake (13.2.1) @@ -436,6 +441,7 @@ GEM thor (1.3.2) tilt (2.3.0) timeout (0.4.3) + tsort (0.2.0) turbolinks (5.2.1) turbolinks-source (~> 5.2) turbolinks-source (5.2.0) From 9e52608d8ebefa98e60885edcb7d2df53ca57f70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20V=C3=A1squez?= Date: Mon, 4 May 2026 19:16:32 -0600 Subject: [PATCH 2/9] Switch show_exceptions to symbol value for Rails 7.2 Rails 7.2 changes config.action_dispatch.show_exceptions from a boolean to a symbol. Boolean values stop working at the 7.2 bump. - true -> :all - false -> :none - new option -> :rescuable (raise non-rescuable, render rescuable) The test environment used `false` (raise everything). The 1:1 replacement is :none. Symbol form already works on 7.1, so this is a direct rewrite with no dual-boot conditional needed. Ref: https://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-action-dispatch-show-exceptions --- config/environments/test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/environments/test.rb b/config/environments/test.rb index 8f5f973f..b214518e 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -23,7 +23,7 @@ config.action_controller.perform_caching = false # Raise exceptions instead of rendering exception templates. - config.action_dispatch.show_exceptions = false + config.action_dispatch.show_exceptions = :none # Disable request forgery protection in test environment. config.action_controller.allow_forgery_protection = false From 9c99a0d17bd8a5f899c589c6b4447e9242d30efb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20V=C3=A1squez?= Date: Mon, 4 May 2026 19:18:24 -0600 Subject: [PATCH 3/9] Drop Rails.application.secrets in favor of credentials/ENV Rails 7.2 removes Rails.application.secrets entirely. Anything that relied on config/secrets.yml stops working at the bump. Currently the file only carries secret_key_base, which Rails resolves through this chain (in order): 1. Rails.application.credentials.secret_key_base 2. ENV["SECRET_KEY_BASE"] 3. tmp/local_secret.txt (dev/test auto-generated) Production already uses ENV["SECRET_KEY_BASE"] (unchanged). Dev/test fall through to tmp/local_secret.txt automatically, so deleting secrets.yml is safe. Also drops config.read_encrypted_secrets = true from production.rb, which is a no-op in 7.2 and only ever applied to the legacy secrets.yml.enc workflow. Ref: https://guides.rubyonrails.org/upgrading_ruby_on_rails.html#rails-application-secrets-removal --- config/environments/production.rb | 5 ----- config/secrets.yml | 32 ------------------------------- 2 files changed, 37 deletions(-) delete mode 100644 config/secrets.yml diff --git a/config/environments/production.rb b/config/environments/production.rb index 4c55e4e7..49f47c6c 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -14,11 +14,6 @@ config.consider_all_requests_local = false config.action_controller.perform_caching = true - # Attempt to read encrypted secrets from `config/secrets.yml.enc`. - # Requires an encryption key in `ENV["RAILS_MASTER_KEY"]` or - # `config/secrets.yml.key`. - config.read_encrypted_secrets = true - # Disable serving static files from the `/public` folder by default since # Apache or NGINX already handles this. config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present? diff --git a/config/secrets.yml b/config/secrets.yml deleted file mode 100644 index 4d02ca65..00000000 --- a/config/secrets.yml +++ /dev/null @@ -1,32 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# Your secret key is used for verifying the integrity of signed cookies. -# If you change this key, all old signed cookies will become invalid! - -# Make sure the secret is at least 30 characters and all random, -# no regular words or you'll be exposed to dictionary attacks. -# You can use `rails secret` to generate a secure secret key. - -# Make sure the secrets in this file are kept private -# if you're sharing your code publicly. - -# Shared secrets are available across all environments. - -# shared: -# api_key: a1B2c3D4e5F6 - -# Environmental secrets are only available for that specific environment. - -development: - secret_key_base: 03e209cc5f2df6e95fef765bba14a4db0c61206cb072e37e9f7bd2defc8551e219b3807272f69b5d9c3bb036bd4c79e32cbc6bb4d5662a572628165ffafafed9 - -test: - secret_key_base: 4e07960849be239b93c0c29bea78df3f2af81949ef4f6e1675fd95d25b2ef2e296787be53ca95a5cfc4d6fd9c57c06fce3384386b46dcb9d8b3aabfeb104f552 - -# Do not keep production secrets in the unencrypted secrets file. -# Instead, either read values from the environment. -# Or, use `bin/rails secrets:setup` to configure encrypted secrets -# and move the `production:` environment over there. - -production: - secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> From 3fd4b58b4bc2b8e1d92b28ce673bdbe730a20536 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20V=C3=A1squez?= Date: Mon, 4 May 2026 19:21:11 -0600 Subject: [PATCH 4/9] =?UTF-8?q?Bump=20rspec-rails=20~>=206.0.3=20=E2=86=92?= =?UTF-8?q?=20~>=206.1=20for=20fixture=5Fpaths=20support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rails 7.2 deprecates fixture_path (singular) in favor of fixture_paths (plural array). The new API exists in Rails 7.1+, but rspec-rails surfaces it via config.fixture_paths only from 6.1.0 onward — 6.0.x still expects fixture_path. Bumping the floor to 6.1 unblocks the fixture_paths rewrite that follows in the next commit. 6.1.5 resolves cleanly on both sides of the dual-boot pair (7.1.6 and 7.2.3) with no other gem changes pulled in beyond the rspec-rails sub-gems on the .next side. --- Gemfile | 2 +- Gemfile.lock | 28 ++++++++++++++-------------- Gemfile.next.lock | 28 ++++++++++++++-------------- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/Gemfile b/Gemfile index c790a535..dccc6e53 100644 --- a/Gemfile +++ b/Gemfile @@ -73,7 +73,7 @@ group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem "byebug", platforms: [:mri, :mingw, :x64_mingw] # Adds support for Capybara system testing and selenium driver - gem "rspec-rails", "~> 6.0.3" + gem "rspec-rails", "~> 6.1" gem "faker" gem "shoulda-matchers", "~> 3.1" gem "rails-controller-testing" diff --git a/Gemfile.lock b/Gemfile.lock index ae4585dc..fb938807 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -140,7 +140,7 @@ GEM railties (>= 4.1.0) responders warden (~> 1.2.3) - diff-lcs (1.5.0) + diff-lcs (1.6.2) docile (1.4.0) dotenv (2.8.1) dotenv-rails (2.8.1) @@ -347,23 +347,23 @@ GEM actionpack (>= 5.2) railties (>= 5.2) rexml (3.2.6) - rspec-core (3.12.2) - rspec-support (~> 3.12.0) - rspec-expectations (3.12.3) + rspec-core (3.13.6) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.5) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-mocks (3.12.6) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.8) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-rails (6.0.3) + rspec-support (~> 3.13.0) + rspec-rails (6.1.5) actionpack (>= 6.1) activesupport (>= 6.1) railties (>= 6.1) - rspec-core (~> 3.12) - rspec-expectations (~> 3.12) - rspec-mocks (~> 3.12) - rspec-support (~> 3.12) - rspec-support (3.12.1) + rspec-core (~> 3.13) + rspec-expectations (~> 3.13) + rspec-mocks (~> 3.13) + rspec-support (~> 3.13) + rspec-support (3.13.7) rubocop (1.56.4) base64 (~> 0.1.1) json (~> 2.3) @@ -515,7 +515,7 @@ DEPENDENCIES rails-controller-testing recursive-open-struct redcarpet (~> 3.5.1) - rspec-rails (~> 6.0.3) + rspec-rails (~> 6.1) sass-rails (~> 5.0) sentry-rails sentry-ruby diff --git a/Gemfile.next.lock b/Gemfile.next.lock index f9160d4a..3574376d 100644 --- a/Gemfile.next.lock +++ b/Gemfile.next.lock @@ -134,7 +134,7 @@ GEM railties (>= 4.1.0) responders warden (~> 1.2.3) - diff-lcs (1.5.0) + diff-lcs (1.6.2) docile (1.4.0) dotenv (2.8.1) dotenv-rails (2.8.1) @@ -341,23 +341,23 @@ GEM actionpack (>= 5.2) railties (>= 5.2) rexml (3.2.6) - rspec-core (3.12.2) - rspec-support (~> 3.12.0) - rspec-expectations (3.12.3) + rspec-core (3.13.6) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.5) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-mocks (3.12.6) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.8) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-rails (6.0.3) + rspec-support (~> 3.13.0) + rspec-rails (6.1.5) actionpack (>= 6.1) activesupport (>= 6.1) railties (>= 6.1) - rspec-core (~> 3.12) - rspec-expectations (~> 3.12) - rspec-mocks (~> 3.12) - rspec-support (~> 3.12) - rspec-support (3.12.1) + rspec-core (~> 3.13) + rspec-expectations (~> 3.13) + rspec-mocks (~> 3.13) + rspec-support (~> 3.13) + rspec-support (3.13.7) rubocop (1.56.4) base64 (~> 0.1.1) json (~> 2.3) @@ -511,7 +511,7 @@ DEPENDENCIES rails-controller-testing recursive-open-struct redcarpet (~> 3.5.1) - rspec-rails (~> 6.0.3) + rspec-rails (~> 6.1) sass-rails (~> 5.0) sentry-rails sentry-ruby From 664a8ae19b3ddda4758dd47ddb95f58e57790a6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20V=C3=A1squez?= Date: Mon, 4 May 2026 19:22:38 -0600 Subject: [PATCH 5/9] =?UTF-8?q?Rename=20fixture=5Fpath=20=E2=86=92=20fixtu?= =?UTF-8?q?re=5Fpaths=20in=20rspec=20config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rails 7.2 deprecates the singular fixture_path setter on ActiveSupport::TestCase. rspec-rails 6.1+ exposes the plural form, which takes an array of paths and is the long-term API on both 7.1 and 7.2. Direct rewrite — no NextRails.next? branch needed, and no behavior change since we still point at a single spec/fixtures directory. Ref: https://github.com/rspec/rspec-rails/blob/main/Changelog.md#610--2023-11-21 --- spec/rails_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 7accd23a..c93a2b0c 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -95,7 +95,7 @@ def executor_around_each_request include Warden::Test::Helpers # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures - config.fixture_path = "#{::Rails.root}/spec/fixtures" + config.fixture_paths = ["#{::Rails.root}/spec/fixtures"] # If you're not using ActiveRecord, or you'd prefer not to run each of your # examples within a transaction, remove the following line or assign false From 6ec87118edff92d77efc5ed3ee4d780dbfbe8f7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20V=C3=A1squez?= Date: Mon, 4 May 2026 19:33:21 -0600 Subject: [PATCH 6/9] =?UTF-8?q?Bump=20database=5Fcleaner-active=5Frecord?= =?UTF-8?q?=202.1.0=20=E2=86=92=202.2.2=20for=20Rails=207.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit database_cleaner-active_record 2.1.x calls AR connection adapter#schema_migration, which Rails 7.2 removed in favor of an internal-pool-based API. The 2.1.x suite errors out on boot under 7.2 with: NoMethodError: undefined method `schema_migration' for # 2.2.0 reworked the cleanup to use the new connection API. 2.2.2 is the latest patch and resolves cleanly on both 7.1.6 and 7.2.3. Doing the bump as its own commit so the Rails version flip in the next commit is isolated to the Gemfile constraint change. Ref: https://github.com/DatabaseCleaner/database_cleaner-active_record/blob/main/CHANGELOG.md --- Gemfile.lock | 4 ++-- Gemfile.next.lock | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index fb938807..94373717 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -129,9 +129,9 @@ GEM concurrent-ruby (1.3.5) connection_pool (2.5.3) crass (1.0.6) - database_cleaner-active_record (2.1.0) + database_cleaner-active_record (2.2.2) activerecord (>= 5.a) - database_cleaner-core (~> 2.0.0) + database_cleaner-core (~> 2.0) database_cleaner-core (2.0.1) date (3.4.1) devise (4.9.4) diff --git a/Gemfile.next.lock b/Gemfile.next.lock index 3574376d..5cc776bf 100644 --- a/Gemfile.next.lock +++ b/Gemfile.next.lock @@ -123,9 +123,9 @@ GEM concurrent-ruby (1.3.5) connection_pool (2.5.2) crass (1.0.6) - database_cleaner-active_record (2.2.0) + database_cleaner-active_record (2.2.2) activerecord (>= 5.a) - database_cleaner-core (~> 2.0.0) + database_cleaner-core (~> 2.0) database_cleaner-core (2.0.1) date (3.4.1) devise (4.9.4) From 19ebbea10dd21f1e9eb10e587d0bf1e919839545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20V=C3=A1squez?= Date: Mon, 4 May 2026 19:34:57 -0600 Subject: [PATCH 7/9] =?UTF-8?q?Upgrade=20Rails=207.1.6=20=E2=86=92=207.2.3?= =?UTF-8?q?.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flips the Gemfile constraint from ~> 7.1.0 to ~> 7.2.0 and collapses the dual-boot if/else into a single line, since both sides of the dual-boot pair now point at 7.2 anyway. The next? helper (Gemfile lines 3-5) and the Gemfile.next symlink stay in place. They will be retired in a follow-up cleanup pass once 7.2 ships, per the dual-boot teardown checklist — keeping them now keeps build-rails-next in CI as a sanity check on the exact same constraints as build-rails-current. All fix-before-bump items were addressed in earlier commits in this branch: - show_exceptions symbol value - Rails.application.secrets removal - rspec-rails fixture_paths support - database_cleaner-active_record schema_migration compat Test suite is 204/204 green on 7.2.3.1. --- Gemfile | 10 +--- Gemfile.lock | 141 +++++++++++++++++++++++++-------------------------- 2 files changed, 69 insertions(+), 82 deletions(-) diff --git a/Gemfile b/Gemfile index dccc6e53..d9630d9e 100644 --- a/Gemfile +++ b/Gemfile @@ -11,15 +11,7 @@ git_source(:github) do |repo_name| "https://github.com/#{repo_name}.git" end -if next? - # using the 7-0-stable branch for the time being until the fix is merged into main - # to make it work with ruby 3.1 - # read more about it here: https://github.com/rails/rails/issues/43998, - # and here: https://gist.github.com/claudiug/bdc2fb70b10d19513208c816588aed92 - gem "rails", "~> 7.2.0" -else - gem "rails", "~> 7.1.0" -end +gem "rails", "~> 7.2.0" # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem "bootstrap-sass", "3.4.1" diff --git a/Gemfile.lock b/Gemfile.lock index 94373717..fb7455cf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -10,85 +10,79 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (7.1.6) - actionpack (= 7.1.6) - activesupport (= 7.1.6) + actioncable (7.2.3.1) + actionpack (= 7.2.3.1) + activesupport (= 7.2.3.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.1.6) - actionpack (= 7.1.6) - activejob (= 7.1.6) - activerecord (= 7.1.6) - activestorage (= 7.1.6) - activesupport (= 7.1.6) - mail (>= 2.7.1) - net-imap - net-pop - net-smtp - actionmailer (7.1.6) - actionpack (= 7.1.6) - actionview (= 7.1.6) - activejob (= 7.1.6) - activesupport (= 7.1.6) - mail (~> 2.5, >= 2.5.4) - net-imap - net-pop - net-smtp + actionmailbox (7.2.3.1) + actionpack (= 7.2.3.1) + activejob (= 7.2.3.1) + activerecord (= 7.2.3.1) + activestorage (= 7.2.3.1) + activesupport (= 7.2.3.1) + mail (>= 2.8.0) + actionmailer (7.2.3.1) + actionpack (= 7.2.3.1) + actionview (= 7.2.3.1) + activejob (= 7.2.3.1) + activesupport (= 7.2.3.1) + mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.1.6) - actionview (= 7.1.6) - activesupport (= 7.1.6) + actionpack (7.2.3.1) + actionview (= 7.2.3.1) + activesupport (= 7.2.3.1) cgi nokogiri (>= 1.8.5) racc - rack (>= 2.2.4) + rack (>= 2.2.4, < 3.3) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actiontext (7.1.6) - actionpack (= 7.1.6) - activerecord (= 7.1.6) - activestorage (= 7.1.6) - activesupport (= 7.1.6) + useragent (~> 0.16) + actiontext (7.2.3.1) + actionpack (= 7.2.3.1) + activerecord (= 7.2.3.1) + activestorage (= 7.2.3.1) + activesupport (= 7.2.3.1) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.1.6) - activesupport (= 7.1.6) + actionview (7.2.3.1) + activesupport (= 7.2.3.1) builder (~> 3.1) cgi erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.1.6) - activesupport (= 7.1.6) + activejob (7.2.3.1) + activesupport (= 7.2.3.1) globalid (>= 0.3.6) - activemodel (7.1.6) - activesupport (= 7.1.6) - activerecord (7.1.6) - activemodel (= 7.1.6) - activesupport (= 7.1.6) + activemodel (7.2.3.1) + activesupport (= 7.2.3.1) + activerecord (7.2.3.1) + activemodel (= 7.2.3.1) + activesupport (= 7.2.3.1) timeout (>= 0.4.0) - activestorage (7.1.6) - actionpack (= 7.1.6) - activejob (= 7.1.6) - activerecord (= 7.1.6) - activesupport (= 7.1.6) + activestorage (7.2.3.1) + actionpack (= 7.2.3.1) + activejob (= 7.2.3.1) + activerecord (= 7.2.3.1) + activesupport (= 7.2.3.1) marcel (~> 1.0) - activesupport (7.1.6) + activesupport (7.2.3.1) base64 benchmark (>= 0.3) bigdecimal - concurrent-ruby (~> 1.0, >= 1.0.2) + concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) logger (>= 1.4.2) - minitest (>= 5.1) - mutex_m + minitest (>= 5.1, < 6) securerandom (>= 0.3) - tzinfo (~> 2.0) + tzinfo (~> 2.0, >= 2.0.5) acts_as_list (1.1.0) activerecord (>= 4.2) addressable (2.8.5) @@ -164,7 +158,7 @@ GEM faraday-net_http (3.4.0) net-http (>= 0.5.0) ffi (1.16.3) - globalid (1.2.1) + globalid (1.3.0) activesupport (>= 6.1) hashie (5.0.0) i18n (1.14.7) @@ -200,12 +194,13 @@ GEM madmin (1.2.8) pagy (>= 3.5) rails (>= 6.0.3) - mail (2.8.1) + mail (2.9.0) + logger mini_mime (>= 0.1.1) net-imap net-pop net-smtp - marcel (1.0.4) + marcel (1.1.0) matrix (0.4.2) mimemagic (0.3.10) nokogiri (~> 1) @@ -214,10 +209,9 @@ GEM minitest (5.25.5) multi_xml (0.7.2) bigdecimal (~> 3.1) - mutex_m (0.3.0) net-http (0.6.0) uri - net-imap (0.5.8) + net-imap (0.6.3) date net-protocol net-pop (0.1.2) @@ -295,20 +289,20 @@ GEM rackup (1.0.1) rack (< 3) webrick - rails (7.1.6) - actioncable (= 7.1.6) - actionmailbox (= 7.1.6) - actionmailer (= 7.1.6) - actionpack (= 7.1.6) - actiontext (= 7.1.6) - actionview (= 7.1.6) - activejob (= 7.1.6) - activemodel (= 7.1.6) - activerecord (= 7.1.6) - activestorage (= 7.1.6) - activesupport (= 7.1.6) + rails (7.2.3.1) + actioncable (= 7.2.3.1) + actionmailbox (= 7.2.3.1) + actionmailer (= 7.2.3.1) + actionpack (= 7.2.3.1) + actiontext (= 7.2.3.1) + actionview (= 7.2.3.1) + activejob (= 7.2.3.1) + activemodel (= 7.2.3.1) + activerecord (= 7.2.3.1) + activestorage (= 7.2.3.1) + activesupport (= 7.2.3.1) bundler (>= 1.15.0) - railties (= 7.1.6) + railties (= 7.2.3.1) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) @@ -320,11 +314,11 @@ GEM rails-html-sanitizer (1.6.2) loofah (~> 2.21) nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) - railties (7.1.6) - actionpack (= 7.1.6) - activesupport (= 7.1.6) + railties (7.2.3.1) + actionpack (= 7.2.3.1) + activesupport (= 7.2.3.1) cgi - irb + irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) thor (~> 1.0, >= 1.2.2) @@ -455,6 +449,7 @@ GEM concurrent-ruby (~> 1.0) unicode-display_width (2.5.0) uri (1.0.3) + useragent (0.16.11) version_gem (1.1.8) warden (1.2.9) rack (>= 2.0.9) @@ -511,7 +506,7 @@ DEPENDENCIES puma (~> 6.5) pundit (~> 2.2) rack-mini-profiler - rails (~> 7.1.0) + rails (~> 7.2.0) rails-controller-testing recursive-open-struct redcarpet (~> 3.5.1) From 1d3f29a27934db2c891f9b932c983a0041a25261 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20V=C3=A1squez?= Date: Mon, 4 May 2026 20:33:19 -0600 Subject: [PATCH 8/9] =?UTF-8?q?Bump=20jbuilder=20~>=202.5=20=E2=86=92=20~>?= =?UTF-8?q?=202.13=20for=20Rails=208=20compat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit jbuilder 2.11.x calls require "active_support/proxy_object" at load time. proxy_object was deprecated in Rails 5 and removed in Rails 8.0, so the require raises LoadError the moment Bundler runs Bundler.require for the :default group: LoadError: cannot load such file -- active_support/proxy_object config/application.rb:7:in `' jbuilder 2.12 dropped the require (jbuilder commit b8e2d8f), 2.13 added explicit Rails 8 support. Bumping the floor to 2.13 resolves cleanly on both 7.2 (current) and 8.0 (next), so this sits as a prereq before the Rails version flip. Conservative resolution kept all other gems pinned. Ref: https://github.com/rails/jbuilder/pull/580 --- Gemfile | 8 +- Gemfile.lock | 8 +- Gemfile.next.lock | 485 +++++++++++++++++++++++++--------------------- 3 files changed, 276 insertions(+), 225 deletions(-) diff --git a/Gemfile b/Gemfile index d9630d9e..eef3858f 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,11 @@ git_source(:github) do |repo_name| "https://github.com/#{repo_name}.git" end -gem "rails", "~> 7.2.0" +if next? + gem "rails", "~> 8.0.0" +else + gem "rails", "~> 7.2.0" +end # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem "bootstrap-sass", "3.4.1" @@ -32,7 +36,7 @@ gem "redcarpet", "~> 3.5.1" # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks gem "turbolinks", "~> 5" # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder -gem "jbuilder", "~> 2.5" +gem "jbuilder", "~> 2.13" # Use Redis adapter to run Action Cable in production # gem 'redis', '~> 3.0' # Use ActiveModel has_secure_password diff --git a/Gemfile.lock b/Gemfile.lock index fb7455cf..6c713587 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -168,9 +168,9 @@ GEM pp (>= 0.6.0) rdoc (>= 4.0.0) reline (>= 0.4.2) - jbuilder (2.11.5) - actionview (>= 5.0.0) - activesupport (>= 5.0.0) + jbuilder (2.14.1) + actionview (>= 7.0.0) + activesupport (>= 7.0.0) jquery-rails (4.6.0) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) @@ -492,7 +492,7 @@ DEPENDENCIES dotenv-rails factory_bot_rails faker - jbuilder (~> 2.5) + jbuilder (~> 2.13) jquery-rails jquery-ui-rails (~> 6.0) listen (~> 3.7) diff --git a/Gemfile.next.lock b/Gemfile.next.lock index 5cc776bf..777d2a6f 100644 --- a/Gemfile.next.lock +++ b/Gemfile.next.lock @@ -10,68 +10,65 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (7.2.3) - actionpack (= 7.2.3) - activesupport (= 7.2.3) + actioncable (8.0.5) + actionpack (= 8.0.5) + activesupport (= 8.0.5) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.2.3) - actionpack (= 7.2.3) - activejob (= 7.2.3) - activerecord (= 7.2.3) - activestorage (= 7.2.3) - activesupport (= 7.2.3) + actionmailbox (8.0.5) + actionpack (= 8.0.5) + activejob (= 8.0.5) + activerecord (= 8.0.5) + activestorage (= 8.0.5) + activesupport (= 8.0.5) mail (>= 2.8.0) - actionmailer (7.2.3) - actionpack (= 7.2.3) - actionview (= 7.2.3) - activejob (= 7.2.3) - activesupport (= 7.2.3) + actionmailer (8.0.5) + actionpack (= 8.0.5) + actionview (= 8.0.5) + activejob (= 8.0.5) + activesupport (= 8.0.5) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.2.3) - actionview (= 7.2.3) - activesupport (= 7.2.3) - cgi + actionpack (8.0.5) + actionview (= 8.0.5) + activesupport (= 8.0.5) nokogiri (>= 1.8.5) - racc - rack (>= 2.2.4, < 3.3) + rack (>= 2.2.4) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (7.2.3) - actionpack (= 7.2.3) - activerecord (= 7.2.3) - activestorage (= 7.2.3) - activesupport (= 7.2.3) + actiontext (8.0.5) + actionpack (= 8.0.5) + activerecord (= 8.0.5) + activestorage (= 8.0.5) + activesupport (= 8.0.5) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.2.3) - activesupport (= 7.2.3) + actionview (8.0.5) + activesupport (= 8.0.5) builder (~> 3.1) - cgi erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.2.3) - activesupport (= 7.2.3) + activejob (8.0.5) + activesupport (= 8.0.5) globalid (>= 0.3.6) - activemodel (7.2.3) - activesupport (= 7.2.3) - activerecord (7.2.3) - activemodel (= 7.2.3) - activesupport (= 7.2.3) + activemodel (8.0.5) + activesupport (= 8.0.5) + activerecord (8.0.5) + activemodel (= 8.0.5) + activesupport (= 8.0.5) timeout (>= 0.4.0) - activestorage (7.2.3) - actionpack (= 7.2.3) - activejob (= 7.2.3) - activerecord (= 7.2.3) - activesupport (= 7.2.3) + activestorage (8.0.5) + actionpack (= 8.0.5) + activejob (= 8.0.5) + activerecord (= 8.0.5) + activesupport (= 8.0.5) marcel (~> 1.0) - activesupport (7.2.3) + activesupport (8.0.5) base64 benchmark (>= 0.3) bigdecimal @@ -83,17 +80,19 @@ GEM minitest (>= 5.1) securerandom (>= 0.3) tzinfo (~> 2.0, >= 2.0.5) - acts_as_list (1.1.0) - activerecord (>= 4.2) - addressable (2.8.5) - public_suffix (>= 2.0.2, < 6.0) - ast (2.4.2) - autoprefixer-rails (10.4.15.0) + uri (>= 0.13.1) + acts_as_list (1.2.6) + activerecord (>= 6.1) + activesupport (>= 6.1) + addressable (2.9.0) + public_suffix (>= 2.0.2, < 8.0) + ast (2.4.3) + autoprefixer-rails (10.4.21.0) execjs (~> 2) - base64 (0.1.2) - bcrypt (3.1.20) - benchmark (0.4.0) - bigdecimal (3.1.9) + base64 (0.3.0) + bcrypt (3.1.22) + benchmark (0.5.0) + bigdecimal (4.1.2) bindex (0.8.1) bootstrap-sass (3.4.1) autoprefixer-rails (>= 5.2.1) @@ -101,33 +100,34 @@ GEM bourbon (7.3.0) thor (~> 1.0) builder (3.3.0) - byebug (11.1.3) - capybara (3.39.2) + byebug (13.0.0) + reline (>= 0.6.0) + capybara (3.40.0) addressable matrix mini_mime (>= 0.1.3) - nokogiri (~> 1.8) + nokogiri (~> 1.11) rack (>= 1.6.0) rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - capybara-screenshot (1.0.26) + capybara-screenshot (1.0.27) capybara (>= 1.0, < 4) launchy - cgi (0.5.1) + childprocess (5.1.0) + logger (~> 1.5) coffee-script (2.4.1) coffee-script-source execjs coffee-script-source (1.12.2) - colorize (1.1.0) - concurrent-ruby (1.3.5) - connection_pool (2.5.2) + concurrent-ruby (1.3.6) + connection_pool (3.0.2) crass (1.0.6) database_cleaner-active_record (2.2.2) activerecord (>= 5.a) database_cleaner-core (~> 2.0) database_cleaner-core (2.0.1) - date (3.4.1) + date (3.5.1) devise (4.9.4) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -135,82 +135,97 @@ GEM responders warden (~> 1.2.3) diff-lcs (1.6.2) - docile (1.4.0) - dotenv (2.8.1) - dotenv-rails (2.8.1) - dotenv (= 2.8.1) - railties (>= 3.2) - drb (2.2.1) + docile (1.4.1) + dotenv (3.2.0) + dotenv-rails (3.2.0) + dotenv (= 3.2.0) + railties (>= 6.1) + drb (2.2.3) + erb (6.0.4) erubi (1.13.1) - execjs (2.9.1) - factory_bot (6.2.1) - activesupport (>= 5.0.0) - factory_bot_rails (6.2.0) - factory_bot (~> 6.2.0) - railties (>= 5.0.0) - faker (3.2.1) + execjs (2.10.1) + factory_bot (6.6.0) + activesupport (>= 6.1.0) + factory_bot_rails (6.5.1) + factory_bot (~> 6.5) + railties (>= 6.1.0) + faker (3.8.0) i18n (>= 1.8.11, < 2) - faraday (2.13.0) + faraday (2.14.1) faraday-net_http (>= 2.0, < 3.5) json logger - faraday-net_http (3.4.0) - net-http (>= 0.5.0) - ffi (1.16.3) - globalid (1.2.1) + faraday-net_http (3.4.2) + net-http (~> 0.5) + ffi (1.17.4-aarch64-linux-gnu) + ffi (1.17.4-aarch64-linux-musl) + ffi (1.17.4-arm-linux-gnu) + ffi (1.17.4-arm-linux-musl) + ffi (1.17.4-arm64-darwin) + ffi (1.17.4-x86_64-darwin) + ffi (1.17.4-x86_64-linux-gnu) + ffi (1.17.4-x86_64-linux-musl) + globalid (1.3.0) activesupport (>= 6.1) - hashie (5.0.0) - i18n (1.14.7) + hashie (5.1.0) + logger + i18n (1.14.8) concurrent-ruby (~> 1.0) - io-console (0.8.0) - irb (1.15.2) + io-console (0.8.2) + irb (1.18.0) pp (>= 0.6.0) + prism (>= 1.3.0) rdoc (>= 4.0.0) reline (>= 0.4.2) - jbuilder (2.11.5) - actionview (>= 5.0.0) - activesupport (>= 5.0.0) - jquery-rails (4.6.0) + jbuilder (2.14.1) + actionview (>= 7.0.0) + activesupport (>= 7.0.0) + jquery-rails (4.6.1) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) jquery-ui-rails (6.0.1) railties (>= 3.2.16) - json (2.6.3) - jwt (2.10.1) + json (2.19.5) + jwt (3.1.2) base64 - language_server-protocol (3.17.0.3) - launchy (2.5.2) + language_server-protocol (3.17.0.5) + launchy (3.1.1) addressable (~> 2.8) + childprocess (~> 5.0) + logger (~> 1.6) lint_roller (1.1.0) - listen (3.8.0) + listen (3.10.0) + logger rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) logger (1.7.0) - loofah (2.24.0) + loofah (2.25.1) crass (~> 1.0.2) nokogiri (>= 1.12.0) - madmin (1.2.8) + madmin (1.2.11) pagy (>= 3.5) rails (>= 6.0.3) - mail (2.8.1) + mail (2.9.0) + logger mini_mime (>= 0.1.1) net-imap net-pop net-smtp - marcel (1.0.4) - matrix (0.4.2) + marcel (1.1.0) + matrix (0.4.3) mimemagic (0.3.10) nokogiri (~> 1) rake mini_mime (1.1.5) - mini_portile2 (2.8.8) - minitest (5.25.5) - multi_xml (0.7.1) - bigdecimal (~> 3.1) - net-http (0.6.0) - uri - net-imap (0.5.7) + minitest (6.0.6) + drb (~> 2.0) + prism (~> 1.5) + multi_xml (0.9.1) + bigdecimal (>= 3.1, < 5) + net-http (0.9.1) + uri (>= 0.11.1) + net-imap (0.6.4) date net-protocol net-pop (0.1.2) @@ -219,66 +234,87 @@ GEM timeout net-smtp (0.5.1) net-protocol - newrelic_rpm (9.5.0) - next_rails (1.3.0) - colorize (>= 0.8.1) - nio4r (2.7.4) - nokogiri (1.18.8) - mini_portile2 (~> 2.8.2) + newrelic_rpm (10.4.0) + logger + next_rails (1.5.0) + rainbow (>= 3) + nio4r (2.7.5) + nokogiri (1.19.3-aarch64-linux-gnu) + racc (~> 1.4) + nokogiri (1.19.3-aarch64-linux-musl) + racc (~> 1.4) + nokogiri (1.19.3-arm-linux-gnu) racc (~> 1.4) - nokogiri (1.18.8-arm64-darwin) + nokogiri (1.19.3-arm-linux-musl) racc (~> 1.4) - nokogiri (1.18.8-x86_64-darwin) + nokogiri (1.19.3-arm64-darwin) racc (~> 1.4) - nokogiri (1.18.8-x86_64-linux-gnu) + nokogiri (1.19.3-x86_64-darwin) racc (~> 1.4) - oauth2 (2.0.9) - faraday (>= 0.17.3, < 3.0) - jwt (>= 1.0, < 3.0) + nokogiri (1.19.3-x86_64-linux-gnu) + racc (~> 1.4) + nokogiri (1.19.3-x86_64-linux-musl) + racc (~> 1.4) + oauth2 (2.0.18) + faraday (>= 0.17.3, < 4.0) + jwt (>= 1.0, < 4.0) + logger (~> 1.2) multi_xml (~> 0.5) rack (>= 1.2, < 4) - snaky_hash (~> 2.0) - version_gem (~> 1.1) - ombu_labs-auth (1.1.0) + snaky_hash (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.9) + ombu_labs-auth (1.1.1) devise (~> 4.9) omniauth (~> 2.1.0) omniauth-github (~> 2.0.0) omniauth-rails_csrf_protection rails (>= 6.0, < 8.1) - omniauth (2.1.3) + omniauth (2.1.4) hashie (>= 3.4.6) + logger rack (>= 2.2.3) rack-protection omniauth-github (2.0.1) omniauth (~> 2.0) omniauth-oauth2 (~> 1.8) - omniauth-oauth2 (1.8.0) - oauth2 (>= 1.4, < 3) + omniauth-oauth2 (1.9.0) + oauth2 (>= 2.0.2, < 3) omniauth (~> 2.0) - omniauth-rails_csrf_protection (1.0.2) + omniauth-rails_csrf_protection (2.0.1) actionpack (>= 4.2) omniauth (~> 2.0) orm_adapter (0.5.0) - pagy (6.1.0) - parallel (1.23.0) - parser (3.2.2.4) + ostruct (0.6.3) + pagy (43.4.4) + json + uri + yaml + parallel (1.28.0) + parser (3.3.11.1) ast (~> 2.4.1) racc - pg (1.5.4) - pp (0.6.2) + pg (1.6.3) + pg (1.6.3-aarch64-linux) + pg (1.6.3-aarch64-linux-musl) + pg (1.6.3-arm64-darwin) + pg (1.6.3-x86_64-darwin) + pg (1.6.3-x86_64-linux) + pg (1.6.3-x86_64-linux-musl) + pp (0.6.3) prettyprint prettyprint (0.2.0) - psych (5.2.3) + prism (1.9.0) + psych (5.3.1) date stringio - public_suffix (5.0.3) - puma (6.6.0) + public_suffix (7.0.5) + puma (6.6.1) nio4r (~> 2.0) - pundit (2.3.1) + pundit (2.5.2) activesupport (>= 3.0.0) racc (1.8.1) - rack (2.2.13) - rack-mini-profiler (3.1.1) + rack (2.2.23) + rack-mini-profiler (4.0.1) rack (>= 1.2.0) rack-protection (3.2.0) base64 (>= 0.1.0) @@ -290,35 +326,34 @@ GEM rackup (1.0.1) rack (< 3) webrick - rails (7.2.3) - actioncable (= 7.2.3) - actionmailbox (= 7.2.3) - actionmailer (= 7.2.3) - actionpack (= 7.2.3) - actiontext (= 7.2.3) - actionview (= 7.2.3) - activejob (= 7.2.3) - activemodel (= 7.2.3) - activerecord (= 7.2.3) - activestorage (= 7.2.3) - activesupport (= 7.2.3) + rails (8.0.5) + actioncable (= 8.0.5) + actionmailbox (= 8.0.5) + actionmailer (= 8.0.5) + actionpack (= 8.0.5) + actiontext (= 8.0.5) + actionview (= 8.0.5) + activejob (= 8.0.5) + activemodel (= 8.0.5) + activerecord (= 8.0.5) + activestorage (= 8.0.5) + activesupport (= 8.0.5) bundler (>= 1.15.0) - railties (= 7.2.3) + railties (= 8.0.5) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) activesupport (>= 5.0.1.rc1) - rails-dom-testing (2.2.0) + rails-dom-testing (2.3.0) activesupport (>= 5.0.0) minitest nokogiri (>= 1.6) - rails-html-sanitizer (1.6.2) - loofah (~> 2.21) + rails-html-sanitizer (1.7.0) + loofah (~> 2.25) nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) - railties (7.2.3) - actionpack (= 7.2.3) - activesupport (= 7.2.3) - cgi + railties (8.0.5) + actionpack (= 8.0.5) + activesupport (= 8.0.5) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) @@ -326,21 +361,24 @@ GEM tsort (>= 0.2) zeitwerk (~> 2.6) rainbow (3.1.1) - rake (13.2.1) + rake (13.4.2) rb-fsevent (0.11.2) - rb-inotify (0.10.1) + rb-inotify (0.11.1) ffi (~> 1.0) - rdoc (6.13.1) + rdoc (7.2.0) + erb psych (>= 4.0.0) - recursive-open-struct (1.1.3) + tsort + recursive-open-struct (2.1.1) + ostruct redcarpet (3.5.1) - regexp_parser (2.8.1) - reline (0.6.1) + regexp_parser (2.12.0) + reline (0.6.3) io-console (~> 0.5) - responders (3.1.1) - actionpack (>= 5.2) - railties (>= 5.2) - rexml (3.2.6) + responders (3.2.0) + actionpack (>= 7.0) + railties (>= 7.0) + rexml (3.4.4) rspec-core (3.13.6) rspec-support (~> 3.13.0) rspec-expectations (3.13.5) @@ -358,25 +396,26 @@ GEM rspec-mocks (~> 3.13) rspec-support (~> 3.13) rspec-support (3.13.7) - rubocop (1.56.4) - base64 (~> 0.1.1) + rubocop (1.84.2) json (~> 2.3) - language_server-protocol (>= 3.17.0) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.1.0) parallel (~> 1.10) - parser (>= 3.2.2.3) + parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) - rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.28.1, < 2.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.49.0, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.29.0) - parser (>= 3.2.1.0) - rubocop-performance (1.19.1) - rubocop (>= 1.7.0, < 2.0) - rubocop-ast (>= 0.4.0) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.49.1) + parser (>= 3.3.7.2) + prism (~> 1.7) + rubocop-performance (1.26.1) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.47.1, < 2.0) ruby-progressbar (1.13.0) - rubyzip (2.3.2) + rubyzip (2.4.1) sass (3.7.4) sass-listen (~> 4.0.0) sass-listen (4.0.0) @@ -395,90 +434,98 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) - sentry-rails (5.22.1) - railties (>= 5.0) - sentry-ruby (~> 5.22.1) - sentry-ruby (5.22.1) + sentry-rails (6.5.0) + railties (>= 5.2.0) + sentry-ruby (~> 6.5.0) + sentry-ruby (6.5.0) bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) + logger shoulda-matchers (3.1.3) activesupport (>= 4.0.0) simplecov (0.22.0) docile (~> 1.1) simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) - simplecov-html (0.12.3) + simplecov-html (0.13.2) simplecov_json_formatter (0.1.4) - snaky_hash (2.0.1) - hashie - version_gem (~> 1.1, >= 1.1.1) + snaky_hash (2.0.3) + hashie (>= 0.1.0, < 6) + version_gem (>= 1.1.8, < 3) spring (3.0.0) - sprockets (3.7.2) + sprockets (3.7.5) + base64 concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.4.2) - actionpack (>= 5.2) - activesupport (>= 5.2) + sprockets-rails (3.5.2) + actionpack (>= 6.1) + activesupport (>= 6.1) sprockets (>= 3.0.0) - stackprof (0.2.26) - standard (1.31.1) + stackprof (0.2.28) + standard (1.54.0) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.0) - rubocop (~> 1.56.2) + rubocop (~> 1.84.0) standard-custom (~> 1.0.0) - standard-performance (~> 1.2) + standard-performance (~> 1.8) standard-custom (1.0.2) lint_roller (~> 1.0) rubocop (~> 1.50) - standard-performance (1.2.0) + standard-performance (1.9.0) lint_roller (~> 1.1) - rubocop-performance (~> 1.19.0) + rubocop-performance (~> 1.26.0) standardrb (1.0.1) standard - stringio (3.1.7) - terser (1.1.18) + stringio (3.2.0) + terser (1.2.7) execjs (>= 0.3.0, < 3) - thor (1.3.2) - tilt (2.3.0) - timeout (0.4.3) + thor (1.5.0) + tilt (2.7.0) + timeout (0.6.1) tsort (0.2.0) turbolinks (5.2.1) turbolinks-source (~> 5.2) turbolinks-source (5.2.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (2.5.0) - uri (1.0.3) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) + uri (1.1.1) useragent (0.16.11) - version_gem (1.1.7) + version_gem (1.1.9) warden (1.2.9) rack (>= 2.0.9) - web-console (4.2.1) - actionview (>= 6.0.0) - activemodel (>= 6.0.0) + web-console (4.3.0) + actionview (>= 8.0.0) bindex (>= 0.4.0) - railties (>= 6.0.0) + railties (>= 8.0.0) webdrivers (5.3.1) nokogiri (~> 1.6) rubyzip (>= 1.3.0) selenium-webdriver (~> 4.0, < 4.11) - webrick (1.9.1) - websocket (1.2.10) - websocket-driver (0.7.7) + webrick (1.9.2) + websocket (1.2.11) + websocket-driver (0.8.0) base64 websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.7.2) + yaml (0.4.0) + zeitwerk (2.7.5) PLATFORMS - arm64-darwin-23 - arm64-darwin-24 - ruby - x86_64-darwin-21 - x86_64-darwin-22 + aarch64-linux + aarch64-linux-gnu + aarch64-linux-musl + arm-linux-gnu + arm-linux-musl + arm64-darwin + x86_64-darwin x86_64-linux + x86_64-linux-gnu + x86_64-linux-musl DEPENDENCIES acts_as_list @@ -493,7 +540,7 @@ DEPENDENCIES dotenv-rails factory_bot_rails faker - jbuilder (~> 2.5) + jbuilder (~> 2.13) jquery-rails jquery-ui-rails (~> 6.0) listen (~> 3.7) @@ -507,7 +554,7 @@ DEPENDENCIES puma (~> 6.5) pundit (~> 2.2) rack-mini-profiler - rails (~> 7.2.0) + rails (~> 8.0.0) rails-controller-testing recursive-open-struct redcarpet (~> 3.5.1) @@ -530,4 +577,4 @@ RUBY VERSION ruby 3.2.3p157 BUNDLED WITH - 2.5.16 + 2.6.6 From 5a0550a658d166f36a15e52a855e3fc7638fc8b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20V=C3=A1squez?= Date: Mon, 4 May 2026 20:35:13 -0600 Subject: [PATCH 9/9] =?UTF-8?q?Upgrade=20Rails=207.2.3.1=20=E2=86=92=208.0?= =?UTF-8?q?.5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flips the Gemfile constraint from ~> 7.2.0 to ~> 8.0.0 and collapses the dual-boot if/else into a single line. Both sides of the dual-boot pair (Gemfile and Gemfile.next via symlink) now target 8.0. Detection against the 8.0 pattern set surfaced no fix-before-bump items in our codebase: enum is unused, no removed AR config keys, no routes-array usage, no SCHEMA_CACHE env var, no Benchmark.ms, Ruby 3.2.3 already meets the 3.2.0 floor. Sprockets stays — it still works at 8.0 (just no longer the new- app default). Migration to Propshaft is a separate, optional concern. The only prereq surfaced by booting the test suite under 8.0 was jbuilder still requiring active_support/proxy_object; addressed in the previous commit. Test suite is 204/204 green on 8.0.5. Deferred to the 8.0 → 8.1 hop (per skill rules — future-version runtime warnings are not fix-before-bump for the current hop): - to_time timezone behavior (config.active_support.to_time_preserves_timezone = :zone) --- Gemfile | 6 +-- Gemfile.lock | 120 +++++++++++++++++++++++++-------------------------- 2 files changed, 59 insertions(+), 67 deletions(-) diff --git a/Gemfile b/Gemfile index eef3858f..00fed6f5 100644 --- a/Gemfile +++ b/Gemfile @@ -11,11 +11,7 @@ git_source(:github) do |repo_name| "https://github.com/#{repo_name}.git" end -if next? - gem "rails", "~> 8.0.0" -else - gem "rails", "~> 7.2.0" -end +gem "rails", "~> 8.0.0" # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem "bootstrap-sass", "3.4.1" diff --git a/Gemfile.lock b/Gemfile.lock index 6c713587..d864caef 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -10,68 +10,65 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (7.2.3.1) - actionpack (= 7.2.3.1) - activesupport (= 7.2.3.1) + actioncable (8.0.5) + actionpack (= 8.0.5) + activesupport (= 8.0.5) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.2.3.1) - actionpack (= 7.2.3.1) - activejob (= 7.2.3.1) - activerecord (= 7.2.3.1) - activestorage (= 7.2.3.1) - activesupport (= 7.2.3.1) + actionmailbox (8.0.5) + actionpack (= 8.0.5) + activejob (= 8.0.5) + activerecord (= 8.0.5) + activestorage (= 8.0.5) + activesupport (= 8.0.5) mail (>= 2.8.0) - actionmailer (7.2.3.1) - actionpack (= 7.2.3.1) - actionview (= 7.2.3.1) - activejob (= 7.2.3.1) - activesupport (= 7.2.3.1) + actionmailer (8.0.5) + actionpack (= 8.0.5) + actionview (= 8.0.5) + activejob (= 8.0.5) + activesupport (= 8.0.5) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.2.3.1) - actionview (= 7.2.3.1) - activesupport (= 7.2.3.1) - cgi + actionpack (8.0.5) + actionview (= 8.0.5) + activesupport (= 8.0.5) nokogiri (>= 1.8.5) - racc - rack (>= 2.2.4, < 3.3) + rack (>= 2.2.4) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (7.2.3.1) - actionpack (= 7.2.3.1) - activerecord (= 7.2.3.1) - activestorage (= 7.2.3.1) - activesupport (= 7.2.3.1) + actiontext (8.0.5) + actionpack (= 8.0.5) + activerecord (= 8.0.5) + activestorage (= 8.0.5) + activesupport (= 8.0.5) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.2.3.1) - activesupport (= 7.2.3.1) + actionview (8.0.5) + activesupport (= 8.0.5) builder (~> 3.1) - cgi erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.2.3.1) - activesupport (= 7.2.3.1) + activejob (8.0.5) + activesupport (= 8.0.5) globalid (>= 0.3.6) - activemodel (7.2.3.1) - activesupport (= 7.2.3.1) - activerecord (7.2.3.1) - activemodel (= 7.2.3.1) - activesupport (= 7.2.3.1) + activemodel (8.0.5) + activesupport (= 8.0.5) + activerecord (8.0.5) + activemodel (= 8.0.5) + activesupport (= 8.0.5) timeout (>= 0.4.0) - activestorage (7.2.3.1) - actionpack (= 7.2.3.1) - activejob (= 7.2.3.1) - activerecord (= 7.2.3.1) - activesupport (= 7.2.3.1) + activestorage (8.0.5) + actionpack (= 8.0.5) + activejob (= 8.0.5) + activerecord (= 8.0.5) + activesupport (= 8.0.5) marcel (~> 1.0) - activesupport (7.2.3.1) + activesupport (8.0.5) base64 benchmark (>= 0.3) bigdecimal @@ -80,9 +77,10 @@ GEM drb i18n (>= 1.6, < 2) logger (>= 1.4.2) - minitest (>= 5.1, < 6) + minitest (>= 5.1) securerandom (>= 0.3) tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) acts_as_list (1.1.0) activerecord (>= 4.2) addressable (2.8.5) @@ -114,7 +112,6 @@ GEM capybara-screenshot (1.0.26) capybara (>= 1.0, < 4) launchy - cgi (0.5.1) coffee-script (2.4.1) coffee-script-source execjs @@ -211,7 +208,7 @@ GEM bigdecimal (~> 3.1) net-http (0.6.0) uri - net-imap (0.6.3) + net-imap (0.6.4) date net-protocol net-pop (0.1.2) @@ -289,20 +286,20 @@ GEM rackup (1.0.1) rack (< 3) webrick - rails (7.2.3.1) - actioncable (= 7.2.3.1) - actionmailbox (= 7.2.3.1) - actionmailer (= 7.2.3.1) - actionpack (= 7.2.3.1) - actiontext (= 7.2.3.1) - actionview (= 7.2.3.1) - activejob (= 7.2.3.1) - activemodel (= 7.2.3.1) - activerecord (= 7.2.3.1) - activestorage (= 7.2.3.1) - activesupport (= 7.2.3.1) + rails (8.0.5) + actioncable (= 8.0.5) + actionmailbox (= 8.0.5) + actionmailer (= 8.0.5) + actionpack (= 8.0.5) + actiontext (= 8.0.5) + actionview (= 8.0.5) + activejob (= 8.0.5) + activemodel (= 8.0.5) + activerecord (= 8.0.5) + activestorage (= 8.0.5) + activesupport (= 8.0.5) bundler (>= 1.15.0) - railties (= 7.2.3.1) + railties (= 8.0.5) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) @@ -314,10 +311,9 @@ GEM rails-html-sanitizer (1.6.2) loofah (~> 2.21) nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) - railties (7.2.3.1) - actionpack (= 7.2.3.1) - activesupport (= 7.2.3.1) - cgi + railties (8.0.5) + actionpack (= 8.0.5) + activesupport (= 8.0.5) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) @@ -506,7 +502,7 @@ DEPENDENCIES puma (~> 6.5) pundit (~> 2.2) rack-mini-profiler - rails (~> 7.2.0) + rails (~> 8.0.0) rails-controller-testing recursive-open-struct redcarpet (~> 3.5.1)