https://github.com/rails/rails
Rails公式ガイド「Getting Started」内のコードブロック行番号表記を、実際のビューファイルの構造に合わせて#3から#4に修正。ガイドの正確性を保つための細かな調整。
Railsのエラー診断ページで、ネストした例外のスタックトレースが展開可能であることを示す矢印アイコンが追加されました。クリック時に90度回転するアニメーションにより、隠れているスタックトレースの存在に気づきやすくなります。
PostgreSQLアダプタでタイムゾーン型マップの更新処理が、クエリ実行時から型キャスト時に移動されました。型変換の直前で型マップを更新することで処理フローが明確化され、今後のタイムゾーン処理改善に向けた基盤が整えられています。
load_defaultsメソッド内で重複していた`if respond_to?(:action_view)`ブロックを統合し、Rails 8.0の設定定義を簡潔にしたリファクタリング。
MemCacheStoreから、過去に削除されたDupLocalStore実装に関連する未使用の`delegate`ライブラリのrequire文を削除。実際の使用状況と依存関係を一致させ、コードベースの健全性を維持する変更。
重複する頭字語(acronym)を設定した際の `underscore` メソッドの動作が改善され、定義順序に依存しない安定した変換が可能になりました。`"USD"` と `"USDC"` のような重複パターンでも正しく処理されます。
Railsガイド生成時に、リネームや削除されたガイドの古いHTMLファイルが残り続ける問題を修正。出力ディレクトリのクリーンアップ処理を追加し、ガイド生成の初めてのテストケースも実装されました。
ActiveSupport::Inflectorの`underscore`メソッドで、重複する頭字語(USDとUSDCなど)の登録順序による挙動の不安定性を解消。頭字語を長さの降順にソートしてから正規表現を生成することで、常に長い頭字語が優先的にマッチするように修正されました。
Railsコンソールでクエリキャッシュがデフォルトで無効になりました。`--query-cache`オプションで有効化できます。これにより、コンソールでの対話的な作業時に常に最新のデータベース状態が反映されるようになります。
insert_all!メソッドで不要なユニークインデックス検索をスキップするように改善。これにより、複合主キーを持つテーブルでモデルレベルの主キー定義が異なる場合でも正常に動作するようになりました。insert_allとupsert_allは引き続きユニークインデックスを必要とします。
Dalli 4.0.0のシリアライザ警告に対応するため、MemCacheStoreでMarshalシリアライザを明示的に指定。従来から暗黙的に使用されていた挙動を明示化し、不要な警告を抑制します。
データベース接続の有効性チェックにおいて、`@raw_connection.nil?` の単純なチェックから `connected?` メソッドの使用に変更。PostgreSQLアダプターでは接続ステータス(`PG::CONNECTION_OK`)も含めた包括的な判定を行い、一度検出された不正な接続状態を記憶することで、不要な再試行を防ぐようになりました。
ActionControllerの複数のメソッドに明示的な`&block`パラメータを追加。実行時の動作は変わらないが、Sorbetなどの静的解析ツールとの互換性と可読性が向上。後方互換性は完全に維持されている。
bunの新しいテキストベースロックファイル形式 `bun.lock` に対応し、JavaScriptパッケージマネージャーの自動検出を改善。旧形式 `bun.lockb` との互換性も維持。
Railsジェネレータが、プロジェクトのロックファイル(bun.lockb、pnpm-lock.yaml、package-lock.json、yarn.lock)を検出して、適切なJavaScriptパッケージマネージャを自動選択するようになりました。これまでyarnがハードコードされていたため手動修正が必要でしたが、新しいJsPackageManagerモジュールにより、bun/pnpm/npm/yarnが自動判別されます。
Action Controllerのログ処理において、Structured Events導入により生じた内部パラメータのフィルタリング処理の重複を解消。LogSubscriberから冗長なロジックを削除し、StructuredEventSubscriberに一元化することで、コードの保守性とパフォーマンスを改善。
Minitest 6の`--bisect`オプションが動作しない問題を修正。プラグインがopt-in方式になったため、serverプラグインを明示的にロードするようにした。これにより順序依存のテスト不具合のデバッグが可能になった。
Ruby 4.1でstabby lambdaの`Proc#source_location`の`start_column`の振る舞いが変更され、`->`記号から位置情報が始まるようになったことに対応。Active Supportのテストアサーション機能で使用される`_callable_to_source_string`メソッドに、先頭の`->`を取り除く処理を追加し、`assert_difference`などのメソッドでlambdaを使用したコードが正常に動作するよう修正しました。
Ruby 4.1で変更されたProc#source_locationの挙動に対応。stabby lambda記法(->)がソースコード抽出時に残る問題を、正規表現による除去処理で解決し、Rails 8.0安定版にバックポート。
Ruby 4.1でstabby lambda(`->`)がProc#source_locationに含まれる仕様変更に対応。Railsのテストアサーションでラムダ式の本体のみを表示するよう、stabby lambda構文を除去する処理を追加しました。