@ledsun blog

Hのキーがhellで、Sのキーがslaveだ、と彼は思った。そしてYのキーがyouだ。

thorのワーニング

現象

あるRailsアプリケーションのRailsのバージョンを6.1.5にアップグレードしたところ、rails consoleを実行すると次のようなthor gemのワーニングがでるようになりました。

ledsun@MSI:~/pubannotation►bin/rails c
Deprecation warning: Expected string default value for '--quiet'; got false (boolean).
This will be rejected in the future unless you explicitly pass the options `check_default_type: false` or call `allow_incompatible_default_type!` in your code
You can silence deprecations warning by setting the environment variable THOR_SILENCE_DEPRECATION.
Deprecation warning: Expected string default value for '--syslog'; got false (boolean).
This will be rejected in the future unless you explicitly pass the options `check_default_type: false` or call `allow_incompatible_default_type!` in your code
You can silence deprecations warning by setting the environment variable THOR_SILENCE_DEPRECATION.
Deprecation warning: Expected string default value for '--logfile'; got true (boolean).
This will be rejected in the future unless you explicitly pass the options `check_default_type: false` or call `allow_incompatible_default_type!` in your code
You can silence deprecations warning by setting the environment variable THOR_SILENCE_DEPRECATION.
Loading development environment (Rails 7.0.3)

原因

原因は以下の3つです。

  1. thor 1.0から上記のワーニングをだすようになった*1
  2. railties 6.1からthor 1.0以上を要求*2
  3. backup gemのthorの使い方が上記のワーニングに該当*3

つまりbackup gemを使ったRails アプリケーションを6.1.5にアップグレードすると上記のワーニングが表示されるようになります。

backup gemはFix CLI option types · backup/backup@16f1f0a · GitHubで対応していそうです。 おそらく5.0.0.beta.3を使えば上記のワーニングはでなくなると思います。 試す前にbackup gemが不要なことに気がついて削除しました。 確かめていません。

再現手順

gem install rails
rails new .
bundle add backup
bin/rails c