177 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-25
stories 47

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

Rails API docs switch to Markdown by default

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

Rails' documentation is now generated with Markdown as the default markup, while two small sentinel removals in CurrentAttributes and define_attribute change what those APIs expose.

Use Markdown as the default API docs markup rails/rails

by fxn

The API docs generator now passes `--markup=markdown` by default, so gem and framework docs render through the Markdown pipeline unless a file opts back into RDoc with `# :markup: rdoc` (29 files do, because the current renderer does not support code blocks nested in lists). Action Mailer drops its `# :markup: markdown` header and rides the new default; author fxn describes the patch as the cul...

Don't store a sentinel in `CurrentAttributes.defaults` rails/rails

by Ryuta Kamizono

`CurrentAttributes.defaults` no longer carries a `NOT_SET` sentinel for attributes declared without `default:`; those attributes are now simply absent from `.defaults`, and `resolve_defaults` no longer has to filter the sentinel out on every instantiation and reset. Code that read `.defaults` and expected a placeholder entry will now see nothing there.

Don't use a sentinel for an omitted `default:` in `define_attribute` rails/rails

by Ryuta Kamizono

`define_attribute` used to default `default:` to a `NO_DEFAULT_PROVIDED` sentinel and compare against it to detect whether a default was supplied. It now detects omission the same way `ActiveModel::AttributeRegistration#attribute` does, by setting a local in the parameter's default expression, and the sentinel is gone.

Define CollectionProxy bulk insert and upsert methods explicitly rails/rails

by dai199

`CollectionProxy` generated `insert`, `insert_all`, `insert!`, `insert_all!`, `upsert`, and `upsert_all` via `class_eval` on a string, which Bootsnap cannot cache, so they recompiled on every boot. They are now defined explicitly with a shared private `bulk_write(method)` helper, matching the same change already made to `AssociationRelation`.

Convert Action Mailer README to Markdown rails/rails

by fxn

The Action Mailer README moves to Markdown. fxn notes RDoc renders fenced code blocks labeled `text` with odd syntax-highlighting colors, though that predates the conversion.

Quick answers

What shipped in Rails on October 25, 2026?
Rails' documentation is now generated with Markdown as the default markup, while two small sentinel removals in CurrentAttributes and define_attribute change what those APIs expose. In total, 32 commits and 15 pull requests landed.
Who contributed to Rails on October 25, 2026?
3 developers shipped this update, including fxn, Ryuta Kamizono, and dai199.
What were the notable Rails updates?
Use Markdown as the default API docs markup, Don't store a sentinel in `CurrentAttributes.defaults`, and Don't use a sentinel for an omitted `default:` in `define_attribute`.