Skip to content

Point Gemfile.next at Rails 7.2 (7.1 -> 7.2 hop)#69

Merged
JuanVqz merged 4 commits into
mainfrom
chore/upgrade-rails-7.2
Jul 7, 2026
Merged

Point Gemfile.next at Rails 7.2 (7.1 -> 7.2 hop)#69
JuanVqz merged 4 commits into
mainfrom
chore/upgrade-rails-7.2

Conversation

@JuanVqz

@JuanVqz JuanVqz commented Jul 7, 2026

Copy link
Copy Markdown
Member

What is this PR:

  • Bug fix
  • Feature
  • Chore

Description:

Now that #68 (Ruby 3.2 / Rails 7.1 groundwork) is merged into main, this PR is rebased directly on top of it. It starts the next hop in the sequential upgrade path (Rails 7.1 → 7.2) plus a handful of dev-environment fixes uncovered while working on it:

  • Bumped Gemfile.next's rails constraint to >= 7.2.0, < 7.3.0, resolving cleanly to 7.2.3.1 with no conflicts.
  • Ran the breaking-change detection sweep for this hop (transaction-aware job enqueuing, show_exceptions symbol values, params comparison, ActiveRecord::Base.connection, Rails.application.secrets removal, Migration.check_pending! removal, serialize syntax, fixture_path, query_constraints, mailer test args, autoload_lib syntax) — zero matches. The one pattern that would have hit (Rails.application.secrets) was already cleared in Upgrade application to unblock infrastructure #68.
  • Gem compatibility check (bundle_report compatibility) reports 0 incompatible gems against 7.2.3.1.
  • Bumped local Postgres from 13 to 16.13 in docker-compose.yml to match bundler-audit-production's actual Heroku Postgres version (was drifted).
  • Added .tool-versions pinning Ruby (3.2.11, matching the Gemfile) and Node (24.18.0, matching what Heroku's nodejs buildpack resolves to) for asdf users.
  • Fixed stale bin/setup samples: .ruby-version.sample (2.4.3) and .nvmrc (12.13.0) were years out of date and didn't match the Gemfile's ruby "3.2.11" — on a truly fresh clone, bin/setup would copy in the wrong Ruby version and bundle install would fail on the mismatch.
  • Added bin/dev — a plain rails server wrapper (no Procfile.dev/foreman needed, since there's no separate asset-watch process to coordinate; Sprockets compiles JS/CSS on the fly in development).

This PR does not flip the app to Rails 7.2 as the default yet — it lands the dual-boot target so the version bump itself can be a small follow-up, same pattern as the earlier 6.1 → 7.0 and 7.0 → 7.1 hops.

Related links (if applicable):

N/A

How has this been tested?

  • Automated tests
  • Manual tests

What manual tests have been run?

  • Boot smoke test (rails runner) passes on Gemfile.next (Rails 7.2.3.1).
  • Full test suite green on Gemfile.next (11 runs, 0 failures), rubocop and reek clean.
  • rake assets:precompile succeeds in production mode on Gemfile.next.
  • Real HTTP smoke test of the upload → HTML → PDF flow against a running server on Gemfile.next.
  • Verified docker compose down -v && docker compose up --build boots cleanly against Postgres 16.13 and the full test suite passes against it.

@JuanVqz JuanVqz force-pushed the chore/upgrade-rails-7.2 branch 4 times, most recently from 76508a0 to eefa412 Compare July 7, 2026 17:51
Base automatically changed from chore/upgrade-app to main July 7, 2026 18:36
Detection scan against rails-72-patterns.yml found zero matches across all
high- and medium-priority patterns (transaction-aware jobs, show_exceptions
symbols, params comparison, ActiveRecord::Base.connection, Migration.check_pending!,
serialize syntax, fixture_path, query_constraints, mailer test args,
autoload_lib syntax) -- this app's small surface and the recent secrets.yml
removal already cleared the one pattern that would have hit
(Rails.application.secrets, removed outright in 7.2).

bundle_report compatibility --rails-version=7.2.3.1 reports 0 incompatible
gems. Resolved cleanly with no conflicts.

Verified on Gemfile.next: boot smoke test passes, full suite green (11
runs, 0 failures), rubocop/reek clean, rake assets:precompile succeeds in
production mode, and a real HTTP smoke test of the upload -> HTML -> PDF
flow against a running server.
@JuanVqz JuanVqz force-pushed the chore/upgrade-rails-7.2 branch from eefa412 to 58a1104 Compare July 7, 2026 18:38
JuanVqz added 3 commits July 7, 2026 12:44
bundler-audit-production runs Heroku Postgres 16.13; local dev was still
on 13. Note for anyone pulling this: the existing db_data volume was
initialized by Postgres 13 and isn't readable by 16, so it needs a reset
once via `docker compose down -v`.
Ruby matches Gemfile's "3.2.11". Node matches the version Heroku's
nodejs buildpack resolved to (24.18.0, current LTS at deploy time) since
package.json has no engines pin.
.ruby-version.sample (2.4.3) and .nvmrc (12.13.0) were years out of date
and didn't match the Gemfile's ruby "3.2.11" -- bin/setup on a truly
fresh clone (no pre-existing .ruby-version) would copy in the wrong Ruby
version and bundle install would fail on the mismatch. Updated both to
match Gemfile/.tool-versions.

bin/dev is a plain rails server wrapper, not a Procfile.dev/foreman
runner -- there's no separate asset-watch process to coordinate since
Sprockets compiles JS/CSS on the fly in development.
@JuanVqz JuanVqz merged commit 378e1d4 into main Jul 7, 2026
2 checks passed
@JuanVqz JuanVqz deleted the chore/upgrade-rails-7.2 branch July 7, 2026 19:04
@JuanVqz JuanVqz linked an issue Jul 7, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade to Rails 7.2

1 participant