https://github.com/rails/rails
`WeekField#format_datetime` が ISO 週番号年境界で誤った `yyyy-Www` 文字列を生成していた問題を `%Y` から `%G` に置き換えることで正しくし、対応テストを追加した変更です。
ActiveRecord の `regroup!` が重複カラムを除去し、`unscope(:group).group` と同等の動作になるよう修正されたことをまとめた記事です。
CI 並列テストのフレークを、ステップを `sleep 0.1` に変更して実行時間を遅延させることで解消し、テストの安定性を向上させた変更です。
add_foreign_key の if_not_exists オプションが逆変換時に if_exists に置換され、ロールバックが正しく冪等になるようコマンドレコーダーが修正された。
`async_ids` が矛盾した where 条件で配列を返すバグを修正し、常に ActiveRecord::Promise を返すよう統一した。
`number_to_human` と `number_to_human_size` が `precision: nil` でクラッシュする問題に対し、比較前に `precision` の存在をチェックするガードを追加し例外を防止しました。テストも拡充され、既存機能への影響はありません。
ActiveSupport::JSON エンコーダを Ractor 共有可能にし、文字列リテラルや正規表現を freeze、CODER を shareable_proc でラップしたことで、並行実行時のクラッシュを防止しました。
PostgreSQL の typmod が -1 の場合にデフォルト精度 6 を Active Record が報告するよう変更し、型メタデータと実際の永続化精度を一致させました。
PostgreSQL 用の `unique_constraint_exists?` が列指定 `:column` を受け付けず例外を投げていたバグを修正し、ガード条件とエラーメッセージを `:column` に統一。テスト追加で挙動を保証し、他のユニーク制約 API と一貫性を確保した。
`drop_virtual_table` の逆変換時に `values` が正しく判定されず不可逆と判定できなかったバグを、引数デストラクチャリング修正とテスト追加により解消しました。
remove_check_constraintのif_existsが式指定でも例外を出さずに無操作になるバグを修正し、抽象アダプタとSQLite3アダプタでロジックを統一、テストで検証しました。
ActiveSupport の RDoc 例示が実装と食い違っていた箇所を、正しいエラーメッセージと設定値に合わせて修正し、ドキュメントの正確性と一貫性を向上させました。
ActionController::ConditionalGet の RDoc 例で未定義の `@articles` が使われていたのを、正しい `@article` に修正し、ドキュメント例の整合性を回復しました。
ActionView の form helpers の RDoc サンプルが実際の出力と一致していなかった箇所を修正し、ドキュメントと実装の整合性を確保しました。
`ActionController::Parameters#merge!` の `:call-seq` に `&block` を追加し、ブロック引数を正式にドキュメント化した変更です。
ActionController の parameter_encodings を不変化し Ractor 共有可能にすることで、既存挙動を保ちつつ並行実行環境での安全性を確保した変更です。
Rescue ハンドラを保持する `rescue_handlers` 配列をデフォルトで freeze し、追加時も不変にすることで Ractor で安全に共有可能にした変更です。既存 API は維持され、テストで共有可能性が確認されています。
PROTECTED_IVARS 定数に freeze を付与し、Ractor 環境での不変オブジェクト要件を満たすことで内部変数保護が安全に共有できるようになった。
ActiveSupport::TimeFormats の日時フォーマット用ラムダを shareable_lambda でラップし、Ractor 環境で安全に共有できるようにした変更です。既存の振る舞いと API 互換性は維持されています。
所有側が単一 ID、関連側が複合主キーの場合でも inverse_of が正しくマッチングし、アソシエーションの同一性が保証されるようにロジックとテストが修正されました。