WheneverというOSSにPull Requestを送り、マージされた話
キッチハイクでインターンを始めて、135日。
エンジニア人生初、オープンソースにPull Request(プルリクエスト)を送りました。
GitHubにあるOSSコミュニティは「特別なコミッターたちが集う、別世界」。そう眺めていただけの私が、勇気をもって踏み出してみると、そこには文字通りの「開かれたコミュニティ」がありました。
OSSコミュニティは、手の届かない存在?
みなさんは、OSS開発についてどう思っていますか?
「数多のすばらしいコミットのおかげで、日々開発できています!」「特別な技術がないと、関われない」…こんなイメージを抱く方、少なくないと思います。すごく、分かります。
イラスト素材はぴよたそ様
そんな私がこのたび、OSS開発に貢献するというビッグイベントがありました!まさか、こんな日がくるなんて。
大学院を休学して、未経験でキッチハイクにインターンエンジニアとして飛び込んでから約5ヶ月。まだまだ初心者プログラマです。
今回は、そんな私がOSSコミュニティに少しだけ貢献したストーリーをお話します。超えられないくらい高く見えていたはずの壁も、乗り越えた後に振り返ってみたらそこまで高くなかった。思い返せばよくある話ですが、OSSコミュニティへの貢献も決して例外ではありませんでした。
『そうは言っても、Pull Requestなんて敷居が高くって』という方。今日にも 「ちょっと世界を良くしてみようかな」 という気持ちを、行動に移せるかもしれません。
READMEには、私がほしい情報はなかった
事の発端は、cronジョブの実行タイミングに関するリファクタリングでした。
every 1.day at: "6:00 am" do runner "Cron::run_hogehoge" end # これを3:00 pmにも実行したいなあ # 以下を追加 + every 1.day at: "3:00 pm" do + runner "Cron::run_hogehoge" + end # コードが重複している...
これは、 whenever という有名なRubyGemsを導入して書いています。
重複を避けるために、 at
で複数の時間を指定できたらいいなあ…と思ったものの、公式のREADMEには、該当するドキュメントは存在しておらず。
そんななか、関連する話題で issue を発見! このissueのおかげで、 at
にarrayを渡せるということが分かり、課題は解決しました。
一方で、「(解決できて)よかった」という気持ちよりも、 「私とおなじように困っている人がいるんだ」 という気持ちを強く抱きました。
every 1.day at: ["6:00 am", "3:00 pm"] do runner "Cron::run_hogehoge" end # at には、arrayを渡すことができる!
ここで、CTOがひとこと。
「せっかくだから、READMEにプルリクを送ってみたら?」
OSSコミュニティへの貢献方法は、コードだけではない
今回のPull Requestにおける修正対象は、ドキュメントです。つまり、私が修正した事でgemの動きが変わる!なんてことはありません。
それでも、これからwheneverを使用するプログラマが課題に直面したときに、私が修正したドキュメントを読むことで救われるかもしれません。となれば、これはりっぱな貢献です。
Pull Requestを送るときに意識したい、3つのこと
背中を押していただき、いよいよPull Requestの作成です。
ここでは、具体的な手順よりも、私がOSSコミュニティに初参加する上で意識したことを "3つ" お話します。
1. 参加コミュニティの文化・慣習を理解する
プログラミング言語に慣習が存在するように、OSSコミュニティにも慣習が存在します。先人たちが築き上げてきた文化に則って開発することは、彼らへの敬意を表すことそのものです。
2. 体温のあるコメント
たとえ拙い英語でも、礼儀正しいPull Requestを送れば、きっとレビュワーは快く対応してくれるでしょう。 丁寧なコミュニケーションは、初心者・上級者によらず意識すべき、大切な姿勢です。
3. 自分の貢献が、誰かのためになるという確信
「この1行があったら、もっと開発しやすいのに。」
開発に携わるなかで、こう感じた場面はたったの1、 2回? なんてことはないと思います。
あなたが感じていることは、きっと他の誰かも感じているはず。実際に改善しよう!と行動に移せるか否かのちがいは、自分自身の判断を信頼できるか、ではないでしょうか。
無事、マージされてcontributorsの一員に!
実際に私が送ったPull Request です 。
前述のarrayに加えて、シンボルの表記にも言及してみました。
- :at => '4:30 am' + at: '4:30 am'
はやくコメントがくるといいな〜とソワソワしていたのもつかの間、マージ権限をもつbenlangfeldさんから、早速コメントが返ってきました。
内容は "コメントにある具体例が、READMEの内容としては複雑すぎるし特定用途向けすぎる" というものでした。ただ、私はもう、コメントがきたというだけで大興奮。すぐに、該当箇所を修正してコミットします。
結果、なんとPull Requestを送ったその日にマージされました!
「こうすれば、世界はもっと良くなる」は、スタートアップそのもの
今回WheneverにPull Requestを送ったことで、こんな小さな修正でも、私は OSSコミュニティの世界に貢献した という経験を手に入れることができました。
私は「未来に生きる、多くの”誰か”に貢献したい」という気持ちは、スタートアップの存在意義そのものだと思います。
実際キッチハイクには、キッチハイクが存在する世界は、今よりもずっといい。と確信を持って行動する仲間ばかりです。また、今回のPull Requestのように、仲間の貢献を心から応援する文化があります。
『これなら、私にもできそう』と思った多くの方。
ぜひ今日から、世界を良くするための一歩を踏み出してみてください。
この投稿が、あなたのOSS開発デビューの一助となることを、切に願っています。
キッチハイクでは、エンジニアのOSSへの貢献活動を推奨しています。Railsエンジニア & React Nativeエンジニアを絶賛募集中です!