>100 Views
May 29, 26
スライド概要
PHP勉強会@東京 #187 #phpstudy
https://phpstudy.connpass.com/event/391794/
AIと⼆⼈三脚で OSSにコントリビューションしてみた PHP勉強会@東京 #187 デロ | @dero1to
所属 株式会社キュービック Webエンジニア 技術 Ruby、Rails、PHP、Laravel 趣味 ドライブ、ダーツ、アニメ、⾃宅鯖 カンファレンスのスタッフ、配信 デロ @dero1to 運営 ・PHP勉強会@東京 ・PHPカンファレンス⼩⽥原・愛媛 2026 ・EMTEC
OSSに Contribution したことありますか?
⾃分は今回はじめて OSSに Contributionしました
LT(体験談)
今回、初めて⾃分がContributionしたOSS
PHPのじゃなくてごめんなさい!
今回、初めて⾃分がContributionしたOSS
なぜContributionしたのか
本業で困ったから
なぜ困ったのか 担当しているシステムで⾊々なライブラリのバージョンアップの対応をし ていたところ、Google広告のSDKを更新した際に認証が通らなくなった
困ったけどどうしよう ● まずは Issuesを⾒に⾏った
困ったけどどうしよう ● まずは Issuesを⾒に⾏った → 他の⼈で困っているといった様⼦は無い。。
困ったけどどうしよう ● まずは Issuesを⾒に⾏った → 他の⼈で困っているといった様⼦は無い。。 → 急ぎではなかったので、⼀旦保留にした
困ったけどどうしよう ● まずは Issuesを⾒に⾏った → 他の⼈で困っているといった様⼦は無い。。 → 急ぎではなかったので、⼀旦保留にした そろそろなんとかしないと⾏けなくなってきた
困ったな
AIの⼒を借りよう
ただし、AIの⼒は借りつつも 出来る限り⾃分が理解して出したい
AIと⼈間の⼆⼈三脚
まずは調査フェーズ ● 原因を特定するためにどのバージョンから発⽣したかを調べる
まずは調査フェーズ ● 原因を特定するためにどのバージョンから発⽣したかを調べる → v38.0.0 以降で発⽣
まずは調査フェーズ ● 原因を特定するためにどのバージョンから発⽣したかを調べる → v38.0.0 以降で発⽣ ● v37.0.0~v38.0.0の間でどんな変更が合ったかをAIと共に調べる
まずは調査フェーズ ● 原因を特定するためにどのバージョンから発⽣したかを調べる → v38.0.0 以降で発⽣ ● v37.0.0~v38.0.0の間でどんな変更が合ったかをAIと共に調べる → MetadataInterceptorというのが追加され、 代わりに今までの認証情報の受け渡しの処理が削除されていた
まずは調査フェーズ ● 原因を特定するためにどのバージョンから発⽣したかを調べる → v38.0.0 以降で発⽣ ● v37.0.0~v38.0.0の間でどんな変更が合ったかをAIと共に調べる → MetadataInterceptorというのが追加され、 代わりに今までの認証情報の受け渡しの処理が削除されていた MetadataInterceptorって何者?
機能追加のPullRequestを⾒てみる メタデータヘッダーを Google API Clientで共通化するために導⼊されたものらしい
対応できるなら MetadataInterceptorの 流れに沿った⽅がよさそう
AIに⾊々調べてもらった
AIに⾊々調べてもらった google-ads-googleads <AIからの回答> gapic-common で gRPC を呼び出し をする際のオプションをgRPC側が破棄 してしまっている gapic-common grpc
AIに⾊々調べてもらった google-ads-googleads <AIからの回答> gapic-common で gRPC を呼び出し をする際のオプションをgRPC側が破棄 してしまっている gapic-common grpc なるほど、 よく分からん
AIに⾊々調べてもらった google-ads-googleads <AIからの回答> gapic-common で gRPC を呼び出し をする際のオプションをgRPC側が破棄 してしまっている gapic-common gRCP gRPCにバグがありそう
gRPCのバグの情報がないか調べる
gRPCのバグの情報がないか調べる
gRPCのバグの情報がないか調べる コードの情報までは難しくて追えなかったが時系列を追いかけてみた
gRPCのバグの情報がないか調べる コードの情報までは難しくて追えなかったが時系列を追いかけてみた 数年前にgRPCで不具合が起票されていたが、流れて時間経過でクローズ されてしまった。その後Issuesの再Openの話が上がっていたものの結局 再Openされず、ちょうど⾃分が⾒に来る少し前に別の⼈が新たにIssues が作成されていた
ここで悩みます
何を悩んだのか ● 結局原因のちゃんと理解したわけではない ● gRPCの問題を直す技術⼒はない ● 今回使いたいライブラリを使えている⼈がいそう
半分メンテナーに相談する 気持ちで出してみよう
Issuesを書く ● どんなバグが起こっていそうか ● 再現するためのコードとバージョンの情報 ● エラーログ ● 回避案
⽇本語では説明できるけど、 英語でちゃんと伝えられるのか
AIを使って英語化する 複数のAIモデルを使って、伝わるかを推敲 ⽇本語 -> 英語 -> ⽇本語にしたり、 ニュアンスの気になるところを直していく
いざ、Issues!
Issues出せた!😄
いや、、 せっかくなら もうちょいやってみよう
PullRequestを作る ● MetadataInterceptorが⼊る前のコードを復元する ● 恐らくgRPC側のバグが修正されれば治りそうなのでその旨を記録 ● ちゃんとテストコードを書く
PullRequestも出せた!😄
😴
🌅
翌朝 メンテナーの⽅がApproval & Merge してくれていた!
数⽇後
無事にリリース ⼿元の環境にインストールして、動作確認 無事に新しいバージョンを利⽤できるように!
まとめ ● ⾃分が困っている課題は⾃分が表現しないと伝わらない ● AIを使いつつも⾃分なりに努⼒をしてみると結構楽しい ● ⾃分が寝ている間にもOSSをメンテナンスしてくれている⼈がいる OSSを作っている⽅々 いつも本当にありがとうございます