読者です 読者をやめる 読者になる 読者になる

ガルトラで遊ぼう

ガルトラ、プログラミングについてのブログです。月に4投稿ぐらいのペースでやっていきたいと思います。

初めてのOSS活動

私がよく使用するOSSにBeegoというものがある。これはGo言語製のWeb Frameworkで非常にシンプルにWEBアプリの作成ができると感じている。語弊があるかもしれないが雰囲気的にはRailsに近いと思う。Beegoについては別の機会に詳しく触れたい。今回はBeegoのCLIツールBeeに対しての話題だ。このツールで初めてOSSプロジェクトのコントリビューターになれた。この記事はその回想録である。

beeについて

beeとはbeegoによるアプリケーション開発を簡単に行えるようにするためのCLIツールである。railsコマンドのようなものと思ってもらえればよい。beeにはLiveReload機能等が備わっておりbeegoでアプリ開発を使って損はないツールだ。

バグを踏む

ある日、beeツールにdockerizeコマンドが追加されたことに気がついた。このコマンドはDockerfileを作成してくれるものだ。これはDockerfileを億劫に感じていた私にとっては願ったりかなったりの機能だった。喜び勇みツールをアップデートした私は早速コマンドを実行した。しかし、問題が起きた。docker build時にエラーになってしまうのである。これには参った。原因を突き止める必要がでてきた。

解決はしたが・・

果たして原因はすぐに分かった。生成されるDockerfileにまずいところがあり、godep install実行時にエラーとなってしまうのである(細かい内容は避ける)。Dockerfileの問題の箇所を修正し再度buildしたら動きだした。ひとまずの問題は去った。しかしである。これはチャンスだった。かねてから私は何かOSS活動に携わりたいと考えていた。しかし、ソースコードを読む気概はなく、新機能の作成も夢のまた夢、リファクタリングも自信なし、ドキュメントを書こうにも文章力に課題があった。そこへ今回のバグである。ある意味願ったりかなったりであった。

コントリビュータに登録された

バグ自体は簡単な修正だった。Dockerfileのテンプレートを修正するだけで良い。1行で終わる。しかし、その後が大変だった。なにせ私はプルリクエスト自体が初めてであった。そもそもやり方がわからない。私は以下のリンク等を参考にし慎重にプルリクエストを書いた。
GithubでOSSのPull Requestを作成してマージしてもらう手順

コード修正は一瞬だったが、とにかくその後の作業に多くの時間を割いた。テストを行いデグレを起こしていないか確認した。コミット前後の差分を確認した。コミットログのわかりやすさや、英文法の誤りがないかは念入りに確認した(ほとんどGoogle翻訳に頼ったが・・・)。もうこれ以上はないほどの確認を行い、恐る恐るプルリクエストを出した。しかし、一瞬のうちにマージされた。少し拍子抜けしたがやはり嬉しく思わずTwitterにつぶやいたほどであった。

まとめ

終わってみればものすごいあっさりしていた。実際にOSSにプルリクエストを送る前はそれは、本当に実力のある一部の人たちにしかできないことだと感じていた。しかし、今回のような簡単なバグフィックスでもOSS活動に携われることを身をもって体験できた(そもそもOSSでバグを踏むこと自体初めての体験だった)。これからもBeegoを使う機会は多い。なので新規の機能等がリリースされたら積極的に使用し、バグフィックスという形からOSS活動を行いたい。