5
2

More than 1 year has passed since last update.

初めてのOSSコントリビュート(Ruby gem)

Last updated at Posted at 2022-08-28

はじめに

先日 (超軽微ですが、、)初めてOSSコントリビュートしました :tada:
意外とgemにPRを送るまでの詳細な手順をまとめている記事が見つけられなかったのでまとめたいと思います。

きっかけ

gem recapthcaの挙動を確認するためにコードを見ていると叩いているAPIのバージョンが古いことに気づきました。
OSSコントリビュートに興味があったのでこれならすぐ修正できる!と思いPRを送ることに。

PRを送るまでの流れ

ドキュメントを読んで、コントリビュート時の注意点を確認

Contributingについて記載がないか確認します。
例:Ruby

See "Contributing to Ruby", which includes setup and build instructions.

既にある issues, PRを確認する

クローズされたものも含め関連するキーワードで検索をかけてissues, PRに目を通し、議論中であったり既にPRが作成されていないか確認します。
解決できないエラーの報告、新しい機能やアイデアの提案であればまずはissueをオープン、明らかなバグなどで自分で解決できる場合はPRを送るために次に進みます。

リポジトリのフォーク、クローン

Forkボタンからリポジトリをフォーク(GitHub内でのリポジトリのコピー)
image.png

次にフォークしたリポジトリをローカルにクローンします

$ git clone {{git@github.com:yuh-pen/recaptcha.git}}

リモートリポジトリとして、オリジナルのリポジトリを upstream という名前で設定

$ git remote add upstream {{git@github.com:ambethia/recaptcha.git}}

Rubyのバージョンを合わせる

gemspec の required_ruby_versionを確認してrubyのバージョンを合わせます。

recaptcha.gemspec
  s.required_ruby_version = '>= 2.7.0'
$ rbenv local 3.0.1

rbenvの使い方はこちら

$ bundle install

bundle の --path について

最近はずっとdockerを使っていたのでローカルでrubyを動かすのが久しぶりだったのですが、そのまま bundle installしたら vendor/bundle にインストールされ gitignore されていなかったため差分ファイルがすごいことになりました :sweat_drops:
pathの設定は必要ないと思ったので以下で削除しました

$ bundle config --delete path

bundle install時に--path vendor/bundleを付ける必要性は本当にあるのか、もう一度よく考えてみよう

修正(テスト追加)

ブランチを切って修正し、必要があればテストも追加します。
テストを実行して全て通ればOK:star:

$ ruby test/*

PR作成

変更をpush

$ git push origin HEAD

以下のようにオリジナルのリポジトリに表示されているのでCompare & Pull reauestからPRを作成します
スクリーンショット 2022-08-28 18.49.30.png
表示されていない場合は New pull request から以下の compare across forks をクリックするとフォークしたリポジトリも選択できるようになります:ok_hand_tone1:
image.png

PRには関連するissueや関連するドキュメントのリンクを入れてできるだけわかりやすくします
(Closes #37.なども使う)

翻訳はDeepLが神!!これさえあれば怖くない!
同じリポジトリの他のPRなども参考にしてよしなにやりましょう:thumbsup_tone1:

果報を待つ

そのままマージされる場合もあれば、コメントで変更のリクエストをされる場合もあります。
必要であれば他の人に助けを求めるのもOKですが何かしらのリアクションはしましょう。

PRがマージされればあなたもOSSコントリビューターです :tada:

おわりに

こちらが私の初OSSコントリビュートです。軽微な修正だったこともあり翌朝にはマージされていてとてもうれしかったです!

あまり堅苦しいこと抜きに、個人的にはマージされるとテンション上がるのでOSSコントリビュートおすすめです
この記事がOSSコントリビュートの手助けになれれば幸いです!

参考

オープンソースガイドライン
初めて ruby の gem にコントリビュートのコミットをしてプルリクエスト作ってみた

5
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2