From 15f3fe6125835eaff823923c06b6755a8bc31462 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20V=C3=A1squez?= Date: Tue, 7 Jul 2026 13:58:41 -0600 Subject: [PATCH] Cut current boot over to Rails 8.0 and adopt 8.0 schema format Rails 8.0 is now the production version, so point the current (`else`) boot at 8.0 as well -- both boots now resolve to Rails 8.0.5. The dual-boot scaffold (next?, Gemfile.next symlink, web_next) is kept intact so the next hop only needs to bump the `next?` branch; the identical branches are wrapped in a rubocop:disable for Style/IdenticalConditionalBranches. Gemfile.lock regenerated via `bundle update rails` (7.2.3.1 -> 8.0.5); Gemfile.next.lock was already at 8.0.5. Adopt the Rails 8.0 schema-dumper format in db/schema.rb: - ActiveRecord::Schema[7.1] -> [8.0] - enable_extension "plpgsql" -> "pg_catalog.plpgsql" (8.0 dumps schema-qualified extension names) Deliberately keep `t.integer "file_file_size"` rather than the `bigint` a fresh migrate would emit. The bigint comes from kt-paperclip's `t.attachment` macro (old paperclip used integer), not from Rails 8, and production's column -- created years ago under paperclip -- is still integer. Keeping integer keeps schema.rb faithful to production; a db:schema:load + dump round-trips cleanly with no churn (verified). Verified on the host against Postgres 16.13: schema:load succeeds, production boots clean with zero deprecation warnings, suite green (16 runs, 52 assertions, 0 failures, 0 errors). --- Gemfile | 6 ++- Gemfile.lock | 119 +++++++++++++++++++++++++-------------------------- db/schema.rb | 5 +-- 3 files changed, 65 insertions(+), 65 deletions(-) diff --git a/Gemfile b/Gemfile index e17f7f1..ebbec5c 100644 --- a/Gemfile +++ b/Gemfile @@ -11,11 +11,15 @@ end ruby "3.2.11" +# rubocop:disable Style/IdenticalConditionalBranches +# Rails 8.0 is now the production version, so both boots target it. The dual-boot +# scaffold is kept intact so the next hop only needs to bump the `next?` branch. if next? gem "rails", ">= 8.0.0", "< 8.1.0" else - gem "rails", ">= 7.2.0", "< 7.3.0" + gem "rails", ">= 8.0.0", "< 8.1.0" end +# rubocop:enable Style/IdenticalConditionalBranches gem "bundler-audit" gem "next_rails" diff --git a/Gemfile.lock b/Gemfile.lock index 3aec4ad..3609456 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -14,68 +14,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 @@ -84,9 +81,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) addressable (2.9.0) public_suffix (>= 2.0.2, < 8.0) ast (2.4.3) @@ -131,7 +129,6 @@ GEM rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - cgi (0.5.2) climate_control (1.2.0) clipboard-rails (1.7.1) coffee-rails (5.0.0) @@ -272,20 +269,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-dom-testing (2.3.0) activesupport (>= 5.0.0) minitest @@ -293,10 +290,9 @@ GEM 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.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) @@ -403,6 +399,7 @@ GEM uglifier (4.2.1) execjs (>= 0.3.0, < 3) unicode-display_width (2.6.0) + uri (1.1.1) useragent (0.16.11) web-console (4.2.1) actionview (>= 6.0.0) @@ -443,7 +440,7 @@ DEPENDENCIES nokogiri (>= 1.13.0) pg (~> 1.1) puma (~> 3.7) - rails (>= 7.2.0, < 7.3.0) + rails (>= 8.0.0, < 8.1.0) redcarpet reek rubocop-rails-omakase diff --git a/db/schema.rb b/db/schema.rb index 24a0cd6..20736fa 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,9 +10,9 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.1].define(version: 2018_03_25_143727) do +ActiveRecord::Schema[8.0].define(version: 2018_03_25_143727) do # These are extensions that must be enabled in order to support this database - enable_extension "plpgsql" + enable_extension "pg_catalog.plpgsql" create_table "gemfiles", force: :cascade do |t| t.string "file_file_name" @@ -23,5 +23,4 @@ t.datetime "updated_at", precision: nil, null: false t.string "alpha_id" end - end