Cut current boot over to Rails 8.1 and finish the upgrade season#76
Merged
Conversation
Rails 8.1 is now the production target, so point the current (`else`) boot at it too -- both boots resolve to Rails 8.1.3. The dual-boot scaffold (next?, Gemfile.next, web_next) is kept intact so a future hop only needs to bump the `next?` branch; identical branches are wrapped in a rubocop:disable for Style/IdenticalConditionalBranches. - Gemfile.lock relocked to 8.1.3 (Gemfile.next.lock was already 8.1.3). - config/application.rb: remove `config.active_support.to_time_preserves_ timezone = :zone unless NextRails.next?` outright. Both boots are 8.1 now, where that setter is a deprecated no-op (`to_time` always preserves the full timezone); it was only kept for the 8.0 boot during the dual boot, exactly as the removed comment promised. - db/schema.rb: adopt the Rails 8.1 dumper format -- header ActiveRecord::Schema[8.0] -> [8.1], and columns are now emitted in alphabetical order (an 8.1 dumper change; cosmetic, but adopting it now avoids churn on every future dump). file_file_size is kept as integer, same deliberate call as the 8.0 cutover -- the bigint a fresh migrate emits comes from kt-paperclip's t.attachment, not Rails, and doesn't match production's column. Verified schema:load -> dump round-trips clean (integer preserved). Closes the Rails (7.1 -> 8.1) and Ruby (2.7 -> 3.4.9) upgrade season; Bundler is on 4.0.15. Next open thread is the Ruby 3.4 -> 4.0 major hop, tracked separately. Verified on the host (ruby 3.4.9), both boots identical at 8.1.3: dev + prod boot clean with zero deprecation warnings, suite green (16 runs, 52 assertions, 0 failures), rubocop (42 files) and reek both clean.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Cutover: Rails 8.1 is now the production target, so the current (
else) boot points at it too — both boots resolve to Rails 8.1.3. This closes the upgrade season.The dual-boot scaffold (
next?,Gemfile.next,web_next) is kept intact so a future hop only needs to bump thenext?branch; the now-identical branches are wrapped in aStyle/IdenticalConditionalBranchesrubocop:disable.Changes
Gemfile.lockrelocked to 8.1.3 (Gemfile.next.lockwas already 8.1.3 from Point Gemfile.next at Rails 8.1 (8.0 -> 8.1 hop) #75).config/application.rb: removedconfig.active_support.to_time_preserves_timezone = :zone unless NextRails.next?outright. Both boots are 8.1 now, where that setter is a deprecated no-op (to_timealways preserves the full timezone). It only existed for the 8.0 boot during the dual boot — exactly as its comment promised ("removed outright at cutover").db/schema.rb: adopt the Rails 8.1 dumper format:ActiveRecord::Schema[8.0]→[8.1]file_file_sizekept as integer (same deliberate call as the 8.0 cutover — thebiginta fresh migrate emits comes fromkt-paperclip'st.attachment, not Rails, and doesn't match production's column). Verifiedschema:load→dumpround-trips clean withintegerpreserved.Verification (host, ruby 3.4.9, Postgres 16.13) — both boots identical at 8.1.3
Season status
Remaining open thread (tracked separately, not in this PR): the Ruby 3.4 → 4.0 major hop, and the long-deferred
config.load_defaultsbump (still at 7.1).