- What breaks
- The largest defaults file: 28 settings, including default_column_serializer (turns off default YAML column serialization), cache_format_version, message_serializer, sanitizer_vendor and dom_testing_default_html_version. The development/test secret file moves from tmp/development_secret.txt to tmp/local_secret.txt; preserve its contents to retain local sessions and signatures. Production and other environments are not affected by this file rename. Autoloaded directories leave $LOAD_PATH, so an explicit require of an app file raises LoadError. Rails.application.secrets starts warning. The 7.1 cache format needs a two-phase deploy. MemCacheStore and RedisCacheStore pool by default. show_exceptions changes from booleans to :all, :rescuable and :none. Rails.logger becomes a BroadcastLogger. Active Record Encryption moves to SHA-256; existing SHA-1 data needs configuration. ActionController::Parameters rejects non-string, non-symbol keys. The ActiveSupport::Deprecation singleton is deprecated for Rails.application.deprecators. With load_defaults 7.1, a return, break or throw inside a transaction block commits instead of rolling back (commit_transaction_on_non_local_return). Named gem casualties: PaperTrail 12.x (fixed by 15.x), data-migrate below 9.2.0, and 23 gems catalogued with undocumented 7.1 incompatibilities.
- What we do
- Walk all 28 settings with you and record the production consequence of each. Preserve the development/test secret when moving its file. Review explicit requires of app files. Exercise non-local exits from transaction blocks and capture the resulting warning and data outcome before choosing the new behavior. Two-phase the cache format. Translate show_exceptions true/false to :all/:none to preserve existing exception behavior, or adopt :rescuable deliberately and update assertions.
- What you get
- A load_defaults 7.1 app with a 28-line decision record, no invalidated sessions, a cache that stayed readable, a reviewed list of transaction sites, and the deprecation inventory that feeds 7.2.
- Public market range
- Rails Fever (22 April 2026): 1 to 2 days, an estimate. One published single-app account: about two hours on a 584-test, 82 percent covered app (Garcha, 26 January 2026). Neither is our estimate; the second is one app.