これは ZOZO Advent Calendar 2023 カレンダー、シリーズ 5 の 17 日目の記事です。
はじめに
OSSに貢献してみたいけど、何をすればいいのか分からない・ハードルが高そうと思っている人は多いのではないでしょうか。まさに自分がそうでした。
そこでこの記事では、技術力を高めるという目的というよりは、まずはとにかく簡単なissueを探してOSS活動の雰囲気を掴みたい・成功体験を積んでみたいという人を対象に、最初の一歩として踏み出しやすいissueの探し方を自分の経験をもとに共有できればなと思います。
貢献しやすいissueを見つける
普段使っているツールやライブラリの改善点を見つけて自分でissueを起票したりcommitするのはなかなかハードルが高いですよね。
そこで今回は、GitHub Help Wantedを使って世界中のOSSからissueを探してみます。
では具体的にどういったことを意識しながらissueを探していたのか見ていきます。
good first issue
ラベルで絞り込んで探す
GitHub Help Wantedはラベルを使用してissueを絞ることができ、中でもgood first issue
やeasy
、documentation
は我々ひよっこコントリビューターにうってつけのラベルです。
個人的にはgood first issue
は比較的簡単な内容が多かったと思いますので、まずはこのラベルで絞り込むのをおすすめします(もちろん併用可)。
新しいissueから探す
古いissueは情報が不足していて手を付けるハードルが高いか、他のつよつよエンジニアでもなかなか対応の糸口が見えなかったという可能性があります。とにかくサクッと貢献したい我々ひよっこコントリビューターは、そういった難易度高めのissueを選ぶのは最初は避けた方が良さそうです。
議論が始まっていないissueを探す
議論が活発なissueは大抵込み入った内容になっていて、こちらも難易度高めのものが多いです。もちろん途中から英語で建設的な議論に参加してともに解決していければ理想ですが、我々ひよっこコントリビューターには少々荷が重そうです。
コードに深く踏み込まなくても良さそうなものを探す
GitHub Actionsやドキュメントの修正(特にtypo)などは、issueの背景や関連するコードを読み込まなくていいので比較的取り掛かりやすいです。特定の言語で絞り込んでもいいですが、簡単そうだと思ったら意外と重めの内容だったということは少なくなかったので、「簡単なissueを探す」という点では効率は良くないかもしれません。
いけそうなissueはすぐにPRを出す
簡単なissueはすぐに誰かが対応しちゃいます。これはいける!と思ったら、その日のうちにPRまで出しちゃいましょう。
かくいう自分も「お、これいけそうかも」と思ってのんびり実装を進めていたissueが2、3日でcloseされていたことが何度かあり、その度に精神的なダメージをもらっていました。
以上を加味して自分が選んだissueはこちら。
https://github.com/tricorder-observability/Starship/issues/91
まだ改善の余地があるのでcloseにはなっていないですね。
issueを決めたらforkして実装した後、PRを出します。
PRのフォーマットはOSSごとに慣習がある場合もあるので、他のPRも参考にしながら作成しましょう。
自分が投げたPRはこちら。
https://github.com/hyperioxx/frontman/pull/60
簡単なGitHub Actionsのワークフローを追加しただけです。概要もissueのリンク貼ってるだけなので、これはあまり参考にしない方がいいかもしれないです。。
ちなみにPR投げて2,3分でマージされました。本当に内容確認したんですかね...
おわりに
いかがでしたでしょうか。
まずはこういった簡単なissueから始めると、OSSに対する抵抗感や苦手意識は少なくなっていくのではないでしょうか。
そしてゆくゆくはお世話になっているライブラリやコミュニティに貢献できるようになっていきたいですね。
ではまた。