【不定期配信】最新のRuby & Railsへのバージョンアップ時の注意点 (~ 2021-10-10)
Ruby の最新情報は nagachikaさん (@nagachika) / Twitter が ruby trunk changes 、Rails の最新情報は TechRacho|BPS株式会社のRuby on Rails開発情報サイト が 週刊Railsウォッチの記事一覧|TechRacho by BPS株式会社 で公開してくださっています。両記事ともに大変有益な情報です。ありがたいことです。
本記事ではそれらの情報を元に、Ruby と Rails を安定して使い続けるために Ruby と Rails の変更点がバージョンアップするときに問題になるかどうかという観点で情報をまとめています。
Google広告
Ruby
ruby-trunk-changes 2021-10-10 - ruby trunk changes
標準添付ライブラリ reline のバージョンを 0.2.8.pre.11 に更新しています。
0.2.8.pre.10から0.2.8.pre.11になっている。
変更点は https://github.com/ruby/reline/compare/v0.2.8.pre.10…v0.2.8.pre.11 から確認できます。
- 影響が少なそうなので変更点はチェックしていません。
irb のバージョンを 1.3.8.pre.11 に更新しています。
1.3.8.pre.10から1.3.8.pre.11になっている。
変更点は https://github.com/ruby/irb/compare/v1.3.8.pre.10…v1.3.8.pre.11 から確認できます。
- 影響が少なそうなので変更点はチェックしていません。
gems/bundled_gems の net-smtp のバージョンを 0.2.2 に更新しています。
0.2.1から0.2.2になっている。
変更点は https://github.com/ruby/net-smtp/compare/v0.2.1…v0.2.2 から確認できます。
- 【仕様変更?】Net::SMTP.start() and #start() accepts ssl_context_params keyword arg… · ruby/net-smtp@4213389
- これが主な変更点かもしれない。startは引数を追加だけだが、
SMTP.default_ssl_context
は引数の扱いが変わっている。仕様変更かもしれないが、OpenSSL::SSL::SSLContext#set_params
に true を渡したときの挙動次第。Net::SMTPを使っていないため、調査はここまで。
- これが主な変更点かもしれない。startは引数を追加だけだが、
- Add response to SMTPError exceptions · ruby/net-smtp@16be09a
- SMTPサーバーからのレスポンスを返すSMTPError#responseを追加。
Rails
参考情報: 2021-10-04 ~ 2021-10-10にRailsにマージされたPR
週刊Railsウォッチ: Rails 7でbyebugがruby/debugに変更、GitHub Codespacesをサポートほか(20211004前編)|TechRacho by BPS株式会社
デフォルトが ruby/debug になるだけなので、既存のRailsアプリへの影響はない。なお、debug gemはruby 2.6以降で使えるようです。
これは便利そう。詳しくは↑の記事をみてください。
【仕様変更】 Generate less initializers in new/upgraded Rails apps by ghiculescu · Pull Request #42538 · rails/rails を読んだところ、 cookie のマーシャルのデフォルトが変わったので、既存のアプリケーションの設定変更が必要かもしれない。アップグレードに関する説明が追記されている。
# If you're upgrading and haven't set `cookies_serializer` previously, your cookie serializer
# was `:marshal`. Continue to use that for backward-compatibility with old cookies.
# If you have configured the serializer elsewhere, you can remove this.
#
# To convert all cookies to JSON, use the `:hybrid` formatter.
# If you're confident all your cookies are JSON formatted, you can switch to the `:json` formatter.
#
# See https://guides.rubyonrails.org/action_controller_overview.html#cookies for more information.
# Rails.application.config.action_dispatch.cookies_serializer = :marshal
https://github.com/rails/rails/pull/43227/files より
【仕様変更】もしCSPの設定を行っている場合は、設定が追加されたり、設定方法が少し変わったりしているので、変更点を確認したほうがいい。
週刊Railsウォッチ: ruby/debug 1.2.0リリース、Railsにはthorが入っている、tendejitほか(20211006後編)|TechRacho by BPS株式会社
Rails以外の記事だったので省略。