やってみたら意外と簡単!はじめてのOSSコントリビュート

2022/08/28に公開

OSSへのコントリビュートなんて恐れ多い!と思っていた

まずはじめに、私はOSSにコントリビュートすることはかなり難易度が高いと思っていました。(前職時代はとくに!)
私がよく使うOSSはたいていStarが10k以上つき、ソースコードは技術力の高いエンジニアが書いたものばかり。
だから私が見つけられるバグなどないと思っていました。

でも、現職に転職してからは考え方が変わりました。
技術力の高いエンジニアのコードをレビューすることがありますが、どんなエンジニアも人間です。
コード中に初歩的なタイプミスや冗長な条件式もたまには見かけます。
(もちろん、私が書くコードに比べると遥かに保守性や可読性に優れていますが!)

作文やレポートと同じで、自分で書いているとなかなか気づけなくても、他人が見るとすぐ気付けるミスってあるんですよね。
そういう経験が業務中にもあったので、「もしかしたら、OSSもこんな感じでバグ見つけられる……?」と徐々に感じるようになりました。

コーディング中にふとスタイルがおかしいところに気づいた

そしてある日、コーディングしている最中に利用しているプラグインのスタイルがおかしいことに気づきました。
バグというほどでもない、本当に小さなスタイルのミスでした。
Element PlusというUIライブラリで、複数セレクトボックスを使用した際に「y, j, p, q, g」などの文字の下部が見切れていたのです。

私はOSSにコントリビュートするきっかけを得たのです。

実際にIssueを作成してみた

このバグがCSSのline-heightの指定漏れによるものだと気づいていました。
そのため、このままPull Requestを作成しようかと思っていました。
しかし、コードの記述箇所、スタイリングルール、影響範囲など、考えだしたらモチベが下がってコントリビュートやめちゃいそうだったので、より手軽なIssueを作成してみました。

https://github.com/element-plus/element-plus/issues/9491

驚いたことに、Issueを新規作成しようとするとIssue helperというIssue作成を手助けしてくれるフォームが用意されていました。

これは本当に助かりました。
必要な情報が一目瞭然で、安心してIssueを作成できます。

他のIssueを見てみると英語か中国語で書かれているものが殆どだったので、私も英語で書きました。
英語ネイティブじゃない人もIssueやPull Requestを作成しているので、翻訳したような英語でも伝われば十分だと思います。英語が苦手な人も安心してOK。

ほかのエンジニアがPRを作成してくれた

私はIssueを作成(=こんなバグがありますよ、と報告)しただけなので、バグを直接修正したわけではありません。
ですが、私のIssueを見てほかのエンジニアの方がPull Requestを作成してくれました。感謝!

https://github.com/element-plus/element-plus/pull/9496

OSSのコントリビュートは意外とかんたんにできた

やってみたら意外とかんたんってこと、よくありますよね。それです。
ドキュメントの修正でも良いし、翻訳を手伝うのでもいいし、私みたいにスタイルのバグを見つけるのでも良いです。
コードを読むのが難しくてPull Requestを作成できなくても、Issueは作成できるかもしれません。
一度でもコントリビュートできれば、2回目のハードルはグーンと下がると思います。
皆さんもぜひトライしてみてください!

Discussion