Ruby on Rails 6.1.5と5.2.7がリリースされました。
6.1.5は6.1.x系の最後のバグ修正リリースと銘打たれており、多くの修正が入っています。
5.2.7の修正は、Active SupportでのRuby 2.2再サポートとActive Storageの修正、合わせて2件のみです。
なお、7-0-stableは現時点でリリース準備はされていないようです↓。
- 7-0-stable: Commits · rails/rails
Rails 6.1.5 has been released This is the last bug fix release for Rails 6.1. https://t.co/6vfQhLRixA
— Ruby on Rails (@rails) March 10, 2022
Rails 5.2.7 has been released! https://t.co/oG6T6k8tQV
— Ruby on Rails (@rails) March 11, 2022
- リリース情報: Ruby on Rails — Rails 6.1.5 has been released
- リリース情報: Ruby on Rails — Rails 5.2.7 has been released
英語版Changelogをまとめて見るにはGItHubのリリースタグ↓が便利です。
- Release 6.1.5 · rails/rails(日本時間2022年3月11日6:23)
- Release 5.2.7 · rails/rails(日本時間2022年3月11日9:02)
詳しくは以下のコミットリストをご覧ください。
🔗 更新の概要(6.1.5)
🔗 Changelogに更新が記載されている機能
以下の機能はリリースノートの記載順です。
- Action Cable: rails/CHANGELOG.md at v6.1.5 · rails/rails
- Action Mailbox: rails/CHANGELOG.md at v6.1.5 · rails/rails
- Action Pack: rails/CHANGELOG.md at v6.1.5 · rails/rails
- Action Text: rails/CHANGELOG.md at v6.1.5 · rails/rails
- Action View: rails/CHANGELOG.md at v6.1.5 · rails/rails
- Active Model: rails/CHANGELOG.md at v6.1.5 · rails/rails
- Active Record: rails/CHANGELOG.md at v6.1.5 · rails/rails
- Active Storage: rails/CHANGELOG.md at v6.1.5 · rails/rails
- Active Support: rails/CHANGELOG.md at v6.1.5 · rails/rails
- Railties: rails/CHANGELOG.md at v6.1.5 · rails/rails
本記事では、6.1.5リリースタグに掲載されているChangelogに対応するプルリクやコミットへのリンクを取り急ぎ貼りました。
🔗 Active Support
- PR: fix: equivalent negative durations add to the same time by cpb · Pull Request #43795 · rails/rails
ActiveSupport::Duration.build
で負の値をサポートするよう修正。
ActiveSupport::Duration
のパーツをコレクションするアルゴリズムが値の符号を無視していたため、無効な値が蓄積されていた。これは、パーツが依存するActiveSupport::Duration#sum
には影響するが、値に依存するActiveSupport::Duration#eql?
には影響しない。
Caleb Buxton, Braden Staudacher
Time#change
およびこれを呼び出すメソッド(Time#advance
など)が、呼び出し側がタイムゾーン引数で初期化されていた場合に指定のタイムゾーン付きのTime
を返すように修正。
Alex Ghiculescu
タグ付きロガーで、
extend
されるLogger
メソッドのdup
をclone
に変更。
Orhan Toy
ActiveSupport::Testing::Assertions
をinclude
するとassert_changes
が動かなくなる問題を修正。
Pedro Medeiros
🔗 Active Model
- PR: clear secure password cache if password is set to
nil
by doits · Pull Request #43378 · rails/rails
パスワードが
nil
に設定されている場合にセキュアパスワードのキャッシュをクリアするようになった。
Markus Doits
# 修正前
user.password = 'something'
user.password = nil
user.password # => 'something'
# 修正後
user.password = 'something'
user.password = nil
user.password # => nil
ActiveModel::Type::Registry#lookup
とActiveModel::Type.lookup
の委譲を修正。
位置引数末尾に{}
を渡すとキーワード引数と誤認されることがあった。
Benoit Daloze
ActiveModel::Dirty
オブジェクトでchanges_applied
後のto_json
を修正。
Ryuta Kamizono
🔗 Active Record
Ruby 2.6での
ActiveRecord::ConnectionAdapters::SchemaCache#deep_deduplicate
を修正。
String#@-
の実装はRuby 2.6と2.7でわずかに異なる。
Ruby 2.6では、String#@-
のレシーバーが特定の状況で改変される。
これは後にバグとして認識され(#15926)、Ruby 2.7で修正された。
このコミットによる変更前は、Ruby 2.6でActiveRecord::ConnectionAdapters::SchemaCache#deep_deduplicate
が内部でString#@-
を呼び出し、入力文字列が改変される(ダーティかつfreezeしていない文字列が、ダーティかつfreezeされた文字列に変更される)。
Eric O'Hanlon
マイグレーションのバージョンが6.0の場合にSQLiteのreferences/belongs_toカラムをintegerとして作成するようマイグレーションの互換性を修正。
SQLiteアダプタで、バージョン6.0のマイグレーションのreference/belongs_toカラムがintegerではなくbigintとして作成されていた。
Marcelo Lauxen
- PR: Fix dbconsole for 3-tier config. by eileencodes · Pull Request #43921 · rails/rails
- 週刊Railsウォッチ20220112 3-tierコンフィグでの
rails dbconsole
の挙動を修正
- 週刊Railsウォッチ20220112 3-tierコンフィグでの
dbconsoleを3-tierコンフィグ向けに修正。
Eileen M. Uchitelle
- PR: Better handle SQL queries with invalid encoding by casperisfine · Pull Request #43829 · rails/rails
エンコーディングが不正なSQLクエリの扱いを改善。
Post.create(name: "broken \xC8 UTF-8")
上のコードはすべてのアダプタで、書き込みクエリの検出を担当するコードが制御不能な形で失敗する。
このクエリが適切にデータベースコネクションに渡されるようになったが、成功と失敗のどちらも正しく行われる(データベースが扱えるかどうかは別)。
Jean Boussier
- PR: Do not consolidate persisted in-memory records by kevinsjoberg · Pull Request #43517 · rails/rails
永続化したインメモリレコードを
merge_target_lists
で無視するように修正。
Kevin Sjöberg
has_many
throughリレーションのプリロードで追加条件が無視されるリグレッションバグを修正。
Alexander Pauly
config.active_record.record_timestamps = false
でActiveRecord::InternalMetadata
が壊れないよう修正。
モデルは常にタイムスタンプカラムを作成するのでタイムスタンプの設定が必要。そうしないと多くのDB管理タスクが壊れる。
Jean Boussier
inverse_of
によるActive Recordオブジェクトの重複を修正。
Justin Carvalho
has_many
関連付けでsave
後のオブジェクト重複を修正。
Alex Ghiculescu
CollectionAssocation#build
のパフォーマンスリグレッションを修正。
Alex Ghiculescu
MariaDBでtextカラムのデフォルト値に余分な引用符が含まれる問題を修正。
fatkodima
🔗 Action View
preload_link_tag
が、JPGやSVGなどの画像MIMEタイプを持つファイルの属性として適切に挿入するよう修正。
Nate Berkopec
生成されるすべてのhiddenフィールドに
autocomplete="off"
を追加するよう修正。
Ryan Baumann
- PR: Fix current_page? when URL has trailing slash by jonathanhefner · Pull Request #42854 · rails/rails
URL末尾にスラッシュがある場合の
current_page?
の挙動を修正。
指定のURL末尾にスラッシュがあり、絶対URLまたはクエリパラメータもある場合のcurrent_page?
ヘルパーの挙動を修正、
Jonathan Hefner
🔗 Action Pack
content_security_policy
が返す無効なディレクティブを修正。
配列を返すlambda呼び出しの結果がディレクティブになる場合、self
やunsafe-eval
などのディレクティブが一重引用符で囲まれていない。
content_security_policy do |policy|
policy.frame_ancestors lambda { [:self, "https://example.com"] }
end
この修正で、上で生成されるポリシーが有効なものになる。
Edouard Chin
config.consider_all_requests_local = true
の場合にのみHostAuthorization
ミドルウェアがデバッグ情報をレンダリングするよう修正。
また、ブロックされたホストの情報は常にerror
レベルでログ出力される。
Nikita Vyrko
converted_arrays
をconverted_arrays.dup
に修正。
Aaron Patterson
テストでパスが等しい場合に非推奨メッセージを表示しないよう修正。
Anton Rieder
無効なHTTPフォーマットで
ActionController::Instrumentation
がクラッシュする問題を修正。
Alex Ghiculescu
- PR: Add fallback host for SystemTestCase driven by RackTest by p8 · Pull Request #43273 · rails/rails
RackTest
で動くSystemTestCase
にフォールバックホストを追加。
Petrik de Heus
ホスト名で利用してよい文字をエラーメッセージに表示。
Alex Ghiculescu
🔗 Action Cable
Action Cableクライアントがチャネルのサブスクリプションに失敗しないよう修正。
クライアントは、サーバーがサブスクリプションを確認するかチャネルを破棄するまで、保留中のサブスクリプションセットを維持する。このプルリクは、unsubscribe送信直後に(同じチャネルidで)subscribeを送信するとAction Cableサーバーで順番どおりに処理されず、subscribeコマンドが無視されてしまう競合状態を修正する。
Daniel Spinosa
ブロードキャストのログメッセージを300文字までに切り詰めるよう修正。
J Smith
🔗 Active Storage
関連付けが定義されなくなった後で添付ファイルを削除可能にするよう修正。
Don Sisco
🔗 Action Mailbox
受信メールのconductor向けに、許可済みパラメータリストに添付ファイルを追加。
添付ファイルがある受信メールをconductorでテストしたときに、許可されていないパラメータという警告がデフォルトの設定で表示されないようにし、以下が設定されているアプリケーションでエラーにならないようにする。
config.action_controller.action_on_unpermitted_parameters = :raise
David Jones, Dana Henke
🔗 Action Text
- PR: Fix action text extra trix content wrapper by alexandreruban · Pull Request #43133 · rails/rails
Action Textの余分なtrixコンテンツラッパーを修正。
Alexandre Ruban
🔗 Railties
zeitwerk
モードでonce
オートローダーを最初にセットアップしてからmain
オートローダをセットアップするようにした。名前空間が共有される場合はこの順序の方がよい。
Xavier Noria
- PR: Handle paths with spaces when editing credentials by ghiculescu · Pull Request #42728 · rails/rails
credential編集時にスペースを含むパス(Windowsユーザー名)を扱えるよう修正。
Alex Ghiculescu
secret読み込み時にPsych 4をサポート。
Nat Morcos
🔗 Changelogに更新の記載がない機能
以下は6.1.5のChangelogに更新の記載がありません。
TechRachoではRubyやRailsの最新情報などの記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ)