なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2024/02/15)

2024/02/15分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

actionpack/CHANGELOG.md

activerecord/CHANGELOG.md

railties/CHANGELOG.md


Allow .test by default in development (#51087)

actionpack/lib/action_dispatch/middleware/host_authorization.rbの修正です。

development envのデフォルトのallowed hostに.testドメインを追加しています。puma/puma-devがデフォルトで.testドメインを使用するようになっており、設定の追加無しで使用出来るようにするため。


Add missing super in prune_thread_cache method

activerecord/lib/active_record/connection_adapters/abstract/query_cache.rbの修正です。

prune_thread_cachesuperの呼び出しが不足していたのを修正しています。


Use ruby file: ".ruby-version" for new apps

railtiesの修正です。

rails newで新規にアプリケーションを作成した際に、GemfileRubyのバージョンを指定するのに.ruby-version(ruby file: ".ruby-version")を使用するよう修正しています。Gemfile.ruby-versionそれぞれで同じバージョンを指定するのを避けるようにするため。が、後ほどRevertされています。


Merge pull request #51084 from anonychun/dont-override-ld-preload

railties/lib/rails/generators/rails/app/templates/docker-entrypoint.ttの修正です。

docker-entrypointLD_PRELOADがすでに設定されている場合、jemalloc用のLD_PRELOADで既存の設定を上書きしないよう修正しています。


[RF DOCS] Review Action Mailbox guide [ci-skip] (#50973)

rails guideのAction Mailbox Basicsの修正です。

guide全体について、フォーマットや言い回しの修正、configの説明の追加等を行っています。


[RF DOCS] Review Action Text guide [ci-skip] (#50977)

rails guideのAction Text Overviewの修正です。

guide全体について、フォーマットや言い回しの修正、exampleコードの追加等を行っています。


Better flow for puma.rb

railties/lib/rails/generators/rails/app/templates/config/puma.rb.ttの修正です。

条件分岐処理の整理、コメントの追加などを行っています。


Merge pull request #51064 from mkasberg/debugging-guide

rails guideのDebugging Rails Applicationsの修正です。

Breakpoint Optionsセクションのタイポの修正を行っています。


Remove extra new line in the generated Gemfile

railties/lib/rails/generators/rails/app/templates/Gemfile.ttの修正です。

rails newで生成されるGemfileから不要な空行を削除しています。


Revert "Merge pull request #49360 from skipkayhil/hm-gemfile-ruby-file"

GemfileRubyのバージョンを指定するのに.ruby-version(ruby file: ".ruby-version")を使用するよう修正した、Use ruby file: ".ruby-version" for new appsをRevertしています。

この変更を適応した場合、bundleを実行するにはパッチバージョンまで正確に一致したRubyがインストールされている必要があるのですがdevcontainerではパッチバージョンまで一致したRubyのimageが提供されておらず、devcontainer環境で使用しようするとエラーになる、という問題が発生したためRevertされています。パッチバージョンを指定出来る独自のRuby imageの作成を行ってから、再度適用予定との事です。


Merge pull request #51055 from zzak/preview_docs

API doc 及び Guideのpreview用のHTMLを生成するためのrake taskを追加しています。buildkiteでpreview用のHTMLを生成し、PRの段階で変更を確認出来るようにするため。


Merge pull request #51034 from rails/rm-schema-cache-loading

Active Recordの修正です。

schema cache dumpをeager loadする為のinitializerを削除しています。Refactor Active Record Schema Cache to not hold a connectionの対応により、define_attribute_methodsのinitializerの中でeager loadされるようになっている為、合わせて、schema cacheのpathを指定する為のENV["SCHEMA_CACHE"]をdeprecatedにしています。今後は、configファイルの:schema_cache_pathに指定する必要があります。


Merge pull request #50914 from andrewn617/devcontainer

railtiesの修正です。

rails newで新規にアプリを作成時にDevcontainer用の設定を作成するよう修正しています。containerには、RDBMS、Redis、Headless chrome等テストや開発のために必要なcontainerが一通り含まれるようになっています。

合わせて、System Testで使用するアプリケーションサーバを変更するためのserved_byメソッドを追加しています。Devcontainerで実行しているアプリケーションを指定出来るようにする為。

class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
  served_by host: "testserver", port: 45678
end

Merge pull request #49655 from Shopify/fix-cpk-update-all-with-join-subquery

Active Recordの修正です。

composite primary keysを使用しているmodelをjoinしてupdate_all/delete_allを実行した場合に、誤ったSQLが生成されてしまうバグがあったのを修正しています。


Add autoload for ActionController::TestRequest

actionpack/lib/action_controller.rbの修正です。

ActionController::TestRequestをautoloadの対象に追加しています。ActionController::TestCaseに依存していない処理でも使用している為。


Use consistent ENV.fetch style

railties/lib/rails/generators/rails/app/templates/config/puma.rb.ttの修正です。

ENV.fetchでデフォルト値を指定する場合のスタイルを統一しています。


Merge pull request #51016 from javierav/optimistic-locking-doc

activerecord/lib/active_record/locking/optimistic.rbのdocの修正です。

ActiveRecord::Locking::Optimistic moduleのdocに、lock_version columnはintegerである必要がある旨説明を追加しています。


Style

railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.ttrailties/lib/rails/generators/rails/app/templates/config/environments/test.rb.ttの修正です。

configの値を指定する際のフォーマットの修正を行っています。


Merge pull request #51093 from seanpdoyle/action-view-rendered-memoization

actionview/lib/action_view/test_case.rbの修正です。

ActionView::TestCase内のrenderedのメモ化処理を削除しています。テストでviewのrender処理を複数回呼び出した際に、呼び出し毎に正しい結果が得られるようにする為。


ActiveRecord::TestCase: reap all leaked connection on teardown

activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rbactiverecord/test/cases/test_case.rbの修正です。

ActiveRecord::TestCaseのteardown処理で、全てのleaked connectionのreap処理を行うよう修正しています。他のテストでconnectionのclear処理を行った場合に影響が出ないようにする為。


Refactor SchemaCache to hold a ConnectionPool

Active Recordの修正です。

SchemaCacheConnectionPoolを保持するようリファクタリングしています。 Decouple transactional fixtures and active connectionsなどと同様に、PoC: Add an option to disable connection checkout cachingに関連したリファクタリングの一環です。全てのconnectionがBoundSchemaReflectionを保持するよりも、BoundSchemaReflection経由でconnectionを取得出来た方が効率が良いだろう、という事で修正されたようです。