はじめに
こんにちは。
Flutterにコントリビュートしてみたので、その流れや感想などを書きます!
(ドキュメントの修正しかしていないけど、これも立派なコントリビュート!)
コントリビュートしようとおもった理由
- そのOSSを深く知ることができると思ったから
- 何かひとつ深く知れば他の技術にも活かせるはず!という考え
- 外部の人に自分のコードをレビューしてもらえるから(今回コード書いてないけど😽
- なんかカッコ良いから
コントリビュートまでの流れ
ざっくりこんな流れだと思います。
- コントリビュートしたいOSSを見つける
- コントリビュートのルールを確認する
- 挙がっているIssueからできそうなものを見つける
- コード/テスト書く
- PR(プルリクエスト)を作成する
- レビュー/マージ
1. コントリビュートしたいOSSを見つける
まずはOSS見つけましょう!自分が好きなOSSで良いと思います。
普段からお世話になっているOSSでも良いし、コントリビュートが活発に行われているOSSに挑戦するのも良いと思います。
僕はFlutterにしました。
2. コントリビュートのルールを確認する
OSSによってコントリビュート時のルールが違うと思います。
コントリビュートが活発なOSSであれば資料があると思うので読みましょう。
不明点があればすぐに資料を確認するのが大事だと思います。
flutterもコントリビュート用の資料がありました。その中に環境構築のやり方やスタイルガイド(コーディングルール)なども詳細にまとまっており、わかりやすかったです。
また、何かわからなければdiscordで質問できるような環境でした。
3. 挙がっているIssueからできそうなものを見つける
これが結構難しいです。特にあまり使ったことないOSSだと、どのIssueなら直せそうか判断しづらい気がします。
Flutterではissueのラベルがとても参考になりました。
できそうなIssueを見つける戦略
ここで僕がコントリビュートする時のIssue発見戦略をご紹介します。
Flutterでの話をしますが、他のOSSでも大体通用するはずです。
①「good first issue」ラベルの付いたIssueから見つける
最初のコントリビュートとして取り組みやすいIssueにこのラベルが貼ってありました。
②「regression」ラベルの付いたIssueから見つける
デグレが起きているバグにはこのラベルが貼られていました。
コミットを遡れば直す場所がわかりやすいのでは?
③ドキュメント関連のIssueを見つける
typoしてるとか、リンク切れしているとか色々ありますが、これが一番簡単かも。
たまに公式ドキュメントのリンク切れを見つける時があると思います。
そんな時はコントリビュートのチャンス!!
着手するIssueが決まったら、「これ僕がやります!」みたいにコメントで宣言するか仮のPRを作っておくのが良さそうです。簡単なIssueほど他の人もすぐに着手すると思うので。
このへんもOSSによってルールがあるかも知れません。
4. コード/テスト書く
Issueが見つかったらコード・テストを書いていきます。
5. PR(プルリクエスト)を作成する
完成したら、いよいよPRを作成します。
PRのテンプレートがある場合はそれに従ったり、コントリビュートガイド見たり、他のPRの真似したりして概要を埋めます。
6. レビュー/マージ
PRを作成したらレビューしてもらいます。
レビュー依頼方法もOSSによって違うと思いますが、
Flutterの場合は依頼しなくてもレビューしてくれました。
googleの人にレビューしてもらうときは少し緊張しました😆
また、レビューが済んだら自動的にmasterへマージされました🎉🎉
レビュー/マージ関連もコントリビュートの資料に書いてありました。
最後に
大雑把な流れを書きましたが、いかがでしたでしょうか?
コントリビュート用の資料がとても参考になったので、皆さんも迷ったらすぐにそのOSSの資料を見ることをおすすめします。もしくは管理者に質問するなど。
次はコードの修正に挑戦します!!
Let's try!