片岡空の上の空

一旦書き留めるためのページ

OSSにcontributeする方法

OSSとは

オープンソースソフトウェアの略です。 オープンソースソフトウェアとは、ソフトウェアのソースコードが一般に公開され、利用者の目的を問わずソースコードの利用、修正、再頒布が可能なソフトウェアのことです。 一般的には「オープンソース」と呼ばれており、実はLinuxRubyKUSANAGIなど多くのサービスがOSSなのです。 wikipediaに近い感覚といえば伝わりやすいでしょうか? こちらの例えがわかりやすかったです。

私はITが進化する速度が早い理由の一つにOSSの文化があると思っています。 他の文化では1人がこっそり作り、それを1人で改良し続けなければならないところを、 OSSでは1人がつくったものを、国籍・年齢・性別問わず、改良されるわけです。しかも基本無給で。 1人が1年間で働く時間は365/7 * 5 * 8(平日5日間 各8時間、祝日考慮せず)と考えると、「2086時間」 rubyのコミッターは記載時点では50名なので、 1人で1年間分働く時間を50人で分担するとなると、 2086/50 = 42時間。 これは1人1人が週に1日8時間作業するとすれば1月半で達成で来てしまう数字なのです。 OSSの文化がいかに技術の進歩に影響を与えているかよく分かるかと思います。

OSSのメリット・デメリット

OSSを利用するか検討をする際、 OSSと企業が作成しているサービスのどちらを利用するか判断に迷った際、 どの様に判断をすればよいかOSSのメリットとデメリットを知っているとよいでしょう。

OSSのメリット

・無料 ・中身を全て見ることができる ・好きにカスタマイズをすることができる

OSSのデメリット

・バグ・トラブルがあった際は、使用者の自己責任 ・開発継続・アップデートの永続性が約束はされていない。 ・一部企業からは使用を禁止されているものがある

PRの送り方

OSSについての知識を共有したところで、本題のOSSにPRを送る方法です。

  1. OSSgithubページからフォークを行う
  2. フォークしてできた自分リポジトリをclone
  3. 追記・更新等作業を行う
  4. 自分のmasterにpush
  5. 自分のgithubのpullRequestsタブの「New Pull Request」を押下
  6. 作成先・作成内容を確認し、問題なければ作成
  7. OSSgithubページのpullRequestsを確認
  8. PRがmergeされたら、contributorsから自分のアカウントを確認してニヤニヤします。

※フォーク元のOSSが更新される可能性があるため、フォーク元をリモートに追加しておくと便利です。 git remote add hoge git:github.com/fuga/fuga.git

こちらのサイトを参考にさせていただきました。

https://sue445.github.io/megurorb-02/#/ http://konyu.hatenablog.com/entry/2015/01/25/175839

PRを送る際の注意点

OSSはほぼ100%と言っても過言ではないほど、英語でのコミュニケーションが求められます。 英語が苦手でもメッセージ無しや日本語コミットはやめて、つたない英語でもコミットやRPの意図をOSSオーナーに伝えられるよう努力しましょう。 issueやPRが沢山溜まっている場合、活発過ぎてオーナーが追いついていないケースと、 逆にオーナーが確認する頻度が低い場合の2パターンがありますが、 どちらの場合も自分がやろうとしていることと同じ事を既にやっている人がいないかの確認を行ってから、着手をするようにして下さい。

初心者でもPRを送りやすいOSSのポイント

日本語化

・README_JP.mdの作成 英語が得意な方は、英語版のREADMEを翻訳し、日本語READMEを作るという事ができます。 翻訳ソフトを使ってそのまま貼り付けるのはやめましょう。(念の為)

・local/jp.ymlの作成・更新 英語が苦手な場合は、多言語対応しているOSSの日本語化などはやりやすいかと思います。 ただしOSSの管理者が日本語を使えない場合は、PRを出しても放置されることが多いかもしれませんので、ご注意下さい。

使用されているライブラリを最新バージョンにしてTESTを通す

日々testをしっかりと行う環境で開発をしている場合は、 OSSの中で使用しているライブラリのバージョンが古くなっている場合、 最新バージョンに更新し、関係箇所のテストを全て通ることを確認した上でPRを送る方法があります。 その時、testを行ったlogをPRに入れるのを忘れないようにしましょう。 またテストが通らなかった時は、修正するか、ISSUEを立てる事もできます。

READMEのtypo修正

これは出会うのが難しいですが、もし出会ったら、サクッとPRを出してしまいましょう。 コミットメッセージやPRメッセージにこる必要がないのはかなり美味しいポイントです。

最後に

初心者でもPRを送れるOSSの探し方は正直今探しているところです。 もし、こんなやり方で探すといいよ、というのがあればぜひ教えていただきたいです。 他の人が書いたソースを読むだけでも勉強になると思いますし、 定期的にOSSにcontributeすると、幻の人物からヘッドハンティングがかかることもあるようです。 この記事で、少しでもOSSにcontributeしてみたいと思っていただければ幸いです。