DiffDaily Deep & Concise - OSS変更の定点観測
トップに戻る

rails/rails

https://github.com/rails/rails

`method`リーダーを持つオブジェクトでのrendering不具合を修正

`render_in`のアリティチェックで`@renderable.method(:render_in)`を呼び出す際、オブジェクト自身が`method`という名前のアクセサを定義していると正しく動作しない不具合を修正。`Kernel.instance_method(:method).bind_call`を使ってメソッド解決をバイパスすることで、名前衝突を回避しています。

2026年05月15日 Claude Sonnet 4.6

ImmutableなセンチネルオブジェクトとコレクションをRactor対応に向けてフリーズ

Rails全体でRactor対応を進めるため、センチネル値として使われる `Object.new` や、RuboCopの `Style/MutableConstant` Copでは検出できないSet・Hash・Arrayの演算結果定数に `.freeze` を追加したPRです。`JS_ESCAPE_MAP` のように定義後に要素追加していたHashはインライン化してフリーズし、`rubocop:disable` コメントも除去されています。前PR #57323 のリテラル定数フリーズに続く後続作業です。

2026年05月15日 Claude Sonnet 4.6

`pluck`でstrict_loading違反が検出されなかったバグを修正

`CollectionProxy#pluck`を呼び出した際にstrict_loading違反が検出されずN+1クエリがサイレントに実行されていたバグが修正されました。`pluck`メソッドの独自コードパスに違反チェックを追加するとともに、`violates_strict_loading?`をpublicメソッドに昇格させ、プリロード済みアソシエーションを正しく扱えるよう`find_target?`によるガードが追加されています。

2026年05月15日 Claude Sonnet 4.6

`ActiveModel::Conversion`にデフォルトの`#render_in`実装を追加

`ActiveModel::Conversion`モジュールに`#render_in`のデフォルト実装が追加されました。新しい実装は`to_partial_path`と`object: self`を組み合わせたパーシャルレンダリングをデフォルトとし、`locals:`やブロックなどの呼び出し元オプションを透過的に転送します。後方互換性を維持しながら、Active Model LintテストにもRender_inの要件が追加され、ViewComponentなどのビューシステムとの統合基盤が整備されました。

2026年05月13日 Claude Sonnet 4.6

`ActionText::Editor::Tag#render_in` のシグネチャ不整合を修正

`ActionText::Editor::Tag#render_in` のシグネチャが `render_in(view_context)` のままだったため、PR #50623 以降に Action View が渡す追加引数を受け取れず、`super` を呼び出すサブクラスで `ArgumentError` が発生していた問題を修正。シグネチャを `(view_context, ...)` に変更し、追加引数を透過的に受け流すことでアダプターパターンを実装するサードパーティ製エディターとの互換性を回復しています。

2026年05月13日 Claude Sonnet 4.6

SQLite3アダプターの `NATIVE_DATABASE_TYPES` からfreezeを解除

Style/MutableConstant copの有効化(#57323)により、SQLite3アダプターの `NATIVE_DATABASE_TYPES` が意図せずfreezeされ、`neighbor` など拡張gemが `FrozenError` でクラッシュする問題が発生していた。本PRはMySQL向けの修正(#57333)に倣い、`.freeze` を削除して `rubocop:disable` コメントを付与することで、拡張ポイントとしての可変性を明示的に維持する。

2026年05月13日 Claude Sonnet 4.6

`config.asset_host` がデフォルトで環境変数から読み込めるように

Railsの新規アプリケーションテンプレートで生成される `production.rb` において、`config.asset_host` がデフォルトで `ENV["CDN_HOST"]` を参照するように変更されました。環境変数が未設定の場合は `nil` となり既存の動作を維持するため、CDN設定をコードの変更なしに環境変数のみで完結させることが可能になります。

2026年05月13日 Claude Sonnet 4.6

`this_week?` に `start_day` 引数を追加し、`all_week` との一貫性を確保

`this_week?` にオプショナルな `start_day` 引数が追加され、`all_week`・`beginning_of_week`・`end_of_week` と同じインターフェースに統一されました。グローバルな `Date.beginning_of_week` 設定を変更せずに週の開始曜日を呼び出し単位で指定できるようになり、マルチテナントやi18n対応アプリケーションでのスレッドセーフな日付判定が可能になります。デフォルト値は従来通りのため完全な後方互換変更です。

2026年05月13日 Claude Sonnet 4.6

非トランザクションテスト後のフィクスチャキャッシュを適切にリセットする

非トランザクションテスト後にActiveRecord::FixtureSet.reset_cacheが呼ばれない問題を修正。`invalidate_already_loaded_fixtures`メソッドに2つのキャッシュ層のリセット処理を集約することで、テスト実行順序に依存したフィクスチャの不整合を解消しています。megatestによる完全ランダム実行環境で顕在化したバグへの対処です。

2026年05月12日 Claude Sonnet 4.6

`#render_in` にオプションとブロックを渡せるようにする

`#render_in` を実装したレンダラブルオブジェクトへのレンダリング呼び出しで、`locals` などのオプションとブロックが渡せるようになりました。レンダリングスタック全体への `&block` 伝播と `Renderable` クラスの改修が中心で、旧シグネチャ(引数1つ)は非推奨化され移行期間が設けられています。

2026年05月12日 Claude Sonnet 4.6

ArelテストをMinitest::SpecからActiveSupport::TestCaseへ移行

ArelのテストスイートがMinitest::SpecのDSLからActiveSupport::TestCaseベースの記法へ全面移行されました。`describe`/`it`によるSpec構文を`test`ブロックへ変換し、`must_be_like`を`assert_like`に置き換えることで、Rails独自のテスト実行基盤「megatest」へのArel統合を妨げていた最後のブロッカーが解消されます。

2026年05月12日 Claude Sonnet 4.6

`dependent: :purge` が期待通りにレコード削除時のファイルを完全削除するよう修正

Active Storage で `dependent: :purge` を指定した場合にレコード削除時に添付ファイルがデタッチされるだけで実際にはストレージから削除されていなかったバグを修正。`ActiveStorage::Attachment` の `after_destroy_commit` コールバックを拡張し、`:purge_later`・`:purge`・`:detach` の3オプションがすべて期待通りに動作するようになりました。

2026年05月12日 Claude Sonnet 4.6

ミュータブルな定数の拡張性をテストで保証する

Ractorセーフ化を目的とした定数フリーズ対応(#57323)の直後に、フレームワーク利用者が拡張することを想定した `Date::DATE_FORMATS` と `AbstractMysqlAdapter::NATIVE_DATABASE_TYPES` が誤って凍結される問題が発生。本PRはこれらの定数が変更可能であることをテストとして明文化し、将来の同種のリグレッションをCIレベルで検出できる安全網を構築します。

2026年05月11日 Claude Sonnet 4.6

MySQLアダプタの `NATIVE_DATABASE_TYPES` 定数のフリーズを無効化

Style/MutableConstant Copの有効化(#57323)により`NATIVE_DATABASE_TYPES`がフリーズされ、この定数を起動時に拡張するneighborなどのgemでFrozenErrorが発生するリグレッションが発生しました。本PRは`.freeze`を削除し`# rubocop:disable Style/MutableConstant`コメントを付与することで修正します。これはPostgreSQLアダプタと同一のアプローチであり、「Ractor安全性のための定数フリーズ」とフレームワーク拡張ポイントの維持を両立する設計判断です。

2026年05月11日 Claude Sonnet 4.6

Action Mailbox Mandrillインgressで署名ヘッダー欠落時にNoMethodErrorが発生する問題を修正

Action MailboxのMandrillインgressで、X-Mandrill-Signatureヘッダーが欠落したリクエストがNoMethodErrorを引き起こしていたバグを修正。`authenticated?`メソッドに`given_signature.present?`のガード節を追加し、署名欠落のリクエストも偽造署名と同様に401 Unauthorizedで拒否されるようになりました。

2026年05月10日 Claude Sonnet 4.6

`Date::DATE_FORMATS` の意図しない `freeze` を取り消す修正

`Date::DATE_FORMATS` に誤って適用されていた `.freeze` を除去し、カスタムフォーマットの追加が `FrozenError` で失敗する問題を修正しました。`Time::DATE_FORMATS` に倣い、`rubocop:disable Style/MutableConstant` コメントを付与して意図的にミュータブルな定数として維持しています。

2026年05月10日 Claude Sonnet 4.6

isolated テストタスクの廃止による CI シンプル化

Rails の全フレームワークから `test:isolated` タスクが削除されました。各テストファイルを独立プロセスで実行する isolated テストは実行コストが高い一方で検出効果が低いと判断され、CI 停止(buildkite-config 側)に続いてリポジトリのタスク定義ごと廃止されています。ルート Rakefile を含む12ファイルが変更され、デフォルトタスクも `test` のみに簡略化されました。

2026年05月10日 Claude Sonnet 4.6

`Style/MutableConstant` cop の有効化による Ractor 安全性への前進

Rails の Ractor 安全化に向け、`Style/MutableConstant` RuboCop cop が `EnforcedStyle: literals` で有効化されました。Array・Hash・String リテラルで定義された定数全体に `.freeze` が付与され、キャッシュや拡張ポイントとして意図的にミュータブルな定数は `rubocop:disable` コメントで明示的に除外されています。

2026年05月10日 Claude Sonnet 4.6

Active Recordテストの散発的失敗を修正する3つのバグ修正

megatestへの移行作業から切り出されたActive Recordのフレーキーテスト修正PR。非同期クエリ統計で`lock_wait`がnilの場合に算術エラーが発生する問題、`Car`モデルの`Person`依存宣言の欠落、テストファイルの`require`順序の3件を修正。依存関係の暗黙的な解決を明示的な宣言へと改めることで、テスト実行順序に依存しない堅牢な構成を実現しています。

2026年05月10日 Claude Sonnet 4.6

テストのポーリングループを `wait_for` ヘルパーに統一

ActiveRecordのテストに残っていた3箇所のアドホックなポーリングループを `wait_for` ヘルパーに置き換えました。上限なしのビジーウェイトによる無限ハングと、タイムアウト後もサイレントに続行するパターンを解消し、タイムアウト時に `Timeout::Error` が実際の失敗箇所で発生するよう統一しています。

2026年05月09日 Claude Sonnet 4.6
前へ 1 … 5 6 7 8 9 21 次へ

© 2026 DiffDaily - Powered by AI

タケユー・ウェブ