初めてのPull RequestがMergeされた!
今日GitHubで初めてのPull Request(以下PR)がmergeされたので、mergeされるまでの一連の流れを書いてみようと思う。 showwinみたいな素人プログラマのPRでもmergeされることがあることを示して、だれでもOSS(オープンソースソフトウェア)の開発に貢献できるんだということを伝えたい。
『脱 PR童貞!!!』
1ヶ月前ぐらいに、「OSSの開発してみたいなぁ」って思って、PRの送り方とかネットで調べてみた。 コードを書いてPRを送ることももちろんひとつの貢献だし、普段使っているライブラリやソフトで不満に思っていることをissueとして投稿することもひとつの貢献方法らしい。
ぼくはコードを書いて、それを製品のなかに取り入れて欲しかったから、自分が開発できそうなプロジェクトをGitHubであちこち探した。
Railsで開発するときに、通知機能の部分でよく使っているtoastrでこんなissueを見つけた。
しかも、enhancementついてる。
中身を見てみると
上中央に表示される通知をみんな欲しがっているぞ!!!
(toastrには右上、右下、左上、左下、上Full-width、下Full-widthの6種類の通知場所しかなくて、みんな欲しいと言っているのは上中央に適度な大きさで表示される通知)
ちなみにぼくもこの上中央に表示される通知が欲しくて、なんとすでにその部分を自作して使っていた!
ownerも "feel free to open a PR." と言っていることだし、
オリジナルのプロジェクトから自分のレポジトリにforkして、
変更が必要な部分を自分のローカルtoastrからコピペして、上中央に通知を表示させるtoast-top-center
のpositionを作成した。
それで送ったのがこのPR
初めてのPRだから、ちょっと手間取ることもあるかもだけどよろしくって一応書いとく。
しっかり動くのを見せるために@uiureo氏が作ったGifzoを使って、Gif画像も載せておく。 (Gyazo GIFを使わずにGifzoを使ってるのは、個人的にはこっちの方が使い勝手が良いから。)
PR投稿してから、20日ぐらいずっと放置されていたんだけど、
ある人(Eagle3386)が、「おれのプロジェクトでtop-center
の機能が必要なんだよ!早くmergeしてくれ!」って3日前にコメントしてくれて、そこから管理人達も加わって、いろいろと話が進んでいった。
詳しくはPRのページを直接見てもらえればいいけど、 この後の流れとしては、
「top-center
作ったんだから一貫性保つためにbottom-center
も作ってね」
「toastr.cssだけじゃなくて、.lessと.scssと.min.cssのupdateも頼むね」
「今回作成した部分のUnit tests作ってくれる?」
って感じ。 それぞれぼくが対応して、最後にCollabolatorの人にfinal lookしてもらって、問題なかったので無事にmergeされた。
いきなり2200★StarぐらいついてるプロジェクトにPR送ってしまって、ちょっと怖かったけど、このファイルが足りないよとか丁寧に教えてくれたから、特に問題はなかった。 issueでも+1が連発されてたし、PRの中でも「この機能が欲しいんだ!」って言ってくれる人がいたので、今回この機能を自分が追加できたのは満足度が高い。
PRを送ったことがない人は、自分が貢献できそうなプロジェクトを探してPRを送ってみるといいと思う。