Hatena::ブログ(Diary)

M_Ishikawa Twitter

2013/12/18 (Wed) 自分が公開しているOSSにPullRequestが来たときに起こったことすべて

自分が公開しているOSSにPullRequestが来たときに起こったことすべて


ここのところなにかといえばGruntのことばかりでGREE Advent CalendarでもネタGruntプラグイン作って晒してみたりして遊んでます。

そんなところ、自分で作って仕事でも使っていて公開しているGruntプラグイン grunt-md5filename に突然PullRequestが来たんです!!!
それはそれはもう感動で胸がいっぱいになりました。自分の作ったのを使ってくれている誰かがいる、それだけでも十分幸せなことなのに開発に参加してくれるという、この上ない喜びを味わせていただくことができました。僕をここまで育ててくれた両親に感謝したいと思います。生きててよかった!

記念にスクリーンショット撮りまくったので自慢させて僕と同じように初めてプルリク来た方の参考になればと思います。

あ、これは Git Advent Calendar 2013 18日目の記事になります。なのでいちおうはGitの話のつもりです。




1通のメールが。

f:id:ishikawam:20131217220735p:image:w500

なになに、わしの grunt-md5filename に add ignorePatterns option とな、 「You can merge this Pull Request by running …」

な〜に〜、プ、プルリクエストだと〜\(^o^)/

ポチリと開くと
f:id:ishikawam:20131217220721p:image
おおお!来てる!
そして驚くことにTravisCIさんが反応してるではないか!それをGithubさんも教えてくれてるではないか!!
All is well - The Travis CI build passed. (Details)

問題無いと。このプルリク。マージしちゃっても問題無いと!
この (Details) をクリックすると TravisCIの当該ページに飛びます。

f:id:ishikawam:20131218130048p:image

.travis.yml に定義してたnodeのv0.8とv0.10、両方ちゃんとてテスト実行されてるし通ってます。


プルリクされたビルドはBuild HistoryではなくPull Requestsのタブに追加されます。
f:id:ishikawam:20131218131115p:image

Jobを開きます。以前PushしたときのJobと比較します。
18.2
f:id:ishikawam:20131218150954p:image:w500
19.2
f:id:ishikawam:20131218150955p:image:w500
passed asserttionsが45から49に増えているのがわかります。テストもちゃんと書いて頂いてます!



Githubに戻ってMergeを目指します。
f:id:ishikawam:20131217220721p:image
青々と光る 「Merge pull request」を早く押したい気持ちを抑えて

This pull request can be automatically merged.

You can also merge branches on the command line.


とあるので command line のリンクを開くと丁寧にMergeまでの手順を説明してくれています
f:id:ishikawam:20131217220727p:image
コマンドでマージするなんて勿体無い!せっかくなので十分レビューした後にMerge pull requestボタンをぽちっとしたいと思います!




さて、あらためてGithubのリポジトリトップを見ると
f:id:ishikawam:20131217220720p:image
Pull Requests 1 の文字がありますね (ニコッ

Pullsも
f:id:ishikawam:20131218114242p:image

Issuesも
f:id:ishikawam:20131218114243p:image

issuesにも入るの初めて知りました。

ありがとう mtanda さん。使ってくれてありがとう。書いてくれてありがとう。今日はお赤飯です。
僕は普段は仕事でGithub Enterpriseを贅沢に使わせて頂いておりますのですが、本家GithubでFolkからのPullReq。感動です。

Commitsはこの1つでした。
f:id:ishikawam:20131217220728p:image

さて、マージ作業ですがGithub上での差分チェックと、pullしてコード眺めたり触ったり実行したりしてレビューします。
pullは先ほどのコマンドライン手順のStep 1, 2でできます。

# Step 1:
git checkout -b mtanda-master master

# Step 2:
git pull https://github.com/mtanda/grunt-md5filename.git master


ソースコードで僕が変更する箇所はありませんでした。README等で多少の修正は必要ですが後でcommitするとして、もうmerge OKでしょう!えいっ! ( Merge pull requestを押す
f:id:ishikawam:20131217220730p:image
無事MergeしてブランチがCloseされました〜\(^o^)/
喜びのメッセージをmtanda宛に送ります。コメント欄に @mtanda を入れれば相手に届きます。便利ですよねGithub。




あとはnpmに公開しているので手直ししてnpm publishします。

f:id:ishikawam:20131217220731p:image

ちなみにgit tagでタグ付けしたりしてリリースバージョンとして記録したりもして仕上げてます。
f:id:ishikawam:20131217220734p:image

GithubにpushしたのでTravisCIからテスト成功のお祝いのメールが届きます。

f:id:ishikawam:20131217220736p:image:w500

さて、無事にリリース、公開されたかな?npm infoコマンドでnpm公開されたのを確認します。これは一瞬です。

f:id:ishikawam:20131217220732p:image:w600

npmサイトにもリリースされたのを確認!(こっちは遅延して反映には少々時間がかかる)
f:id:ishikawam:20131217220733p:image


これにて無事終了!
Git回なのにGithubの話ではあるんだけどどっちかって言うとnpmとかTravisCIの話になってしまった(・ω<)


明日は kaneshinth さんです!





はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/ishikawam/20131218/p1
リンク元