firebase-functionsにコントリビュートした話

2022.06.21

こんにちは、八木です。

先日、GoogleのOSSであるfirebase-functionsに簡単なドキュメントの修正のPR(Pull Request)を送りました。
この際、PRの作成からマージされるまでに少し詰まる箇所があったため、共有を目的として記事にします。
なお、コントリビュートの細かい手順(リポジトリのフォーク、PRの作成など)は良い記事がたくさんネット上に出ているので、この記事では説明を省かせていただきます。

Contributor License Agreement(CLA)への同意

ライブラリを利用して開発を行なっている際、ドキュメントが実装からずれている箇所を見つけたため、修正のPRを出すことにしました。
まずコントリビューティングガイドを確認したところ、コントリビュートのためにはContributor License Agreement(CLA)に署名する必要があることがわかりました。
今回修正のPRを送ったfirebase-functionsだけでなく、GoogleのOSSへのコントリビュートにはCLAへの署名が必要です。
同意内容の詳細はこちらに載っています。
なお、この同意は1回行えばよく、過去に署名を行なっている場合は再度行う必要はありません。

ということで案内に従って署名を行います。CLA詳細ページ下部の「Manage your agreements」ボタンを押し、Googleアカウントでログインを行います。
下記のページに飛ぶため、「Only Yourself」で登録します。
この後フォームで名前、Githubのユーザーネームを入力し、署名が完了します。

PRの作成

署名が済んだので、修正のPRを作成したところ、botに「署名済んでないよ!」と言われてしまいました。

コメントのリンクから詳細を確認してみると、署名したメールアドレスが間違っていることがわかりました。

コミットの際に使用したGitのメールアドレスと、署名に使用したメールアドレスが違っていたようです。
再度コミットに使用したメールアドレスでCLAの署名を行い、上の画像で案内されている「New Contributors: Update this check after signing the CLA by clicking here.」のリンクをクリックすることで、署名の検証を完了することができました。

ブランチが期限切れになってしまった

メインコントリビュータの方にApproveをもらったのですが、マージされる前にPRが「This branch is out-of-date with the base branch」となってしまいました。 (※スクショを撮り忘れたので、代わりに用意した画像です)

調べてみたところ、「baseブランチが更新された際、PRを出しているブランチへの反映を求める」というGitHubのリポジトリ設定が行われているようでした。
これは作業ブランチにbaseブランチを取り込めば解消されます。

できれば手元の作業環境で、baseブランチのマージまたはリベースを行い、動作確認をしてから再度pushしたいです。
しかし今回の私のPRはドキュメントの修正のみだったため、GitHub上の機能「Update branch」でマージを行いました。

そして数日後、メインコントリビュータの方によって、無事マージしていただけました。

最後に

この記事を通して、同じように詰まっている方の解決に貢献できれば幸いです。
今回のような小さな修正でも、見つけた場合はぜひPRを送ってみましょう!

参考リンク

More ways to keep your pull request branch up-to-date