2023/02/23分のコミットです。
CHANGELOGへの追加はありませんでした。
Merge pull request #47431 from skipkayhil/make-shared-three-tier-aware
railties/lib/rails/application/configuration.rb
の修正です。
database.yml
のshared
sectionで3層の値を設定した場合エラーになっていたのを、3層の値の共有まで行えるよう修正しています。
shared: one: migrations_path: "db/one" two: migrations_path: "db/two" development: one: adapter: sqlite3 two: adapter: sqlite3 production: one: adapter: mysql2 two: adapter: mysql2
上記のような設定があった場合に、one
/two
それぞれにshared
セクションのmigrations_path
が反映されるようになっています。
Merge pull request #47454 from gmcgibbon/original_fullpath_in_controller_tests
actionpack/lib/action_controller/test_case.rb
の修正です。
controller testでORIGINAL_FULLPATH
headerを設定するよう修正しています。use filtered_path in action_controller event payloads instead of fullpathの対応の影響で、テストで元々のfull pathを取得する方法が無くなってしまい、再度full pathを取得出来るようにする為。
Do not install node directly in /usr/local
railties/lib/rails/generators/rails/app/templates/Dockerfile.tt
の修正です。
node-buildのインストール先を/usr/local
から/usr/local/node
に変更しています。node-buildはインストール処理時にディレクトリをクリーンアップしてしまい、/usr/local
だとnodeと関係ないファイルまで削除されてしまう為。
activerecord/test/cases/serialized_attribute_test.rb
の修正です。
テスト実行時に不要なmigrationの出力が出ないようActiveRecord::Migration.verbose
にfalseを設定するよう修正しています。
Dockerfile: give precedence to the node installed via node-build
railties/lib/rails/generators/rails/app/templates/Dockerfile.tt
の修正です。
node-buildでインストールしたnodeが最初にロードされるようpathの設定を変更しています。node-buildでインストールしたのは違うnode-gyp
がインストールされている場合に、古いそちらが実行されてしまうのを避ける為。
Allow to define the default column serializer
Active Recordの修正です。
columnのserializeに使われるserializerのデフォルトがYAML serializer固定だったのを、任意のserializerを指定出来るよう修正しています。YAMLは性能とセキュリティ両方に問題がある為との事。デフォルトのserializerを変更したい場合、config.active_record.default_column_serializer
に値を指定すれば良いようになっています。合わせて、serialize
メソッドにclass及びcoderをpositional argumentとして渡すのをdeprecatedにしています。今後は、どちらもキーワード引数(type
とcoder
)で指定する必要があります。
[Tests only] Add coverage for preloading composite has_many through associations
activerecord/test/cases/associations/eager_test.rb
、
activerecord/test/cases/associations_test.rb
の修正です。
composite query_constraintsが指定されているhas_many through associationをpreloadした場合に正しくロード出来る事を確認するテストを追加しています。
Fix a couple typos and revise sentence on new column serializer docs
activerecord/lib/active_record/attribute_methods/serialization.rb
のdoc、及び、rails guideのConfiguring Rails Applications
の修正です。
doc内のタイポ、及び、言い回しの修正を行っています。
Improve wording on eager_load
and preload
AR docs [ci skip]
activerecord/lib/active_record/relation/query_methods.rb
のdocの修正です。
eager_load
及びpreload
のdoc内の言い回しの修正を行っています。
Clarify paragraph pointing to MDN docs on script async/defer
actionview/lib/action_view/helpers/asset_tag_helper.rb
のdocの修正です。
javascript_include_tag
メソッドのdoc内、defer
、及び、async
オプションについて説明している箇所の言い回しを修正しています。
Fix parsing ruby version for Dockerfile packages
railties/lib/rails/generators/app_base.rb
の修正です。
Dockerfileで使用するpackageを定める際のRubyのバージョンチェック処理が正しく行われてなかったのを修正しています。
Dir.glob result must be sorted
rails guideのGetting Started with Engines
の修正です。
Overriding Models and Controllers
の項にあるoverrideするファイルの取得処理のexampleで、Dir.glob
で取得したファイルをsort
してからload
するよう修正しています。Ruby 2.7までだとDir.glob
の結果はsortされておらず、ファイルのload
の順番が不定になってしまう為。
Fix deprecation warnings emitted by serialized
activerecord/test/cases/serialized_attribute_test.rb
の修正です。
Allow to define the default column serializer でdeprecateになったserialize
メソッドのpositional argumentを使用している箇所が残っていたのを修正しています。
Sort the results of Dir.glob [ci skip]
rails guideのClassic to Zeitwerk HOWTO
の修正です。
Dir.glob result must be sortedと同様に、Dir.glob
で取得したファイルをsort
してから処理を行うよう修正しています。
Remove Copyright years (#47467)
Copyrightから年の表記を削除しています。特に必要な情報でもなく、毎年更新するのが手間な為。
Avoid "comparison of Gem::Version..." error in Ruby < 3.1
activerecord/lib/active_record/coders/yaml_column.rb
の修正です。
Gem::Version
とStringを比較していた箇所があったのを、Gem::Version
同士の比較処理を行うよう修正しています。Gem::Version
とStringの比較処理は古いrubygemだとエラーになる為。
Merge pull request #47468 from skipkayhil/only-require-irb-when-unconfigured
railties/lib/rails/commands/console/console_command.rb
の修正です。
ファイルの先頭で行っていたirb
のrequire処理を、実際に使用する際にrequireするよう修正しています。console gemにはirb
以外のgemも使え(e.g. pry
)、そういう場合にはirb
のロードは不要な為。