概要
こちらの記事を書いたきっかけは、jest にある examples/react-es6
が React 0.14 で動作しなかったため、試行錯誤した結果をまとめるためでした。
記事を書いたあとに、jest の examples を修正してプルリクした方がいいのではないかと思い、やってみることにしました。
やってみると簡単でした。
この記事が OSS へ貢献したいけど一歩踏み出せない人に役に立てれば幸いです。
感想
あまりに簡単だったので、先に感想を。
OSS の本体を実装している人は忙しくて、ドキュメントとかサンプルの更新が遅れがちです。
しかし、その OSS を使う初心者にとってはドキュメントやサンプルは結構重要です(サンプルが動かなくて使うのをあきらめることありませんか?)。
サンプルを最新の環境で(今回は react 0.14 と npm 3)動作させるように綺麗になおすことは、その OSS や周辺のプラットフォームを理解するのに非常に役にたちます。
プルリク受ける側もサンプルなら本体への修正ほど悩まないだろうし、自分のスキルアップにもなるし、初心者の助けになる(その OSS も拡がる)ということで、最初はサンプルの修正のプルリクはおすすめです。
準備
普段、仕事でも git とプルリクを使ってますが、プロジェクトによって次の2つに分かれます。
- リポジトリは全員で共有で、main (or develoop) からブランチをつくり、ブランチから main (or develop) へのマージにプルリクを使う。
- メインのリポジトリへの書き換えは制限されていて、各メンバーが fork を作り、fork 先で作業したあとプルリクする。
OSS では一般的に2番の方法になります。
仕事や知り合いのように閉ざされたところであれば気軽にプルリクできるのですが、相手が Facebook なのでびびってもう少し調べてみたところ、 examples/react
で同じような目的のプルリクがされていました。
そのもととなった issue を見ると、Facebook の中の人が "It definitely does work with 0.14 but we haven't had time to update the jest examples. Feel free to send us a pull request! :)" (意訳:時間がないので、気軽にプルリクください )と書いてあったので、気持ち的に楽になり一気に進めることにしました。
まず、Facebook の場合は、 こちらからCLA という規約に同意する必要があります。
同意してなくても、プルリクのタイミングで bot が知らせてくれます(参考)。
修正・確認
普段、仕事で git + プルリク使っている人にとっては、基本的に同じです。
- 右上のボタンから fork する。 => 自分のリポジトリにコピーができます。
- (fork した) 自分リポジトリ上のプロジェクトを clone する。
- 適当なブランチを作る。
- 修正する。
- 自動テストを実行。 (npm test とか)
- commit + push
- 自分のリポジトリにプルリクのボタンが表示されるので、押して適当に説明を入力。
- facebook とかだと CI の travis がテストとか実行してくれるので、しばらくしてからプルリクを見てエラーになっていないか確認。
- マージされる、またコメントされるのを待つ。
こちらがぼくのプルリクです。