麻布十番で働くデータ分析者のブログ

グロースハック、プログラミング、データ分析の色々を発信します

非エンジニアがOSS開発にコミットした話

f:id:nimi0370376:20180423000148p:plain

 

この度小さな規模ですが、OSSにコミットしたのでその方法と過程をシェアしたいと思います。

 

今回コミットしたプロジェクトはこれです。

github.com

 

主にRuby on Railsで利用するgemです。

Railsでログイン機能を実装する際にdeviseという有名なgemがあるのですが、上記のgemを併用するとログインページのデザインをbootstrapでいい感じにしてくれます。

 

そんないい感じのgemにコミットしようとした理由と、その過程をシェアします。

 

これからOSSにコミットしようとしている方ややり方に困っている人の参考なれば嬉しいです。

ちなみに自分自身はエンジニア未満です。非エンジニアの人でもコミットできるように抽象度を高めておきたいと思います。

OSSコミットの種類

そもそもOSSにコミットする方法は1つではありません。

  • 公式のGitHubに溜まっているissueをエンジニアリングで解決してコミット
  • 機能の高速化や便利な機能を実装してコミット
  • typoやbugなどを見つけて、fix
  • README.mdなど情報を修正したり、追加してコミット

コミットの方法は人それぞれでしょうが、今回は一番下のREADME.mdを修正する簡単なものにしました。

OSSにコミットしようとした経緯

自分自身がOSSにコミットしようと思った経緯をお話ししたいと思います。

  • 自作のアプリでログイン画面をいい感じにしたい
  • devise-bootstrap-viewsを使おう
  • いい感じになったけど外し方がわからない
  • どこにも書いてないからREADME.mdに追加したい
  • OSSに初めてコミットするいい機会だし、やってみよう

主に上記のような感じでコミットすることにしました。

 

始まりは自作しているMOMIJIというRailsアプリのログイン画面をいい感じにしようと思ったことからでした。

devise-bootstrap-viewsといういい感じのgemが見つかって、実装したのですがカスタム性がイマイチで、外したくなりました。

しかし、どこにも外し方が書いてなかったのです。stackoverflowやqiitaをあさったのですが、結局わかりませんでした。

とりあえず、Railsからbootstrapを無効にする手順で外しました。またdeviseのviewファイルも作り直すことにしました。

 

同じような経験をしている人やこれから同じ境遇になる人のためにも情報を残そうと思い、公式のREADME.mdにコミットすることにしました。

 

OSSにコミットする手順

今回行なった手順は下記のようになります。

  1. 公式のGitHubリポジトリをFork
  2. git cloneでローカルに環境構築
  3. branchを切って、README.mdに情報を追加
  4. git commitにコメントを残す(英語)
  5. Fork先にpushをする
  6. 公式のリポジトリにPull Requestを出す

Pull Requestの出し方

自分の場合は、gemの外し方を追加してfork先にpushしました。その後にPull Request(PR)を出すのですが、基本的に英語です。

 

PRに掲載した情報は主に下記になります。

  • 簡単な自己紹介
  • 変更点
  • 変更したファイル
  • なぜ変更したか

 

f:id:nimi0370376:20180423003028p:plain

 

一応全部英語で記述します。難しい英語は使っておらず、無理をしないレベルの英語で書きました。

実際に文法や単語があってるか分からないですが、そこは日本人だということを最初に述べることでハードルを下げておきます笑

 

すると下記のような返事が返ってきました。

f:id:nimi0370376:20180423003244p:plain

コミットしてくれてありがとう。その変更気に入ったよ。でも不要なファイルがあるから排除してくれない? 

 簡単に和訳すると上記のような感じです。そこで下記のような返事をしました。

f:id:nimi0370376:20180423003415p:plain

とりあえず、修正して送り直すねとだけ返事しました。

 

修正して再びPull Requestを出す

とりあえず、不要なファイルを排除してPull Requestを出しなおします。

f:id:nimi0370376:20180423003556p:plain

 

.ideaファイルが邪魔だったので、排除してpushし直しただけですね。再び変更したファイルなどを記述しています。

 

無事merge

f:id:nimi0370376:20180423003658p:plain

無事mergeされました。

今回コードを書いたのは0行ですが、無事にgemのコミッターとして記録されました。地味に嬉しいですね。

 

今回PRを出した先は個人開発のgemだったので、必要最低限の情報しか掲載しなかったのですが、もしテンプレートなどがあるところであればそれに従いましょう。

 

今後は、issueを解決したり、コードを書いてコミットしていきたいと思っています!今回の記事のようにわずかな変更でもコミットできるんだということを知っていただけると思います。

 

それではまた!