Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AIと二人三脚で OSSにコントリビューションしてみた/I tried contributin...
Search
デロ
May 28, 2026
Programming
11
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AIと二人三脚で OSSにコントリビューションしてみた/I tried contributing to OSS working hand-in-hand with AI
PHP勉強会@東京 #187 #phpstudy
https://phpstudy.connpass.com/event/391794/
デロ
May 28, 2026
More Decks by デロ
See All by デロ
Bref Cloudに入門する / Getting Started with Bref Cloud
dero1to
0
65
リリースされたばかりのLaravel Cloudを触ってみた / try-the-just-released-Laravel-cloud
dero1to
0
100
PHPを使ってFFmpegに入門してみる / Introduction to FFmpeg using PHP
dero1to
0
65
ISUCON、今年も参加してみた / ISUCON, I challenged it again this year.
dero1to
0
500
カンファレンスの「アレ」Webでなんとかしませんか? / Conference “thing” Why don't you do something about it on the Web?
dero1to
2
280
JetBrains Plugins
dero1to
0
110
私が技術イベントで 配信をする理由 / Why I live-stream technical events
dero1to
0
750
技術イベントをもっと低遅延でお届けする技術
dero1to
0
120
JetBrainsIDEに入門してみた
dero1to
0
74
Other Decks in Programming
See All in Programming
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
5.8k
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
280
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
780
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
170
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
260
OSもどきOS
arkw
0
560
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
250
ふつうのFeature Flag実践入門
irof
7
3.9k
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
670
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
540
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.7k
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
250
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
360
Into the Great Unknown - MozCon
thekraken
41
2.6k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
280
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
150
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.7k
Transcript
AIと⼆⼈三脚で OSSにコントリビューションしてみた PHP勉強会@東京 #187 デロ | @dero1to
@dero1to 所属 株式会社キュービック Webエンジニア 技術 Ruby、Rails、PHP、Laravel 趣味 ドライブ、ダーツ、アニメ、⾃宅鯖 カンファレンスのスタッフ、配信 デロ
運営 ・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 gapic-common grpc <AIからの回答> gapic-common で gRPC を呼び出し をする際のオプションをgRPC側が破棄
してしまっている
AIに⾊々調べてもらった google-ads-googleads gapic-common grpc なるほど、 よく分からん <AIからの回答> gapic-common で gRPC
を呼び出し をする際のオプションをgRPC側が破棄 してしまっている
AIに⾊々調べてもらった google-ads-googleads gapic-common gRCP <AIからの回答> gapic-common で gRPC を呼び出し をする際のオプションをgRPC側が破棄
してしまっている 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を作っている⽅々 いつも本当にありがとうございます