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-26
stories 63

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

immutable_strings_by_default stops eating column types; URL helpers stay optimized

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

Rails fixed a type-inference bug where immutable_strings_by_default quietly demoted text and PostgreSQL xml, citext, ltree, tsvector and macaddr columns to plain :string, and restored the NumericalityValidator constant that outside code still references.

Scope `immutable_strings_by_default` to string columns rails/rails

by Ryuta Kamizono

The setting applied to every column whose type subclassed ActiveModel::Type::String, which was never the intent: text columns and PostgreSQL's xml, citext, ltree, tsvector and macaddr columns were inferred as :string and lost their own behavior, with OID::Xml#serialize no longer wrapping values in Xml::Data and OID::Macaddr no longer comparing case-insensitively. If you run with immutable_strin...

Deprecate ActiveRecord::Validations::NumericalityValidator rails/rails

by Bruno Costanzo

426bd6a5 dropped the class because Active Model's validator can now look up the attribute type itself, but code outside Rails switches on the constant alongside ActiveRecord::Validations::PresenceValidator and friends. Cherry-picking that removal gives you a NameError in any such case/when branch, so the constant comes back deprecated rather than deleted.

Keep the optimized URL helper for options that do not shape the path rails/rails

by czj

Named route helpers bailed out of the optimized path on any option other than a sole :format, sending post_url(post, host: "example.org"), post_path(post, anchor: "comments") and posts_path(page: 2) through the full url_for pipeline even though none of those options shape the path. The optimized helper now survives options that only build the URL around the path.

Read and write loadpath cache in binmode rails/bootsnap

by Jean Boussier

The loadpath cache is now read and written in binmode, fixing Windows compatibility, per byroot: "For windows compatibility."

Merge pull request #581 from czj/ci-old-rubies-on-ubuntu-24.04 rails/bootsnap

by Jean Boussier

Elsewhere in bootsnap: custom compilers keep working when DISABLE_BOOTSNAP_COMPILE_CACHE=1 is set, and CI runs for Ruby older than 3.2 move to ubuntu-24.04 now that ubuntu-latest points at 26.04.

Quick answers

What shipped in Rails on October 26, 2026?
Rails fixed a type-inference bug where immutable_strings_by_default quietly demoted text and PostgreSQL xml, citext, ltree, tsvector and macaddr columns to plain :string, and restored the NumericalityValidator constant that outside code still references. In total, 41 commits and 22 pull requests landed.
Who contributed to Rails on October 26, 2026?
4 developers shipped this update, including byroot, Ryuta Kamizono, Bruno Costanzo, and czj.
What were the notable Rails updates?
Scope `immutable_strings_by_default` to string columns, Deprecate ActiveRecord::Validations::NumericalityValidator, and Keep the optimized URL helper for options that do not shape the path.