以下の内容はhttps://ksss9.hatenablog.com/entry/2025/01/20/103332より取得しました。


RuboCop on RBS on gem_rbs_collection

gem_rbs_collectionでもrubocop-on-rbsを使っていただけることになり、導入したので紹介します。

gem_rbs_collectionへPR送る方へ

RBSを修正してPRを送るとCIから指摘を受けることがあります。

GitHub上でRBSに対してRuboCopが指摘を出している例

rubocop-on-rbsのドキュメントを見ればルールの説明が書かれています。

rubocop-on-rbs/docs/modules/ROOT/pages/cops.adoc at main · ksss/rubocop-on-rbs · GitHub

通常のRuboCopと同じく、ルールに従って修正していただければ大丈夫です。

PRを送る前に、手元でbundle exec rubocopとコマンドを実行すれば事前にチェックすることもできます。 自分で機械的なレビューができて便利ですね。

gem_rbs_collectionのgemレビュワーの方へ

gem_rbs_collectionでは各gem毎にレビュワーとして名乗り出ることが可能になっており、PRが送られるとgemのレビュワーにメンションが飛ぶ仕組みになっています。

この仕組みはpockeさんのRubyKaigi 2024の発表で詳しく紹介されています。 https://rubykaigi.org/2024/presentations/p_ck_.html

.rubocop.ymlの設定もこの仕組みに則っており、各gem毎にレビュワーが設定できるようになっています。

導入方法はgems/#{gem_name}/.rubocop.ymlを設定するだけです。すでにactivesupportなどの、PRが多く来るgemに導入しているので、大抵の場合はコピペすればいいと思います。

ルールにこだわりがあれば細かく.rubocop.ymlを設定する感じです。

ルールの大まかな説明

  • RBS/Layout
    • インデントやスペース系です。
    • おすすめ
  • RBS/Lint
    • 過剰なpublic()のつけすぎ、他のgemに影響がある書き方など、直した方が良さそうなルールです。
    • おすすめ
  • RBS/Style
    • "true | falseと書くならboolと書いた方がいいよ"など、一歩踏み込んだルールたち。
    • 基本的にはおすすめ。人によってはやりすぎと感じる人もいるかも

rubocop-on-rbsruby/rbsリポジトリにも導入されており、多くのルールでコミッター陣にもレビューしていただいているので、RBSデファクトスタンダードなフォーマットと言っても差し支えないのではないでしょうか……!




以上の内容はhttps://ksss9.hatenablog.com/entry/2025/01/20/103332より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14