https://github.com/rails/rails
ActionPack と ActiveSupport で使われていた `shareable_lambda` の定義を `&->` から標準ブロックリテラルへ置き換え、可読性を向上させました。振る舞いは変更せず、互換性を保ったリファクタリングです。
Active Record Railtie のメッセージ検証プロックを `ActiveSupport::Ractors.shareable_proc` でラップし、`legacy_options` を freeze することで Ractor 環境でも安全に動作できるようにした変更です。
Action Cable の設定クラスをトップレベルの ActionCable::Configuration に移動し、旧名はエイリアスで保持。テストで互換性を確認し、サーバー実装差し替えを容易にする設計的整理です。
Rails の safe_join がデフォルトで使用していた非推奨の $, を除去し、デフォルト引数を nil に変更したことで Ractor 安全性と API の一貫性が向上しました。
テーブル名が既に設定されている場合にのみ `@predicate_builder` をリセットするよう変更し、遅延テーブル名算出で起きていた `TypeError` を防止しました。実装は条件付きリセットに絞るだけの最小改修で、後方互換性は維持されています。
Arel::Table がキーワード引数 name: を受け取るようリファクタリングされ、呼び出し側の nil 埋めが不要になり可読性が向上しました。
json gem を 2.20.0 に更新し、コメント付き JSON のパースに必要な `allow_comments: true` を対象コードに追加。nightly ビルドのテスト失敗を解消し、後方互換性を維持した実装です。
HashConfig がトップレベルキーだけをシンボル化する仕様に起因した、`database.yml` の `query_log_tags` ネストキーが無視されるバグを、文字列キーで参照するように修正し、テストも YAML 形式に合わせて更新した。
ActiveRecord::Store の生成属性モジュールに名前を付け匿名モジュールを排除し、インスタンス変数参照を定数に置き換えて可読性とクラス形状の安定化を実現した変更です。
テンプレート検索を例外系と非例外系に分割し `find!` と `find` を導入。既存コードは非例外系へ移行し、可読性と将来の最適化余地が向上しました。
Active Record と Active Model のメモ化を除去し、Ractor 互換性を向上させた変更です。パフォーマンスへの影響は最小で、コードはスレッド安全かつシンプルになっています。
AbstractController::Caching の view_cache_dependency が Ractor 共有可能な Proc に変換され、配列を freeze して安全に扱えるようになった点を解説します。
ExecutionContext.after_change のコールバック配列を凍結し immutable にし、shareable_proc でラップした登録方式に変更することで、Ractor 環境でも安全に利用できるようになった。
Ractor 共有化を試みた ActiveSupport JSON エンコーダーの変更をリバートし、CI フレークを回避。実装を従来の状態に戻すことで安定性を確保した。
ActiveSupport の JSON エンコーダを Ractor 共有可能にし、`Ractor.make_shareable` を不要にした改修です。定数凍結と `shareable_proc` ラップにより既存動作は保持しつつ Ruby 4.0 でもテストが通ります。
`Http::Headers#merge` が元リクエストの env を変更していた問題を、`Headers.new(@req.dup)` に置き換えて修正。テスト追加で不変性を保証し、ドキュメント通りの挙動を復元しました。
ActiveRecord now validates `offset` arguments with `Integer(value)`, causing invalid inputs to raise `ArgumentError` just like `limit`, and adds tests to ensure the new behavior.
ActiveRecord の primary_key 定義で `_primary_key_definition` の class_attribute を `inherited` から `included` へ移動し、子クラスでの再定義を防止した修正です。
Polymorphic associations now respect custom primary keys when `:inverse_of` is specified, by extending reflection logic and simplifying autosave handling.
`create_or_find_by` がトランザクション外で再試行時にスコープ汚染しレコード取得に失敗するバグを、`else` ブランチでも `rewhere(...).take!` を使用する形で修正し、テストを追加して実運用パスを網羅しました。