4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初めてOSSにコントリビュートしました

Last updated at Posted at 2024-02-24

はじめに

私はエンジニア3年目ですが、新卒でエンジニアになったときからいつかはOSSにコントリビュートしてみたいという目標がありました。

そしてついに、普段お世話になっているリポジトリや機能に対してコントリビュートできたので、その背景をまとめたいと思います。

コントリビュートの内容

マージされたPRは、以下です。

リポジトリは、Composerです。
PHPを使っている方ならお馴染みの、パッケージ管理ツールです。

モダンなPHP開発では、ほぼ必ず用いられるツールです。
筆者も業務でPHPとLaravelを使って開発をしていますが、毎日当たり前のようにComposerを使っています。

コントリビュートの内容は、テストコードの追加です。
self-updateコマンドという、Composer自身のバージョン管理を行えるコマンドがあるのですが、そのコマンドのテストケースをなにもない状態から作成しました。

カバレッジは、40%くらいまではもっていけました。
もう少しカバレッジを上げようとしたのですが、私の実力ではこれ以上やろうとすると結構時間がかかってしまいそうだったので、一区切りつけてPRを出しました。

コントリビュートチャンスを見つけた方法

Good First Issueというサイトで見つけました。

OSS活動初心者向けという意味合いのgood first issueというラベルがついたIssueの中で最近動きがあったものを言語ごとにまとめてくれているサイトです。

私はこのサイトを知ったのが2ヶ月前くらいなのですが、それから何日かに一回はこのサイトを見るようにしています。ある日、このIssueが掲載されているのを見つけました。

コマンド系のテストコードのカバレッジ全然足りてないから、どんどんテストコード書いてくれ!というIssueですね。

テストコードの追加なら、自分にもできそうだと思いました。
業務でもちょうどテストコードの導入に向けてPHPUnitを調査していたので、アウトプットしてみたいという気持ちもありました。

普段業務で頻繁に使っているself-updateコマンドにまだテストコードが存在しないことを知り、このコマンドのテストを書くことにしました。普段使っておりコマンドの挙動がわかっているため、テストも書きやすいのではないかと思いました。

マージまで進んだ背景

テストコード自体は、仕事終わりに書き進めて、大体3日くらいで形になりました。
念入りにセルフチェックをして、 PRを出しました。PR出すときはほんとに緊張しました、、。

2週間ほどして、2つ指摘をいただきました。
1つ目の指摘は、PHPUnitのdata providorを使ったほうがきれいに書けるよというものでした。おっしゃる通りです、、。
Screenshot 2024-02-24 at 19.33.37.png

2つ目の指摘は、どのファイルにも書く定型文をちゃんと書いておいてねーというものでした。見逃していた、、。すみません。
Screenshot 2024-02-24 at 19.33.53.png

修正をしてから、マージしていただきました。PRを出してからマージまで、待ちの時間込みで約1ヶ月でした。

おわりに

エンジニアとして一つ目標としていたことが達成できて、素直に嬉しいです。
自分の書いたコードは少しとはいえ、Composerの一部として全世界のPHP開発者の元に行き届くと思うとちょっとだけ誇らしくなります。

また、最近Composerは大規模な脆弱性のパッチ対応が行われました。
その対応としてComposerのバージョンアップを行う際、self-updateコマンドは結構世界中で叩かれることになるコマンドだと思います。その動作安定性向上に少しでも寄与できたのかなと思うと、やってよかったなと思いました。

Good First Issueのサイトは、OSS活動に興味がある人にとてもおすすめです。
対応できそうなIssueがないか、これからも定期的にチェックしていきたいと思います。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?