rubyforgood / rubyforgood/Flaredown

Upgrade Rails 7.1 -> 7.2

Open
#883 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type:infrastructure
Dominant language
Ruby
Stars
50
Forks
21
Avg merge
6d 12h
Merged PRs (30d)
16

Description

Why

First framework step. With the prep and the two blocker gems done, this should be close to mechanical. Verified to resolve cleanly.

Scope

  • gem "rails", "~> 7.2.0"
  • Keep config.load_defaults at 7.1. Run bin/rails app:update, take the generated new_framework_defaults_7_2.rb with every option still commented. Enabling them is a separate issue — upgrading the framework and changing its behaviour are two different changes, and some defaults alter serialization formats that must not flip in the same deploy.
  • config/initializers/new_framework_defaults_7_1.rb can be retired: it is already fully worked through and load_defaults 7.1 is set, so it is bookkeeping.
  • Rails.application.secrets is removed in 7.2 — already handled by the prep issue.

Note Rails 7.2 requires Ruby >= 3.1, so this lands fine on the current Ruby 3.2.3.

Acceptance criteria

  • Full suite green with deprecations raising
  • load_defaults still 7.1
  • Staging soak before the defaults are flipped

Blocked by

#881 (Mongoid 9) and #882 (Globalize 7) — both hard resolution blockers. Blocks #884 and #885.


Part of the Ruby + Rails upgrade sequence. Ruby 3.2 reached end of life on 2026-04-01 and the backend is on Rails 7.1; the goal is Ruby 3.4.10 and Rails 8.1, in steps that each keep CI green and are independently deployable.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the Rails dependency scope and the two blocker issues, #881 and #882. Run bin/rails app:update, keep config.load_defaults at 7.1, retain the generated 7.2 defaults commented, and retire config/initializers/new_framework_defaults_7_1.rb. Done means the full suite passes with deprecations raising and staging completes its soak.

Written by the indexing model from the issue text.

Assessment

Tech stack
rails, ruby
Domain
backend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.