159 wires and counting

$ follow Rails

Keep up with Rails in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.

Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.

$ status

wire 2026-10-10
stories 40

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

Bulk ALTER TABLE for constraints, Ractor-safe importmaps

By RepoJournal · Filed · About Rails · Composed from the cited sources · methodology

Rails' migration internals move toward batching constraint DDL, ActionController::Live loses a cross-thread connection stack race, and importmap-rails learns to build its map inside a Ractor.

Combine constraint operations into bulk `ALTER TABLE` rails/rails

by kamipo

kamipo extends #58264 by giving AlterTable methods that match the CommandRecorder signature minus table_name, so option normalization and foreign_key_for! / check_constraint lookups happen inside AlterTable rather than in the caller. The payoff lands in bulk_change_table, which now folds constraint operations into a single ALTER TABLE instead of dispatching them one at a time.

Don't modify a connected_to stack shared with another thread rails/rails

by SulimanAbdulrazzaq

ActiveSupport::IsolatedExecutionState.share_with copies the execution state hash but not the values inside it, so ActionController::Live request and streaming threads were pushing to and popping from the same connected_to stack array. When the request thread exits a connected_to block while the streaming thread is still running, that shared array is mutated out from under it; the fix stops the ...

Ensure Importmap::Map works in a Ractor rails/importmap-rails

by hmcguire-shopify

Importmap::Map cached its generated map lazily on first request, which fails for an unfrozen Hash created on the main Ractor. Hartley McGuire switched that cache to Ractor local storage (provided by Active Support) where available, leaving a Ractor-safe data structure or boot-time precomputation as future options; the resolver/cache_key API makes static precomputation awkward.

fix: normalize metrics across runs within each task rails/lemans

by baygeldin

Lemans assumed every task ran the same number of times per model, which stopped holding at Stage 3 where stable tasks get fewer runs because extra ones are expensive and low-signal. Metrics are now normalized within each task before being combined, so report aggregates no longer over-weight tasks that ran more often.

Merge pull request #59010 from hachi8833/fix_desc_of_default_scope_when_building_records rails/rails

by Ryuta Kamizono

Quiet day elsewhere: kamipo merged a docs fix for the description of default_scope when building records, byroot removed the 8.1 guides section on schema.rb column sorting, and the website took TWIR 09.10.2026.

Quick answers

What shipped in Rails on October 10, 2026?
Rails' migration internals move toward batching constraint DDL, ActionController::Live loses a cross-thread connection stack race, and importmap-rails learns to build its map inside a Ractor. In total, 23 commits and 17 pull requests landed.
Who contributed to Rails on October 10, 2026?
7 developers shipped this update, including kamipo, Jean Boussier, SulimanAbdulrazzaq, hmcguire-shopify, Hartley McGuire, baygeldin, and morgoth.
What were the notable Rails updates?
Combine constraint operations into bulk `ALTER TABLE`, Don't modify a connected_to stack shared with another thread, and Ensure Importmap::Map works in a Ractor.