はじめに
なんとなくOSSに貢献は難しい、英語のやり取りだからハードルが高そう、私にはできないと思っていましたが、意外とやってみたらプルリクが受理されてコントリビュートできましたので、その時やったことをまとめたいと思います。
OSSやってみたいけどなんかハードルがあるという方の参考になればと思います。
やったこと
①GitHubのOSSコントリビュートのガイドラインを読む
やり方がよくわからなかったので、とりあえずGitHub公式のガイドラインを読みました。
ソースコードの修正がOSSコントリビュートだと思っていましたが、ガイドラインによると以下などもコントリビュートであると知りました。
- プロジェクトのドキュメント修正
- プロジェクトのドキュメントの翻訳
- 重複したIssueの紐づけ
- 古いIssueのクローズ
- Issueの質問に回答
- Stack Overflowでプロジェクトの質問に回答
また、経験が浅いならドキュメントの修正がおすすめとも書いてありました。
その他にも、重複したIssueを立てない、修正完了前に早めにプルリクエストを開く等の一般的な注意点が記載されていましたので、一度ガイドラインを読むことをおすすめします。
②練習用のリポジトリにプルリクを出してみる
ガイドライン中に初めての人におすすめのコントリビュート先一覧がありました。
そのうちのFirst Contribusionsというリポジトリで、実際にリポジトリをフォークして、ドキュメントを変更して、プルリクを出す操作を練習できました。
私はフォークの操作もやったことが無かったので、お試しできたのは良かったです。
③コントリビュート先のリポジトリのガイドラインを読む
私はOctokit.netというOSSをよく使用しており、その使用中に不具合を見つけたので、その不具合のIssueを立てて修正しようと思いました。
(すごく小さな修正で済みそうだったので、自分でもできそうと思えるものがたまたま見つかりました。)
OSSにはコントリビュートのガイドラインがあるはずなので、見ておくといいと思います。
Octokit.netの場合は特別細かいルールは見当たりませんでしたが、OSSによっては命名規則など細かいルールが存在するみたいです。
Octokit.netのガイドラインはこちら。
④Issueを立て、リポジトリをフォークして修正する
Issueを立てる際には他に同様のIssueが無いかを調べてから立てました。
また、ガイドラインと他の人のIssueを参考にして内容を記載しました。英語で記載するためそこだけ非常に困りましたが、DeepL等のサービスを使って何とか書きました。
Issue上で修正方針の確認を取った後、リポジトリをフォークして修正しました。
修正に関してはとにかく他のコードと一貫するように修正することを気を付けました。
立てたIssueはこちら。
⑤プルリクを送る
コードを変更したらすぐにプルリクを送りました。
途中の状態でもプルリクのタイトルの先頭に[WIP]など接頭辞を付けて早く出して早めにレビューや方針の誤りが無いか確認してもらうのが良いと思います。
何度かやり取りをしてコードを修正した結果、プルリクが受理され、修正がmainブランチにマージされました。
送ったプルリクはこちら。
さいごに
一通りやってみて、一番難しいのはコントリビュート先を見つけることかもと思いました。
今回はたまたまよく使っているOSSの小さな修正だったので初めてでもやりやすかったです。
普段使っているOSSであれば、割とコントリビュートにチャレンジしやすいかも!?と思います。
知らない相手に対してしかも英語のやり取りでというところがとても怖かったのですが、なんとか初めてのコントリビュートができて、とても達成感がありました。
また、以下のように自分の変更が入ったバージョンがリリースされたのは嬉しかったです!
私はビビりながら進めましたが、意外と歓迎してくれますし、意外とプルリクが通るかもなので、まずは手を動かしてやってみてもいいかもしれません!