https://github.com/rails/rails
url_for が受け取る params ハッシュを破壊的に変更していた問題を非破壊的 `reject` に置き換え、memoized パラメータの汚染と FrozenError を防止しました。
ActionableError の `action` が共有ハッシュを直接変更していたバグを、コピーオンライトでハッシュを再代入する実装に変更し、サブクラス間のアクション漏れを防止しました。
`ActiveModel::Errors#import` が受け取ったハッシュを直接変更していたバグを、浅い `dup` でコピーするだけに修正。呼び出し側のハッシュが破壊されず、FrozenHash でも例外が出なくなった。
不定冠詞の誤用を修正し、`using_index`、`column_name`、`Vips` などのエラーメッセージが文法的に正しい "a" 表記に統一されました。
Rails のアプリ生成テンプレートで見つかった "assigment" と "checkin" の誤字を修正し、生成コードの品質向上を実現しました。
Model.inspect がスキーマ未ロード時に出すメッセージの "informations" を "information" に置換し、英語表記を正しく統一したシンプルな修正です。
コードコメントのスペルミス2件を修正し、可読性と正確性を向上させた変更です。機能上の影響はありません。
Rails.application の `dotenvs` がパス単位でメモ化されずデフォルトだけが使われていたバグを、`@dotenvs` をハッシュ化してパスキーでキャッシュする実装に変更し、明示的な `.env` パスを正しく尊重できるようにした。
未使用だった private メソッド `lookup` を削除し、`ActiveSupport::EnvConfiguration` をシンプル化。振る舞いは変わらず、保守性が向上しました。
Rails 8.2 に `config.action_dispatch.strict_accept_header` が追加され、Accept ヘッダーの `*/*` が HTML を強制しない RFC 9110 準拠のコンテンツネゴシエーションをオプトインで有効化します。既存アプリは影響なしで新規アプリはデフォルトで有効になる設計です。
Template クラスにフォーマット検証と正規化のヘルパーを抽出し、Template::Types への依存を排除。autoload 重複も整理し、振る舞いは変更せず可読性と保守性を向上させた。
ActiveRecord の primary_key がクラス属性化され、サブクラスへ自動継承されるようになり、抽象クラスや STI でのキー設定がシンプルになった。
未保存レコードの所有者が複合主キーを持つ場合でも、has_many/has_one が正しくクエリされるよう、foreign_key_present? の判定ロジックをキーごとにチェックするよう修正しました。
接続プールごとに query_log_tags の format・prepend_comment を上書きし、false でタグ付けを無効化できるようにした変更です。既存キー拡張で後方互換性を保ちつつ、設定取得を一元化し、テストも拡充しています。
`retry_on` の `wait:` 型チェックをロード時に実施し、無効な型は `ArgumentError` として即座に報告する変更です。実装は `case` 文で最小限に留め、既存ロジックの互換性と拡張性を維持しています。
PostgreSQL の警告クリアを全クエリに統一し、失敗時に警告処理が例外を隠さないよう修正したバックポートです。
この PR は `@primary_key` エイリアスと sentinel を除去し、`primary_key` と `primary_key_definition` を単一ソースに統合することで、条件分岐を削減し保守性を向上させました。
8-0-stable にテストスイートの安定化とコネクションプールのリファクタリングをバックポートし、環境変数の復元やプールのクリーンアップを強化した。
テストスイートのフレーキを抑えるため、環境変数のスコープ管理や接続プールの内部安全化、時間依存テストの決定論化など多数の修正を8.1にバックポートし、CI の安定性を向上させました。
WeakThreadKeyMap の内部を Concurrent::Map に置き換えて同時実行バグを解消し、テスト側にリーク判定の拡張と新たなレース条件テストを追加したことで、接続リーク誤検出を防止しテストの信頼性を向上させました。