Ruby 3.0 に向けた Ruby 2.7 と Rails の状況がめまぐるしく変わっているようなので、現在持っている知識のスナップショットを書き残しておきます。
Rails 6.0 系と Ruby 2.7 系
昨日、Matz によって今後リリースされる Ruby 2.7.2 でキーワード引数の分離への警告出力が Ruby 本体側で取りやめになるだろう旨の投稿が Rails の Discuss フォーラムにありました。
これにより以下の組み合わせでは、キーワード引数の分離への警告が出なくなる見通しが考えられます。
というか警告が抑制される場合の Ruby 2.7.2 はジョーカーなので、Rails 6 系での Ruby 2.7 普及バージョンになる気がしています。
Rails 5.2 系と Ruby 2.7 系
さて、Ruby 2.7.2 でキーワード引数の分離への警告が出なくなったので、Rails 5.2 系ユーザーについても Ruby 2.7 に気兼ねなくアップグレードできるかというと、Ruby 2.7 で入った Monitor の非互換が Rails 5.2 系にはいまのところバックポートされていないようで、これがどのようなことを招くのかが (私は) よく分かっていません。
Active Supportで踏んでるmonitorの問題、修正自体は出来るんだけどRails以外も踏んでる(google-cloud-pubsub gemが踏んでた)ので、うーんという感じhttps://t.co/7KT9EKUccg
— y-yagi (@y_yagi) 2019年12月4日
public APIが明確になっていてくれると嬉しいんだけどなあ
いちおうこのことについては、勤務先の Idobata をとおして amatsuda 顧問に伝えたので、何かしらの動きがあるかもしれません。
既存の Rails 5.2 系ユーザーが取れる手順としては、Rails 6.0 にアップグレードしてから Ruby 2.7 系にアップグレードするというのが、現状のリスクを減らした移行手順になりそうです。
Rails 5.1 系以下
Rails 5.1 以下はすでにサポートされていないので、Rails 5.2 系以上にアップグレードしましょう。
(Ruby 2.7 系と Rails 5.2 系の組み合わせへの懸念については、yahonda さんに教えて頂きました。)