Skip to content

Instantly share code, notes, and snippets.

@willnet
Last active August 21, 2023 05:44
Show Gist options
  • Star 43 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save willnet/ca970b2033846fe3e30a8696eb39fbd5 to your computer and use it in GitHub Desktop.
Save willnet/ca970b2033846fe3e30a8696eb39fbd5 to your computer and use it in GitHub Desktop.
Railsコントリビュータへの道

これはなに

  • Railsにプルリクストを送るときに知っておくと便利なお作法集
  • Railsにプルリクエストを送りたいけど何から始めたらいいのかわからない人向けの指針

お作法についてはRuby on Rails に貢献する方法 | Rails ガイドを参考にしています。

前提知識

Railsのコードを読むには、最低限次の二つの知識があったほうがよいです

テスト環境

  • rails 自体のテストは rails-dev-box にある vagrant 環境越しにやります
  • 基本的に各ライブラリ(例: activerecord)のディレクトリで rake test して実行します。全体は時間かかりすぎる><

rails で単体のテストファイルを実行する方法

bundle exec ruby -w -Itest:lib テストファイル名

ex)
bundle exec ruby -w -Itest:lib test/core_ext/hash_ext_test.rb

単体ファイルの特定のテストを実行する方法

bundle exec ruby -w -Itest:lib テストファイル名 -n テスト名

ex)
bundle exec ruby -w -Itest:lib test/core_ext/hash_ext_test.rb -n test_transform_keys

Issue のお作法

  • Issue にテンプレートがあるのでそれを埋めましょう
  • 再現コードのひな形あるのでそれを参考に動く再現手順を作りましょう
  • 他の人が作ったIssueに再現手順がなかったら、つくってあげると喜ばれるかも

PR のお作法

  • ドキュメントやコメントの typo 修正は、コミットに [ci skip] を必ずつけること
  • PRのテンプレートがあるのでなるべく埋めましょう
  • コミットはなるべく一つにまとめましょう
    • PRした後に指摘来たらsquashせずにコミットを追加
    • マージする段階になったらsquashしてねと言われるはず
  • バグ修正以外のPRは、「このPRが入るとなにが良くなるのか」をなるべく具体的に書きましょう
    • ここが明確でないPRは放置されたりcloseされたりしがち

PR するためになにをすると良いか

  • edge Rails をなるべく毎日さわる。
    • 新機能が追加されたら一通り使ってみるとバグに気づきやすい
  • TODO:FIXME: で検索する
  • DHH が立てた Issue をウォッチする
  • コミットを読む
  • コードを読む
    • 最初は ActiveSupport が読みやすいのでオススメ
  • マージされると Rails Contributors に自分の名前が載るので見てニヤニヤしましょう

便利なサービス

登録したOSSのPRやIssueを毎日メールで通知してくれる

CodeTriage

その他

@willnet
Copy link
Author

willnet commented Jun 16, 2016

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment