半月ぐらい前にはじめてGitHubをつかってプルリクエストをしたお話. 英語力のない自分でも案外きちんと海外の人とコミュニケーションができ,GitHubってすごいと思いました.
これってバグ?
最初に疑問に思ったのはバイト先でファイルをアップロードする機能を作ってた時でした. 一般から応募するようなものなんですが,本体のファイルと概要ファイルの二つをアップロードして保存しないといけない案件でした. fuelphpなららくらく~と思って作っていると,なんかエラーメッセージがおかしい・・・・. あれ?と思ってCoreの中まで見てみると,forの外側でfor内の変数を使ってる明らかに怪しいところがあり,おぉこれはバグだ!と思ったわけです. で,バグ見つけたし,ちょうどfuelphpの本も読んだわけで,これはpull requestするべき!!・・・でもちょっと怖い的な内容をつぶやいたところ,@kenji_sさんに背中を押されてチャレンジしてみることにしました.
githubでチャレンジ
内容としては 1.Fuelphpのコアをフォークする 2.バグを修正する 3.コミットする 4.プルリクエストを送る とすごい簡単なんですが,初めてということもあり戸惑い,途中何回かリセットしつつどうにかこなしました. テストコードを書かないとマージされにくいと聞いていたので,このレベルでテストコードを書くべきなのかどうか悩みつつ,結局書かずにドキドキしてプルリクエストを押しました.
海外からの返信
海外からの第一の返信は”何でこんなことしてるの?”でした. すごいショック受けました….自分の説明では全然わからないのかと. でもそのあとよく考えたらわかりにくい説明ではあるし,もうちょっと詳しく説明しようと思い, ”何行目で始まるfor文の中で宣言されてる変数$keyがfor文終わった何行目以降で使われてるんだよ”って行数,プログラマー的キーワード(for,$keyなど)をふんだんに使ってメッセージを送ったところ,納得してくれたようで無事本家にマージされました.めでたしめでたし.
プルリクエストを終えてみて
プルリクエストを終えてみて思ったのは,案外受け入れてもらえるんだってこと. 大きなプロジェクトを作っていると汚くなるから他人のソースコードを入れたくないとか思う時があるんですが, 全然そんなこともなく受け入れてもらえました. (最初tabを使っていなかったのは突っ込まれましたが) また,英語ができなくてもキーワードやら行数やらを書いて,きちんと伝えれば低レベル英語でも伝わったというのはすごくうれしかったです.ちゃんと英語勉強してコミュニケーションとりたいなと思うぐらい刺激的でした.