2023年の抱負

Google OSSにマージされた話

 この投稿は私の現在所属しているスターフェスティバル株式会社のスターフェスティバル Advent Calendar 2022の7日目記事になります。

昨日はyui_tangさんによる機械学習でメタルかそうでないかを聞き分ける自作アプリの紹介でした!面白かったので是非読んでみてください!
https://zenn.dev/stafes_blog/articles/89a29ade69ec6d

こんにちは!k1rntです。

今回はGoogle OSSにissueを出しPRの作成、マージまでの経緯をお話しできればと思います。

なぜやろうと思ったのか

つい先日GitHub Actionsのsave-stateset-outputコマンドが廃止になるという速報が社内Slackに投稿されました
こちらですね。

社内のリポジトリのGithub Actionsでも結構set-outputは使われていることもあり自分も書いていました。

そんな中弊社、ikkitangからこんな一言が!



簡単な内容な割にはクリティカルで影響範囲も大きいはず...!
そう感じた私はひとまずGoogle OSSのGitHubでset-outputが使われていないか検索をしてみることにしました。

OSSコミットチャンス

Google OSSを検索するとset-outputを使用しているリポジトリが多々ありました。
その中でも一度使ったことあるgo-githubも対象に含まれていたのでこちらに貢献することを決めました。

CONTRIBUTING.mdを読む

まずどのように貢献したら良いかは大抵CONTRIBUTING.mdといったファイルがあるはずなので読みます。
今回の場合こちら

これを読むとissueにて問題の報告PRにてパッチの提出を行えば良いことがわかります。
このドキュメントにはパッチの提出の際 go fmt の実行やテストを書く必要があると書かれていますが今回修正するファイルはGitHub Actionsなのでこれらは無視します。

issueを書く

OSSではissueだけでなくPRなども全て英語で書く必要がありますがdeepl等で翻訳したテキストを投下しても問題ないと思われます。
今回書いたissueはこちらになります。

今回はフォーマットなどが無かったのでなるべく簡潔に書きました。
リアクションがついて嬉しかったので皆さんも是非issueにもリアクションしていきましょう。

リポジトリをForkして作業

他社のリポジトリに貢献する際、通常はそのリポジトリをForkして作業を行います。
今回行った修正はこちらになります。

PRを提出

少しドキドキしながらPRの提出を行いました。




私はGoogle OSSに貢献するのが初めてだったのでCLAに署名する必要がありました。
こちらはリンクから簡単に行えました。

CLAとは?
CLA は Contributor License Agreement (コントリビューター ライセンス契約) の頭文字であり、オープンソース プロジェクトの主体と、コードを提供する個人開発者あるいは企業との間で締結される契約を意味します。

変更リクエストがありました

私の作業のダブルクォーテーションの位置の間違いです。
丁寧にsuggestion機能でレビューを頂きました。
恥ずかしい> <

上記を治すと、
他にもWindowsでのJobでtestが落ちる、などが発生しました。
こちらについてもしばらく時間がかかったもののWindowsのJobに対しては正しくshellの種類をセットしなければいけないと言ったものでした。

マージされました!

こうしてやっとPRがマージされることになりました。
初めてGoogle OSSに貢献できた...!!

終わりに

Google OSSへの貢献は今回初めてだったのですが、gmlewisさんが非常に優しくレビューをして頂いたりリアクションがあったりと、とても勉強になり非常に良い体験ができました。
OSS貢献は敷居が高く感じられることも多々ありますが意外とやればすんなり出来るものです。
是非ここまで読んでいただいた皆さんも気軽にOSS貢献してみてください。

ありがとうございました!

明日は@delucciさんの記事になります!お楽しみに!

採用頑張っています


もし弊社に興味を持って頂けたら個人宛のDMでもご連絡お待ちしております。

このエントリーをはてなブックマークに追加

コメント