Rails の issue を解決するまでの手順とOSS初心者でもできること (original) (raw)

この広告は、90日以上更新していないブログに表示しています。

突然ですが、あなたはRailsのissueとプルリクがいくつあるかご存知でしょうか?

2019年10月17日現在、それぞれ issue 384 / PR 803 になります。

f:id:sinsoku:20191017000221p:plain

多いですよね...。

個人的に、最近このissueを減らすのを少しでも手伝えないものかとissueにコメントしてみたり、パッチを書いたりしてるけど、 なかなか大変なので、コントリビューターの敷居を下げるためにブログ記事を書いてみました。

コントリビュータが増えれば、きっとissueも減るはず!!

Railsガイドに丁寧な説明が記載されているので、読んだ事がない方は一読するのをオススメします。

railsguides.jp

この記事で紹介すること

Rails への貢献方法は色々なものがあります。

このなかのうち バグの修正 に絞って紹介します。

バグ修正を行うときの手順

  1. 報告されたissueを読んで、問題を手元で再現させる
  2. 原因を突き止める
  3. コードを直す
  4. 動作確認をする
  5. プルリクを投げる

こんな感じでしょうか。 まぁ、仕事でバグを直すときと同じですね。

1. 問題を再現する

Rails の issue には問題を再現させるためのバグテンプレートが存在します。

2. 原因を調べる

問題が再現できたら、原因であるコードを調べます。

3. コードを直す

問題を再現させるテストコードを書いて、テストが失敗することを確認してから、コードを直します。 (例: rails/rails#37457) 他のテストコードを参考にすれば、意外とテストは書けます。

あと、Rails では minitest が使われているので、普段 RSpec を使っている人はテストの実行方法が分からないかも。

などを参考にしてみてください。

4. 動作確認

ローカルで適当にRailsアプリを作り、修正した Rails のコードを使うように Gemfile を直します。

pathディレクトリを指定すると、そのディレクトリの gem を使えます。

あとは rails consolerails server などで動作確認をします。

5. プルリクを投げる

コミットログとプルリクに変更理由をちゃんと書く必要があります。

英語で変更理由を書くのはとても大変なので、いくつか英文を書くテクニックを紹介します。

Rails のコミットログやプルリクには参考になる英文がたくさんあるので、うまく探してパクってください。

変更内容に自信がなかったり、不安な場合

都内に住んでいる方であれば、Asakusa.rb や永和さんのOSSパッチ会などに参加して、プルリクの内容について相談するという方法があります。

OSS初心者向け

ここまでで issue を解決する方法を紹介しましたが、「ハードルが高い」と思った人向けにいくつか初心者向けにできることを紹介します。

  1. https://github.com/rails/rails/issues の中から、興味のあるタイトルを読んでみる
    • issue を全部読むのは大変なので、例えば ActiveRecord や ActiveStorage など絞って読むと良い
  2. 自分の環境で問題を再現させてみる
    • 例えば、5.2 で起きる issue を「6.0 でも再現しました」とコメントするのも大事
    • 再現スクリプトのないissueに「この再現スクリプトで再現できました」とコメントするのも良い
  3. Close した issue とプルリクを読んで、コードの直し方を学ぶ
    • 問題と解答例みたいなものなので、読むだけでも勉強になります

最後に Rails Contributors の紹介

Railsで1回でもプルリクがマージされると Rails Contributors に名前が載ります。

contributors.rubyonrails.org

まだランキングに名前が載っていない方は、これに載ることを目標に Rails の issue を眺めてみてはどうでしょう?

意外と簡単に直せるバグが見つかるかもしれませんよ。

*1:過去のバージョンでは動いていて、最新のバージョンでバグっているケース