https://github.com/rails/rails
Mime::SET、Mime::LOOKUP、Mime::EXTENSION_LOOKUP が DeprecatedObjectProxy で非推奨化され、Mime.extensions が追加されたことで公開 API だけで同等機能が利用可能になり、既存コードは警告付きで互換性を保ちます。
AttributeMethods の内部キャッシュを凍結し、継承時に初期化することで Ractor 間で安全に共有できるようにした変更です。公開 API は変えず、後方互換性を保ちつつ並行実行安全性を向上させました。
InheritableOptions の freeze ロジックを改変し、default_proc を除去して親ハッシュをマージ。これにより Ractor 環境で安全に共有でき、overridden? の判定も凍結後に正しく動作します。
`with_raw_connection` が非StandardError例外で接続を未検証にマークし、次回利用時に再検証を強制することでプールの整合性を保ち、二次エラーを防止します。
Rails のジェネレータテンプレートが `actions/cache` のバージョンを v5 から v6 に更新し、生成される CI ワークフローが最新のキャッシュアクションを利用できるようになりました。
デフォルトとカスタムの `parameter_parsers` を凍結し、直接インスタンス変数へ代入することで Ractor 安全性を確保した変更です。
ActiveRecord のカウンターキャッシュ属性をデフォルトで freeze し、Ractor 間で安全に共有できるようにした。振る舞いは変わらず、最小侵襲で不変性を保証する設計変更です。
動的 PermissionsPolicy ソースでもシンボルが正しく `'self'` にマッピングされるよう `resolve_source` に apply_mappings を追加し、一貫したポリシー生成と後方互換性を実現した。
Inflection ルールを起動後にフリーズし、Ractor で安全に共有できるようにした変更を解説します。
Trailing slash と空パスで `url_for` が凍結文字列を編集しようとして起きた FrozenError を、`path = +"/"` に変更し mutable にすることで解消し、クエリやアンカーが正しく付与できるようになった。
ActionView の view_context_class を早期に初期化しミューテックス取得を回避、Ractor でも安全に共有できるようにした変更です。
Action Mailbox の TERMINATOR 定義で使われていた `shareable_lambda(&->…)` を標準的なブロック構文に置き換え、可読性と保守性を向上させた変更です。
ActionDispatch の Session と Utils を Http 名前空間へ移行し、eager_autoload で起動時ロードを保証。Ractor 環境での遅延ロード問題を解消し、外部 API 互換性は維持された。
ActiveSupport::TaggedLogging に Ractor 共有ロガー生成メソッドを追加し、`ActiveSupport::Ractors::Logger` が非同期書き込みとフラッシュを提供。既存 API 互換を保ちつつマルチ Ractor 環境でのタグ付きロギングを実現した。
default_order が同一カラムを複数渡すと重複した ORDER BY が生成されていた問題を、引数配列の一意化(args.uniq!)で解消し、order と regroup と同様の挙動に統一しました。
LogSubscriber のプロック定数を除去し、配列と直接的なログレベル判定に置き換えることで Ractor 安全かつ互換性を保ったリファクタリングを実現した。
shared セクションに存在しない接続でも nil エラーを回避し、reverse_merge を条件付きで実行することで 3 層 database.yml の安全なロードを実現した。
Selenium 4.45 の副作用除去に対応し、`Browser#preload` がドライバとブラウザバイナリを明示的に設定するよう変更され、Chrome が PATH に無くてもシステムテストが正常に実行できるようになりました。
default_scope が Ractor セーフになるよう、スコーププロックを共有可能化し、内部配列を凍結・不変化させた変更です。これによりマルチプロセス環境で安全に利用できます。
ActiveSupport::Cache の内部ヘルパー削除と Logger#debug のブロック化、ローカルキャッシュの increment/decrement 簡素化によりコードの重複が解消され可読性が向上し、振る舞いは従来通り維持された。