2025/09/25分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Don't generate system tests by default
railtiesの修正です。
scaffold generatorについて、デフォルトでsystem testを生成しないよう修正しています(明示的にオプションを指定した場合は引き続き生成されます)。system testはunit testやintegration testに比べると遅く、UIの変更に対して弱くメンテナンスが大変で、全ての機能でsystem testを生成する事は推奨しない、という方針になったため。いつsystem testを使うのが良いか、については、Testing Rails Applications — Ruby on Rails Guidesに記載が追加されています。
Make all framework log subscribers API private
Railsのframeworkが使用するlog subscriberのclassをprivate APIに変更しています。Rails内部でのみ使用するクラスである、かつ、breaking changeが頻繁に発生する可能性があるため。
rails guideのTesting Rails Applicationsの修正です。
Generating System Testsセクションのフォーマットが崩れていたのを修正しています。
Merge pull request #54666 from tnir/tn-eslint-9.21.0-with-flat-config
eslintを最新バージョンに更新、及び、configをv9で新しく入ったFlat Configを使用するよう修正しています。
Merge pull request #55409 from yokomaru/replace-link-for-CSRF-document
rails guideのSecuring Rails Applicationsの修正です。
404になっているリンク先を削除しています。
Merge pull request #55760 from Shopify/jk/klass-deprecators
activejob/lib/active_job/serializers.rbの修正です。
ActiveJob::Serializers::ObjectSerializerを継承したcustom serializerを使用している場合、そのserializerにklassメソッドが定義されていないとエラーになってしまっていたのを、klassメソッドを定義する必要がある旨deprecateメッセージが正しく表示されるよ修正しています。
Merge pull request #55753 from matthewd/no-loading-interlock
interlockの、"loading" protection用の機能をdeprecateに変更、及び、Rails内部で使用している箇所を削除しています。"loading" protectionはclassic autoloadingのために必要だった機能で、現在classic autoloadingは無く、不要になったため。ActiveSupport::Dependencies::Interlock#loadingや、ActiveSupport::Concurrency::LoadInterlockAwareMonitorがdeprecatedになっています。permit_concurrent_loadsはdeprecated無しでまだ使用出来るようになっていますが、何も処理は行わなようになっており、soft deprecatedという扱いになっています。
Merge pull request #55736 from byroot/ar-fast-checkin
Active Record、Active Supportの修正です。
Rails 7.2から、Active Recordのconnectionをrequest及びjobサイクル全体でpinしなくなった影響、connectionを使用した処理のパフォーマンスが多少劣化していました(毎回、checkoutとcheckinが発生する為)。そのためパフォーマンスの改善として、
- callbacksが指定されていない場合の
ActiveSupport::Callbacksの処理を高速化 preprocess_queryでwrite_query?を一度だけ呼ぶよう修正ActiveSupport::Notificationsで...delegationを使用してオブジェクト生成を減らすよう修正ActiveRecord::AbstractAdapterで通常の処理ではcallbackを使用しないよう修正
等の対応を行っています。
Mark group_listeners as private API
activesupport/lib/active_support/notifications/fanout.rbのdocの修正です。
内部用のgroup_listenersメソッドが、API docに表示されないよう修正しています。
Merge pull request #54547 from jeromedalbert/quiet-rails-commands
railties/lib/rails/generators/app_base.rbの修正です。
rails newに--quietオプションを指定した場合、importmapやstimulusのログが出力されてしまっていたのを、出力されないよう修正しています。
Remove cgi from the gemfile again
Gemfileの修正です。
cgi gemをGemfileから削除しています。rouge gemがcgi gemに依存している、かつ、rougeがcgiを依存に追加していなかった為Gemfileにcgiを追加していたのですが、依存関係に対応したrouge gemがリリースされ、不要になった為。