https://github.com/rails/rails
Action Cable のフロントエンドテストを Karma から Web Test Runner に置き換え、Sauce Labs 連携を新モジュール化したことで、テスト振る舞いは維持しつつ保守性が向上しました。
`retry_on` の `wait:` に省略引数付き Proc を渡すと Arity 判定が誤り `ArgumentError` が発生していた問題を、arity が 2 または -1 未満の場合に 1 引数で呼び出すよう修正し、テストも追加された。
Composite Primary Key の全要素が `content_columns` から除外されるようロジックを修正し、ドキュメント通りの振る舞いと後方互換性を維持しました。
remove_column に型なしでオプションだけ渡すと不可逆となり、明確な IrreversibleMigration が投げられるように guard 条件を拡張した変更です。
has_many/has_one 側で counter_cache の column が省略されたときに発生していた `-nil` の NoMethodError を、余分な単項マイナスを除去する修正で解消し、デフォルト列名が正しく導出されるようにした変更です。
ActionCable の再起動時に残っていた接続レジストリをクリアし、開発モードでのメモリリークと統計値の過大計測を防止した変更です。
`UrlConfig` が `seeds` と `use_metadata_table` を `to_boolean!` で変換し、`DATABASE_URL` のクエリ文字列で boolean 設定が一貫して扱えるようになった。
Composite primary keyモデルで `find(nil)` が NoMethodError になる問題を、nil 安全ガードの追加により RecordNotFound に統一し、テストも追加した修正です。
ActiveJob のログで引数なしジョブに付く余計な "with arguments:" を、args_info の条件式に `any?` チェックを復活させて除去し、ログ可読性と後方互換性を保った修正を行いました。
Redis リスナースレッドが死んだ際に再生成し、再接続カウンタをリセットするロジックを追加。テストで再起動を検証し、ブロードキャストの失われるリスクを解消した。
Array#to_query が空配列要素を除外せずクエリに余分なセグメントを残す不具合を、Hash#to_query と同様のガードロジックで修正し、テストを追加して一貫性と回帰防止を実現しました。
SubscriberMap の remove_subscriber が未登録チャネルで autovivification を起こし spurious UNLISTEN を送信していた問題を、キー有無の早期リターンで解消し、テストで動作を検証しました。
ActiveRecord の `update`/`update!` が複合主キー単一レコード更新時に誤判定していた問題を `update_multiple_ids?` ヘルパーで解消し、シングルキーと同様に扱えるようにした変更です。
ActiveSupport::StructuredEventSubscriber の debug_only が配列を破壊的に更新していたバグを、非破壊的再代入に変更しサブクラス間のリークを防止。テスト追加で安全性を確認。
ActiveRecord::Base.with がブロック時に Object#with を呼び出すよう変更され、クラス属性の一時設定が可能になった。既存の CTE 機能は保持され、後方互換性も維持される。
HashWithIndifferentAccess の未テスト分岐に 4 つのテストが追加され、fetch・values_at・dig・except/without の動作が自動的に検証されるようになった。
Inflector#transliterate が文字列を直接変更していたバグを、入力を常に dup してから変換することで修正し、parameterize などの上位メソッドでも副作用がなくなった。
Server#each_connection がハッシュ走査から配列スナップショット走査へ変更され、同時接続の追加・削除による RuntimeError が防止され、安全性が向上しました。
`stop_stream_from` がシンボルを文字列へ変換するよう修正し、`stream_from` とキーを統一。テスト追加で解除が正しく行われることを検証し、ストリーム残存バグを解消した。
テストアダプターのキー生成を文字列化し、シンボルストリーム名でもブロードキャスト検証が正しく動作するように修正。テストの信頼性と一貫性が向上しました。