RuboCop 本体から Rails Cops が外される

次の RuboCop マイナーバージョンアップとなる 0.72 から Rails Cops が外されます。今後 Rails Cops を使う場合は Gemify された rubocop-rails gem を使うことになるため、昨日リリースされた RuboCop 0.71 から警告が出るようにしています。

github.com

また rubocop -R/--rails オプションも同じタイミングで削除します。

github.com

RuboCop 0.71 は移行期間としているため RuboCop の Rails Cops を使う場合は、以下のような設定を加えてください。

Gemfile に rubocop-rails gem を追加して bundle install する。

gem 'rubocop-rails'

.rubocop.yml に require: rubocop-rails を追加する。例えば以下のように足すことになります。

 inherit_from: .rubocop_todo.yml
 require:
+  - rubocop-rails
   - rubocop-rspec

 AllCops:
   Exclude:
     - 'vendor/**/*'
     - 'spec/fixtures/**/*'
     - 'tmp/**/*'
   TargetRubyVersion: 2.6

このように今後は RuboCop Performance や RuboCop RSpec と同様の使い方になります。

rubocop-rails gem についての詳細は https://github.com/rubocop-hq/rubocop-rails を参照してください。

RuboCop 本体と rubocop-rails gem 両方に実装がある場合、rubocop-rails gem の実装が方が優先される動きになります。

Rails Cops が外されることについての移行スケジュールは以下です。

  • RuboCop 0.71 ... RuboCop のインストール時、ならびに rubocop -R/--rails オプションを使った時に警告が表示します
  • RuboCop 0.72 ... RuboCop Core から Rails Cops を削除します