公開日

RuboCopチームにgemの名前を譲った話

(image)RuboCopチームにgemの名前を譲った話

かねてより僕が開発していたrubocop-railsというgemをRuboCop公式チームの要望により譲った。

僕がこのgemを作った経緯とかは下記の記事の通り。

きっかけ

名前を譲ることになったきっかけは下記のIssue。

Extract Rails Cops in a separate · Issue #5976 · rubocop-hq/rubocop

より正確にいうとこのIssueの前にRubyKaigi 2018の懇親会でRuboCop作者から僕へ間接的に打診があり、上記のIssueに至る。

RuboCopチームの要望を要約すると「RuboCop公式にRailsの拡張を作りたい。gem名はrubocop-railsとしたい。名前を頂戴!」と感じ。僕の想いとしては「RuboCop公式チームとして使いたい名前ということであればどうぞどうぞ。わかりやすい名前を付けることはRubyコミュニティ全体の利益にもなるだろうしね!」という感じ。

譲るにあたりやったこと

下記のようなIssueを作成して進めていった。

[IMPORTANT ANNOUNCEMENT] Transfer rubocop-rails gem to RuboCop Team · Issue #31 · toshimaru/rubocop-rails

  • rubocop-rails に代わる新しいgemを作成: rubocop-rails_config
  • rubocop-rails の新しいversionを切って、post_install_messageでRenameの旨を周知
  • rubocop-rails_config のほうに簡単にUpdateできるようなUpdate Generator Taskを用意
  • rubocop-rails というgemに新しいOwnerを付与
  • rubocop-rails のRename前の古いバージョンをrubygemsから削除

一番最後の 古いバージョンをrubygemsから削除 はIssueでもやり取りしている通り、既存のビルドを壊すことになるので正直苦渋の決断であった。だけれどもRuboCopがdevelopment依存のgemであること、全く違うgemになったら既存のgemユーザーを驚かせてしまうこと、これらを総合的に考えた結果、古いバージョンを消してでもgemのRename周知を優先させようと思い至った。これに関しては正直正解はないと思う。

RuboCopコミッターのkoicさんが発表してくださいました

本件に関してはRuboCopコミッターの@koicさんも先日のRails Developers Meetup 2018 Day 3 Extremeにて発表して頂いたようです。:innocent:

発表エントリ: Rails Developers Meetup 2018 Day 3 Extreme に登壇した - koicの日記

エピソードのご紹介ありがとうございました。:pray:

参考資料

なお、gemを消す方法に関しては下記を参考にさせてもらった。

公開した gem を削除する方法 - ヽ( ・∀・)ノくまくまー - s21g