🐡

good first issueからOSS(Renovate)へコントリビュートした話

2023/05/26に公開

対象読者

OSSへのコントリビュートに興味がある方

はじめに

good first issueから、OSSのRenovateへのコントリビュートするまでの手順についてまとめてみました。これからOSSへ貢献してみたいという方の参考になれば幸いです。

good first issueとは

good first issueは、初めての貢献者でも取り組みやすいとされる問題に付与されるラベルです。具体的には、小さなバグの修正やドキュメンテーションの更新などが該当します。

Renovateとは

Renovateは、JavaScriptやPython, Javaなど多くのプログラミング言語を対象とした依存関係の更新ツールです。開発に用いるライブラリのバージョンをそれぞれ追跡するのは困難ですが、Renovateを利用することで自動的に新しいバージョンのライブラリに更新するプルリクエストを作成してくれます。

以下に今回作成したプルリクエストのリンクを貼りますので興味ある方はご覧ください。
https://github.com/renovatebot/renovate/pull/22409

コントリビュートの流れ

  1. good first issueから取り組めそうなissueを探す
  2. コントリビュートガイドラインを読む
  3. リポジトリをフォークする
  4. コードを編集する
  5. プルリクエストを作成する
  6. レビューコメントに対応する

続いて、これらの手順について詳細に解説していきます。

1. good first issueから取り組めそうなissueを探す

まずは、取り組めそうなissueを探すところからはじめました。

good first issueを絞り込む画面

good first issueのラベルが付いたissueを上から5つほど中身を確認し、修正難易度が低そうなものを選びました。

https://github.com/renovatebot/renovate/issues/22199

具体的には、 any-versionno-versionという2つのskipReasonsをunspecified-versionに統合するという内容でした。skipReasonsとは、Renovateが特定のパッケージ更新をスキップする理由を表示するためのものです。

こちらのissueに対する作業は主に文言の置き換えとなるため、取り組みやすそうだと判断しました。

2. コントリビュートガイドラインを読む

著名なOSSプロジェクトにはコントリビュートガイドラインというものが存在します。
これは、新規のコントリビューターがプロジェクトに参加する際のルールや手順を明示した文書で、コードのスタイルガイドやプルリクエストの提出方法などが記述されています。

適切な形式でプルリクエストを作成しないとマージされない可能性があるため、まずはガイドラインを読みました。Renovateの場合は、コントリビュートするためにCLA(Contributor License Agreement)という契約書にサインする必要があります。CLAとは、コントリビューターが提供したコードについての権利を明確にするためのものです。これらの点も含めて、ガイドラインを確認することは大切だなと思いました。

3. リポジトリをforkする

次に、GitHub上のRenovateリポジトリをforkしました。これは、自分のアカウント上でプロジェクトをコピーし、元のプロジェクトに影響を与えずに自由に変更を加えることを可能にするための手順です。

4. コードを編集する

forkしたリポジトリ上で、issueの内容に基づいてコードを編集しました。
文言を置き換えるだけとはいえ、変更箇所の周辺コードも確認しながら作業を行いました。

コミットメッセージに関しては、Renovateの場合、後で一つまとめられるため、そこまで気を使う必要はありませんでした。ただし、これはプロジェクトによるため、ガイドラインや過去のPRを参考にすると良いと思います。

5. プルリクエストを作成する

コードの編集が完了したら、次にプルリクエストを作成します。
英語が得意ではないため、直近でマージされているものを参考にしつつ、文言を整えました。

https://github.com/renovatebot/renovate/pull/22409

6. レビューコメントに対応する

プルリクエストに対して、コメントがある場合はそちらの対応をします。

今回は、以下の2点の対応を行いました

  • 文言を置き換えた結果、アルファベット順が崩れてしまった箇所の修正
  • unknown-versionというメッセージも置き換えていいのではないかという提案への対応

それらのコメントに対応後、メンテナーから承認され無事にマージされました。

感想

大きな変更はありませんでしたが、普段から利用しているOSSに対して貢献できたことに達成感を感じました。自分のGitHubのプロフィールページにもコントリビュートしたプロジェクトが表示されるので嬉しかったです。
OSSへのコントリビュートに興味がある方の参考になれば幸いです。

GitHubのプロフィールページにRenovateのプロジェクトが表示されている

GitHubで編集を提案

Discussion