プログラミング
メンテナーへのインタビュー
Interview with a Maintainer (nesbitt.io)
要約
月間8000万ダウンロードを誇る基盤的なプロトコルライブラリlibcapstanの唯一のメンテナーであるエリン・マーシュ氏へのインタビューです。マーシュ氏は、自身がどのようにメンテナーになったか、一人で巨大なライブラリを管理する苦労、そしてAIツールの現状での限界について語ります。AIは多くのプルリクエストを生成するものの、実用的な貢献は少なく、セキュリティ脆弱性の報告やベンダーとのやり取りも複雑な課題となっています。
全文翻訳
以下は、公開と持続可能性についてのポッドキャスト「Green Squares」のエピソード214のトランスクリプトです。長さと明確さのために軽く編集されています。トランスクリプションはOpenClaw-4.2によるものです。
TYLER: Green Squaresへようこそ、司会のタイラーです。長年のリスナーならご存知の通り、私はProof of Work(安らかに眠れ)でキャリアをスタートさせました。その番組から引き継いだ一つの信念は、テクノロジーの世界で最も興味深い人々は、あなたが聞いたこともないようなインフラを支えている人々だということです。皆さんもxkcdの漫画を見たことがあるでしょう。インターネット全体が、ネブラスカに住むある男性がメンテナンスしている一つのプロジェクトの上に成り立っているというものです。今日はその男性(実際は女性ですが)をお迎えしています。エリン・マーシュ氏は、Capstanプロトコルのリファレンス実装であるlibcapstanのメンテナーです。ダウンロードを再開したり、デバイスを同期したり、接続が悪い状態でアプリを更新したりしたことがあるなら、彼女のコードを実行したことがあるはずです。エリンさん、番組へようこそ。
ERIN: お招きいただきありがとうございます。
TYLER: では、数字を見てみましょう。驚異的です。月に8000万ダウンロード。約4万パッケージがあなたに依存しています。そして、それは基本的にあなた一人なのですか?
ERIN: 2023年までは3人いました。共同メンテナーの一人は子供ができたため辞めました。もう一人は昨年、農場を始めたため引退しました。なので、ほとんど私一人です、はい。
TYLER: 信じられない。
ERIN: ニュージーランドから電話しているので、今は何時でしょう?
TYLER: 午前6時です。
ERIN: その献身ぶり。
TYLER: OK、オリジンストーリーを教えてください。どうやって一人の人間が基盤となるプロトコルライブラリのメンテナーになったのですか?
ERIN: 私がそこでいくつかのバグを報告したのです。2019年のことで、職場でそれを使っていました。レジューム(再開)ロジックが不安定な接続でファイルを破損させる可能性がありました。私は再現手順と修正案を添えてレポートを送信しました。当時のメンテナーは、このプロジェクトに必要なエネルギーはまさにこれだと述べ、私にコミット権を与えてくれました。約1ヶ月後、リポジトリの転送招待を受け取りました。受け入れました。それが礼儀正しいことだと思ったからです。
TYLER: 彼はあなたの中に何かを見出したのですね。
ERIN: 彼はヨットに乗り換えていました。
TYLER: それは素晴らしいですね。
TYLER: では、AIの話に入りましょう。私があなたを招きたかったのは、それが理由なのです。あなたは一人で、これほど広範な領域をサポートしています。新しいツールは大きな助けになるはずですよね?日常的にエージェントを使っていますか?
ERIN: 色々試しました。しばらくCopilotのサブスクリプションを持っていました。
TYLER: どうでしたか?
ERIN: 賛否両論です。コードベースは2011年のC言語で、ツールはその点について意見を持っています。4月に、境界チェックを追加するように頼んだのですが、その過程でファイルをタブからスペースにフォーマットし直しました。リンターがそれをフラグ付けしたので、失敗を検知し、タブに戻しました。それによって末尾の空白文字が導入され、リンターがそれもフラグ付けしました。トークンが尽きるまでそのループを繰り返しました。何も返ってきませんでした。境界チェックは自分で書きました。
TYLER: 成長痛ですね。しかし、その軌道が私を興奮させます。貢献の側面はどうですか?夢は、エージェントが誰もやりたがらないロングテールな問題を拾ってくれることですよね。
ERIN: 今、私たちは多くのエージェントからの貢献を受けています。先月は週に約60件のプルリクエストがありました。丁寧で、フォーマットも良く、テストも付いています。ほとんどが、私たちが望まないことをしています。2016年のシンボリックリンク処理に関する問題があり、私たちはその立場を200回くらい説明してきましたが、エージェントはその問題を見つけて修正し、それぞれに個別に指示を出す必要があります。リポジトリのルートにAGENTS.mdを追加し、自動貢献者に何かを開く前にトラッカーを確認するようお願いしました。それは今やリポジトリで最も編集されているファイルです。彼らはそれに対する修正を送ってきます。タイポの一つは本物だったので、それをマージしました。
TYLER: 週に60件ですか。そのうちいくつかは価値があるはずです。
ERIN: 今年は3件が役立ちました。一つは実際、素晴らしかったです。リトライロジックの競合状態でしたが、私たち誰も10年間気づいていませんでした。誰がそのエージェントを実行したのか感謝したいのですが、アカウントはすでに削除されていました。
TYLER: では、実際に状況を改善するのは何でしょうか?これらのツールを開発している人々が聞いていて、彼らは聞いているのです。エージェントに何をしてもらいたいですか?
ERIN: ボトルネックはコードではなく、レビューです。本当に望むのは…
TYLER: その考えは保留にして、いくつか宣伝を挟みます。Green SquaresのこのエピソードはForemanがお届けします。あの感覚を知っていますよね。日曜の夜、あなたの貢献グラフにギャップがあり、サイドプロジェクトは勝手に完成しません。Foremanは、あなたが眠っている間にデプロイする自律型エンジニアです。どんなリポジトリでも、あなたのものか他人のものか、それに apuntar してください。Foremanはオープンな問題を特定し、修正を書き、レビューコメントにあなたの声で返信し、マージされるまで続けます。Foremanユーザーは、2000以上のオープンソースプロジェクトで、月に平均340件のプルリクエストを開いています。tryforeman.dev/greenにアクセスして、最初の3ヶ月間20%割引を受けてください。Foreman。シップし続けましょう。
そして戻ってきました。エリンさん、話を続けてください、何が助けになりますか?
ERIN: どこまで話したか覚えていません。
TYLER: 思い出すでしょう。
TYLER: セキュリティについて話しましょう。libcapstanはあらゆるものに使われており、あらゆるものには露出が伴います。報告がどのように入ってくるか説明してもらえますか?
ERIN: 今月は約10件です。数年前は1〜2件でした。ほとんどが自動化されたもので、スキャナーが見つけたものをモデルが書いたレポートに包んだものです。レポートは長く、非常に自信に満ちていますが、約15件に1件が実際の問題を記述しています。なので、実際の作業は検証であり、それは私に残っています。なぜなら、それはあなたが正しくやらなければならない唯一のことだからです。
TYLER: なるほど、これはまさにフロンティアモデルが役立つ場面のように思えます。検証自体にAIを使ってみましたか?
ERIN: やりました。昨年11月です。各受信レポートを受け取り、影響を受けるバージョンをビルドし、サンドボックスでエクスプロイトを再現しようとするエージェントを設定しました。2週間うまくいきました。
TYLER: そして?
ERIN: アカウントが禁止されました。エクスプロイトを再現することは、プロバイダー側から開発することと同じように見えます。異議を申し立てたのですが、異議申し立てフォームでは、何を行っていたかを説明するように求められ、それを説明したことが同じフィルターをトリガーしました。なので、異議申し立てによって私も禁止されました。
TYLER: [笑] 何か道はあるはずです。リサーチティアとか、何か。
ERIN: フォームがあります。そこにはあなたの所属機関を尋ねられます。
TYLER: 人間の研究者についてはどうですか?セキュリティコミュニティは最近多くのことを発見していますが、その関係は価値があるはずです。
ERIN: 個人はほとんど素晴らしいです。企業はより厄介です。2月に、あるベンダーが私たちのヘッダー解析で実際の問題、ひどい問題を見つけました。彼らの分析は良かったです。彼らはまた、それを火曜日に、概念実証を含めて、公開イシュートラッカーに直接提出しました。彼らのブログでの発表は翌水曜日に予定されており、彼らのポリシーは90日または公開の早い方です。脆弱性は、私がレポートを読み終える前に名前とロゴを持っていました。カウントダウンクロックがありました。私は26時間で修正をリリースしましたが、彼らの投稿はそれを「歴史的にリソース不足のプロジェクトからの励みになる対応」と描写しました。その後、彼らの営業チームは、私たちに依存している企業に、libcapstanの強化版を売り込みました。
TYLER: どのように強化されたのですか?
ERIN: 私が知る限り、それは私のセキュリティパッチが適用された私たちのリリースです。それらはエンバーゴリストにあるので、私がリリースする数日前に私の修正をリリースできます。
TYLER: 持続可能性について話したいのですが、まず、逆の側面です。あなたもダウンストリームの消費者です。あなた自身の依存関係ツリーがあります。あなたの立場から見ると、それはどのようなものですか?
ERIN: 私たちは4つの依存関係を持っています。以前は6つでした。昨年、それらを監査したところ、一つ、チェックサムライブラリに問題があることがわかり、パッチを添えてすべてアップストリームに報告しました。メンテナーは私に感謝し、すべてをマージしました。そして2週間後、転送招待状が届きました。今回はそれが何であるか分かりました。私たちはそのライブラリに依存しているので。
TYLER: またですか?
ERIN: 2度目です。今では私の依存関係ツリーのかなりの部分を自分でメンテナンスしています。アップストリームにバグを報告するのをやめました。
TYLER: そして、6つから4つになったと言いましたね。
ERIN: 削除したもう一つは、2014年から一つの関数のために依存していた小さなライブラリだったので、その関数をインライン化しました。そして、そのメンテナーから長いメールが届きました。なぜなら…