rubocop-rails_deprecationをsevencopへ統合
rubocop-rails_deprecationを廃止し、既存のCopはsevencopで引き取ることにした。
rubocop-rails_deprecationは元々、Railsのバージョン変更作業をしている中で発生する定型的な変更作業をautocorrectorで実装したり、また過渡期にレガシーコードが新たに追加されるのを防ぐために用意したカスタムCopをまとめておくための場所としていた。実際、ここに置いていたCopを活用して色々なプロジェクトで便利に使えた。
これとは別に、自由で気楽なカスタムCopとしてsevencopというのを用意していて、便利に使える可能性のあるCopはここに突っ込んでいけば良いという気持ちで運用している。rubocop-rails_deprecationのように目的を限定するより、この運用方法のほうが良いCopが生まれる可能性が高くて、捗りやすい。
そういう訳で、自分の書く野良のCopはすべて統合した方がもっと楽に運用できそうだなと思って今回統合することにした。rubocop-rails_deprecationには、ToFormattedSとWhereNotという2つのCopだけがあり、前者は最近rubocop-railsに入ったし、後者はsevencopに同じものが移植されたので、どちらも移行パスが用意されている。
rubocop-rails_deprecationには、Railsのバージョンを見てよしなに適切なCopを有効化するという機能があるのだけど、実際のところRailsのバージョンアップ前に自前でbackportしてきた機能に対してCopを適用したいみたいな要求が発生することが多く、賢く有効化するより人間が有効化する方が運用的に楽だということが分かってきた。ので、この機能はsevencopからは外されている。sevencopは実験的なCopを多く含んでいる関係上、デフォルトでは全てのCopが無効化されているので、人間が好きなやつを選んで明示的に有効化する運用になっている。