オープンソースソフトウェアは現代の開発環境の基盤であるが、AIの台頭により深刻な危機に直面している。PRスパムの激増、質の低い貢献者の増加、維持者の燃え尽き症候群が蔓延し、GitHubは有効な対策を講じていない。資金調達も困難になり、オープンソースプロジェクトの持続可能性が脅かされている。Vouchなどの新しいツールが登場しているものの、根本的な解決には維持者への感謝と経済的支援が不可欠である。

オープンソースが私のキャリアを作った
オープンソースは私にとって信じられないほど重要なものです。自信を持って言えますが、オープンソースソフトウェアがなければ、今の私はここにいませんでした。私がキャリアをスタートさせ、YouTubeに参入し、これらすべてを実現できたのは、オープンソースのおかげです。オープンソースのない人生は、正直想像するのが難しいです。だからこそ、今とても怖いのです。
ついに、AIがオープンソースに実際の影響を与えるポイントに到達しました。率直に言って、その影響は良いものではありません。いえ、Redditでダウンロードボタンが見つけられないと怒っている人たちの話をしているわけではありません。そういった投稿も面白いですが、もっと深刻な問題があります。例えば、Tldrawが外部からの貢献者によるPRを今後自動的にクローズすると発表したこと。
Node.jsのようなプロジェクトでバグ報告の要件が厳しくなっていること。もう単純にフラグを立てるだけではダメで、AIスパムがあまりにも多いからです。あるいは、今年初めに取り上げたTailwindの問題。チームやプロジェクトへの資金調達能力に大きな影響を与えています。これは良くありません。このまま進んでいけば、オープンソースを破壊するだけでなく、ソフトウェア全体を破壊する可能性があります。
業界として私たち全員が頼れる中核的な部品を持つことは、ソフトウェア開発の成功に不可欠です。そして、AIがどれだけ優れていようと関係ありません。もしAIがこれを奪ってしまったら、私たちは終わりです。つまり、私たちは少し戦わなければなりません。経験豊富な開発者として、できる限りのことをして、この螺旋がオープンソースを殺すのを防ぐことが、これまで以上に重要になっています。
提供:Blacksmithが解決するCI問題
今、オープンソースにはたくさんの問題があり、その中で最も大きいものの一つが資金調達です。ありがたいことに、スポンサーが大いに助けてくれています。今日のスポンサーのように。
皆さんは私が最近立ち上げた新しいプロジェクト、T3 Codeを見たかもしれません。AIとコーディングするための最高の方法です。でも、いくつか問題があります。具体的には、この数字です。
私たちが受け取っているプルリクエストの数が異常なんです。すべてのユーザーに対してデフォルトでCIを実行して待たなければならないとしたら、さらに異常なことになります。デフォルトでオンにすれば、巨大なセキュリティリスクの可能性があります。でも、デフォルトでオフにして、アクションを実行したいときにボタンをクリックするようにすれば、コードが動くかどうかさえわからないまま、永遠に待つことになってしまいます。
それが今日のスポンサー、Blacksmithを使い始める前の話でした。GitHub Actionsを実行する最高の方法です。たった一行の変更を行うだけで、本当に文字通り一行の変更なのですが、アクションが2倍速くなり、コストは半分になります。はい、ほとんどの場合、75%の節約になります。信じられませんか。PRを自分で見に行けばいいんです。
このPRは私が提出したものでさえありません。文字通り、Blacksmithダッシュボードのオンボードボタンをクリックしただけで、このPRを私のために提出してくれました。このコードベースは様々なプラットフォームでElectronをビルドしているので、もっと複雑かもしれないと思っていました。でも違いました。文字通り、Ubuntu latestからBlacksmith for CPUに変更しただけです。それだけでした。すべてが動作しました。
すべてが動作しただけでなく、はるかに速く動作しました。このアプリのCI時間は約2分半から1分未満に半分以上短縮されました。さらに素晴らしいのは、ダッシュボードです。少し不安定なテストがいくつかありました。そして、ダッシュボードのおかげで、どのテストが失敗していて、どれが成功しているのか、そしてその理由を把握するのがとても簡単になりました。
真面目な話、これってすごくないですか。実際に成功と失敗のメトリクスがあって、昨日のこの時間に失敗が急増したとか見られるんです。仕事で何がうまくいっていて、何が間違っているのかを把握するのにとても役立ちます。ここをクリックすれば、時系列で失敗と成功がどこで起きていたかを見ることができます。
特定のイベントを調べて監視することもできます。何かが失敗しているときに、何が間違っているのかを把握するのが突然とても簡単になりました。時間とお金を無駄にするのをやめて、今日soy.link/blacksmithでサインアップしてください。
PRスパムとSlop問題の深刻化
いくつかの角度からこの問題に取り組みたいと思います。具体的には、PRスパムとslop問題から始めます。
でも、それだけではありません。より愚かで怒りっぽいユーザーの問題、インストール対プロンプトの問題、そしておそらく最大の問題は資金調達の問題です。まず、PRスパム問題から始めましょう。私はこの問題をかなり前から認識していて、Tldrawのような人たちに多くの共感を持っています。彼らは外部からの貢献を単にクローズし始めるという変更を発表しました。なぜなら、彼らはそれらで溢れかえっているからです。
この問題がどれほど深刻か知っていましたし、過去に他の維持者がこれに対処するのを助けてきました。でも、この問題は今、私にとってはるかに身近になりました。なぜなら、私たち自身がそれを経験しているからです。約5日間公開されているT3コードベースには、150のオープンなPRがあります。念のため言っておきますが、私たちは貢献を受け付けていないと明示しているにもかかわらず、最初の2日間で1日100件のPRを受け取りました。
最終的に、すべてのPRで同じことを何度も何度も言うのに疲れたので、これを追加しました。私たちは積極的にPRを受け付けていません。それでもissueやPRを開くことはできますが、クローズしたり、永遠に延期したり、見ることさえない可能性が高いことを承知の上でお願いします。これがイライラするように聞こえるとしたら、実際にそうだからです。プロジェクトはまだ非常に初期段階です。
スコープ、品質、方向性をコントロール下に保とうとしています。ええ、システムの理解についてのソフトウェア開発には、本当に深刻な問題があります。他にどう説明すればいいかわかりません。プロジェクトを自分で構築すると、システム全体を理解できます。AIで構築すると、部品がどのように組み合わさるかは理解できるかもしれませんが、AIに物事を任せれば任せるほど、システム全体への把握は必然的に低下していきます。
PRを受け入れ始めると、似たようなことが起こります。外部ソースから多くのPRを受け入れ始めると、さらに悪化します。そして、それらがAIで構築されていると、slopが積極的に拡大していきます。コードベースの100%を理解していて、5%理解していない変更をマージし、それが何度も何度も繰り返されると、あっという間にコードベースのほとんどを実際には理解していない状態に陥ります。
そうなると、コントロールを維持するのがはるかに難しくなります。以前は、この状態になる唯一の方法は、あまりにも多くのPRを受け入れることでした。今では、エージェントでコーディングすることで自分でこの状態になれます。そして、エージェントでコーディングし、他の人のエージェントによるPRをマージすることで、指数関数的に悪化させることができます。それは、すべてに対処できると仮定しての話です。なぜなら、150件のPRがあるからです。かなり激しいです。
これは対処すべきことがたくさんあります。私たちが試していることの一つはVouchです。解決策のところでそれについて詳しく話しますが、今この状況がどれほど悪いかを本当に強調したかったんです。Juliusと私だけでこのペースですべてのPRに適切なレビューを行える世界はありません。
同時に、5日間しか公開されていないプロジェクトに、すでに33人の貢献者がいます。これは本当にすごいことです。人々がこのようなコードベースにこれほど早く入り込めるという事実は利点です。そして、それがどれほど強力かを軽視したくありません。本当にすごいことだからです。でも、それには私たちの側でかなりの作業が必要でした。
個人的には、土曜日のほとんどと文字通り日曜日のすべてを、ただ座ってPRを調べ、物事をテストし、新しいリリースを出荷し、それに対処することに費やしました。そして、私はそういったことをするのが好きな人間です。それでも私にとっては消耗するものでした。週末ずっとトリアージし、PRを管理し、issueを調べていたので、月曜日は疲れすぎて何もできませんでした。
PRとissueを追跡するのを助けるために、2人を呼ばなければなりませんでした。狂っています。想像していたよりもはるかに多くの作業です。そして、すでに多くの作業になると想像していました。この比率を見てください。これは以前には決して起こらなかったことです。10%を超えるfork対star比率です。スターを押したユーザー10人につき、1人以上がforkをクリックしました。これは狂っています。
これは、プロジェクトに変更を加えたい、貢献したい、関わりたいと思う人の数が異常に多いということです。これはオープンソースでこれまで見たことのないものです。Reactの比率はここで私たちのものより悪いと予想していました。実際にはもっとクレイジーでした。だから、その見解を少し考え直さなければならないかもしれません。ええ、その10%の比率は実際にはかなり一貫しているようです。
これはTypeScriptで、同じく約10%です。だから、私が時々悪い直感を持っているのを見るのが好きなので、これは残しておきます。それは私の側の悪い直感でした。この残酷な比率にこれほど早く到達するプロジェクトは多くないと想像します。でも、ええ、そういうものです。そして、PRがこのタイプのオープンソースの現在抱えている最大の問題であれば良かったのですが。
より愚かで怒りっぽいユーザーたち
悲しいことに、もう一つ大きな問題があります。それはRedditのこの古典的な投稿に少し関係しています。「コードなんてどうでもいい。ただ愚かなアプリケーションをダウンロードしたいだけだ。なぜコードがあるんだ。ただ.exeを作って渡してくれ」。この投稿が10,000のアップボートを獲得し、このように炎上したこと。
これは、物事がどれだけ変わったかを示しています。皆さんの多くは、これから話すことに共感できると思います。私たちのほとんどは、かなり技術的な人々です。私たちはただコンピュータが好きなんです。だから、今日あなたがこのビデオを見ることを選んだその日に、オープンソースとAIについてのビデオを見ているんです。
深夜まで起きてこのビデオを見ているかもしれません。私たちは平均的な人ではありません。おそらく平均的な開発者でもありません。このコミュニティは、率直に言って、かなりのオタクでいっぱいです。そして、それは素晴らしいことです。私たちについてそれが大好きです。今寝ているべきなのに、私が録画しているのをライブで見て、私が気になっていることについて素晴らしいコンテンツを作るのを手伝ってくれるオタクたちがたくさん集まってきてくれるという事実が大好きです。
これを持ち出すのは、そのために人生で異なる経験をすることがいくつかあるからです。今想像しているものの一つ、そして皆さんの多くがこれに共感できると思います。チャットで共感できる人はこれです。家族、高校のランダムな友達、そして人生の人々から、コンピュータについてのランダムな質問のテキストをたくさんもらっていました。
「Instagramのアカウントを取り戻すのを手伝ってくれる?」から「どのMacBookを買えばいい?」、「なぜカメラが曇っているの?」まで。人生であなたが知っている人が持っているあらゆる曖昧な技術的質問は、あなたが答える人です。なぜなら、あなたは彼らが知っている技術を理解している人だからです。そして、以前に1行のコードを書いたことがあるか、あるいはGoogleで仕事を得たことがあるので、それだけで、人生の非技術的な人全員がこの種のことであなたにスパムを送り始めるのに十分です。
さて、面白い質問をします。実際、皆さんがここで何と答えるかわかりません。AIが爆発的に普及し始めてから、技術的な質問は増えましたか、それとも減りましたか。皆さんがこれにどう答えるか、とても興味があります。さて、質問が少し上がったので、私がこれから言うことを言う前に、決断を選んでください。
個人的には、はるかに少なくなっていることがわかりました。これは興味深いことです。以前よりもこの種の質問を大幅に少なく受け取っています。でも、さらに興味深いのは、これらの質問の内容です。今受けている質問が違うような気がします。突然、ランダムなTwitchストリーマーが、AIとチャットするためではなく、ストリームにチャットを表示するためのバイブコーディングされたチャットアプリについて私に連絡してきたり、以前Twitchで一緒に働いていたプロダクト側の人々が、ランダムなビデオ問題に対する独自のソリューションを構築していたり、高校時代から知っている人々が友人のレストラン向けのアプリを構築していたりします。誰もコーディング方法を知らず、全員が混乱していて、AIが彼らをかなり遠くまで連れて行きます。でも最終的に起こることは、技術用語でいっぱいの奇妙な質問を受け取ることです。そのうちのいくつかは正しく使用されていますが、質問自体が何か欠けているんです。
説明するのは難しいですが、質問が単純であっても、質問を解析するために必要な精神的エネルギーの量が大幅に増加しているという不気味なことです。奇妙です。それはベンチに似ています。ベンチのような質問を受け取ります。これは最初は見えるよりも深いところまで及んでいると感じます。
そして、私自身がオープンソースの維持者および開発者として、これを経験したことを知っています。T3 ChatサブがT3 Codeで動作しないことに本当に混乱している人がたくさんいました。ChatGPTサブが昔APIアクセスを提供しなかったことに本当に混乱している人がいました。
通常いるはずの場所からはるか遠くに存在するあらゆる種類のことについて混乱している人がいて、今非常に混乱した状態にあります。なぜなら、彼らは突然これまでになく深いところにいるからです。そして、これは維持者やコミュニティの人々にとって特に大きな負担です。create T3 appチャンネルのようなところで見る質問の質は、有意に低下しています。
TypeScriptやTRPCのようなランダムなことについて受ける質問の質は、笑えるほど低下しています。それを超えて、これらの人々の中には、幻覚を見るほど理解していない人もいます。Redditで送られてきたこのコメントについて、あまりにも多く考えています。「Theoが、Reactは死んでいて、そのためにNext.jsがあり、Reactは絶対に必要ない、なぜならReactができることすべてをより良く行うからだ、と言っていたのを覚えています」。
この特定のコメント投稿者がAI以前に1行のコードでも書いたことがある世界を想像できません。これは、今コーディングを学んでいる非開発者に特有の特定のタイプの脳の腐敗によってのみ発生し得る幻覚です。
そして、彼らは想像以上に多くを出荷しているので、少し神コンプレックスを持っています。これらの人々は信じられないほど権利意識が強く、信じられないほど有毒で、維持者としては本当に士気を下げられます。同じ線に沿って、私を困らせた特定のPRを強調したいと思います。リポジトリに古いto-do MDファイルがあり、ある時点で作業していたランダムなことが入っていました。
そして、誰かがこれらすべてを修正しようとするナンセンスなPRを提出し、結局他のものを壊しただけでした。PRで溢れていたので、彼らは私たちから何の反応も得られませんでした。それで彼は私と最近PRがマージされた他の2人をランダムにタグ付けしました。このことにとてもイライラしました。なぜなら、覚えていますか、私は睡眠不足の状態でこの日曜日のセッションの深いところにいてPRを調べていたのに、修正する半分がすでに修正されているPRで誰かが私にスパムを送ってきた通知を受け取ったからです。
それで、この有用なフィードバックに対して、この人がどう反応したと思いますか。彼の貢献方法が悪かったというフィードバックに対して。ええ、たくさんの人にタグを付けても、マージする可能性は高くならないと言ったのは少し厳しかったです。ただリポジトリからブロックしたくなるだけです。ひどいエチケットです。さようなら。でも、これはオープンソースの維持者として学ばなければならない教訓です。
このような間違いを自分でたくさん犯して、適切なオープンソースのエチケットを知るポイントに到達しました。多くの人から、私はここであまりにも厳しすぎると言われました。そして、大ファンの私の友人はそういう意味ではありませんでした。ブラジルの早朝でした。少し興奮しました。エチケットについて話しましょう。そして、あなたが示したエチケットは最も貧弱なものの一つでした。
あなたのチャンネルやコンテンツに対して持っていたイメージが本当に損なわれました。私はあなたが生まれる前からプロジェクトに貢献してきました。そのような態度で、これまで一度も受け取ったことのないあなたのYouTubeコードも含めて。自由に私をブロックしてください。大人ですね。これは、AI以前にコードを書いたことがない人です。間違いなく。そして約束しますが、あなたは31年前にコードに貢献していませんでした。
そして、これがホットテイクです。間のメッセージを無視してください。なぜなら、現実ははるかにシンプルだからです。これをする人のタイプは、これをする人と全く同じタイプです。これらは同じ人々です。そして、私が彼をブロックしたので、Theo is a childという別のアカウントを作って、再び私をからかいに来られるようにしました。これはナンセンスです。そして、これはオープンソースの維持者が常に少し対処しなければならなかったタイプのことですが、突然たくさん対処しなければならなくなりました。
セキュリティリスク:XZバックドア事件
そして、これはPRスパムについてではありません。これは、善意から心からオープンソース保守を行っている人々のエネルギーの劣化についてです。ご存知のように、古典的なXKCDの依存関係の図、ネブラスカのランダムな人が2003年以来感謝されずに維持しているこのランダムなパッケージ。彼らの仕事は難しくなりました。
そして、私たち全員がその事実を恐れる必要があります。一番下のこの人は、その上のすべてを支えている人ですが、彼らはすでに信じられないほど困難な仕事をしています。彼らはすでに諦めるギリギリのラインにいます。彼らは突然、諦める理由がさらに増えました。大幅に多くの理由です。それは最悪です。これは、この業界に本当の長期的な損害を引き起こす可能性があります。
これが、XZバックドアのようなことが起こる仕方です。もし話を知らないなら、すぐにTLDRします。XZは、特にLinuxエコシステムで多くのオープンソースソフトウェアで使用されている本当に重要な圧縮ライブラリです。XZを維持している人は、それを作成してから徐々に燃え尽きていて、その後、「あえてこれをマージしないのか。何もしていないのに維持し続けるなんて」という本当に意地悪なメールでスパムされ始めました。でも、この1人の維持者、Jia Tanが現れて、実際に本当に役に立ちました。そして最終的に、Jia Tanがプロジェクトを引き継ぐことを申し出ました。それ以来、私たちは、元の維持者をスパムしていたそれらのアカウントは、単に悪意のあるオープンソース貢献者ではなかったと信じています。これらは、この維持者にプロジェクトを諦めさせるように社会工学を試みていた偽のアカウントでした。人々にこれを行うことは、より難しくなったのではなく、より簡単になりました。
これは、私たちが本当に本当に恐れる必要がある攻撃のタイプです。これを行うことは、AIのPRをスパムしているだけの善意の人々のように見せることができるようになったので、はるかに簡単になりました。一晩スクリプトを構築して、すべての主要なオープンソース維持者の人生をすぐに溢れさせ、台無しにすることができました。特に自分のプロジェクトを持っている場合は、比較的簡単です。
15個のソックパペットアカウントを作成し、それらすべてのPRをT3 Codeにマージし、他のプロジェクトにPRでスパムを送り始め、エージェントオーケストレーションレイヤーをセットアップしてすべてをスパムし、その後、維持者に「これをマージしないなんて、どういうこと。あなたは仕事ができない」とメールを送り始めれば、最終的に彼らは辞めます。
適切な悪意のある人が適切なバックグラウンドを持っていれば、今日私たちが依存しているソフトウェアの半分を文字通り破壊することは非常に簡単です。恐ろしいことです。他の全員のためにオープンソースを台無しにすることがこれほど簡単だったことはありません。そして、圧倒的に最大の問題は、左上のロゴです。GitHubは、この問題を解決するために何もしていません。
GitHubの怠慢と不十分な対策
これら2つについては後で触れますが、これら2つについてはGitHubについて文句を言いたいです。GitHubは私たちを救ってくれません。面白いことに、私は以前これについて話したことがあり、AIに関してさえもありませんでした。GitHubのスパム問題についてビデオを作りました。なぜなら、GitHubは、検索エンジンのインデックス作成など、非常に多くの異なるツールや多くの異なるものによって使用されてきた、ある程度信頼できる情報源だからです。
GitHubはGoogleでうまく機能します。多くのスパマーはこれに気づき、Shad Cnuiのような本物のプロジェクトにポルノリンクの束でスパムを送り始めました。これは偽のスクリーンショットではありません。これは、実際のShad Cnui PRリストの実際のスクリーンショットです。そして、私がビデオを作成し、TwitterでGitHubを公に非難し、GitHubの友人たちと多くのつながりを引っ張って、彼らがスパム検出やバルク削除や禁止ツールを導入し始めるまでかかりました。
これ以前は、リポジトリから貢献者を禁止する方法さえありませんでした。狂っています。彼らは、このプラットフォームで私たちが維持しているコミュニティの世話をするために必要な最も基本的なことにさえ、あまりにも遅れています。そして、私はここで尻から話しているわけではありません。多くの人は「ああ、Theoは一度Webアプリを構築したから自分は何でも知っていると思っている」と言いたがります。
違います。私は信じられないほどのチームと一緒にインターネット上で最高のモデレーションプラットフォームを構築しました。彼らが構築したので、私が構築したとさえ言うべきではありません。私はただ、成功のポイントまでそれを導くのを助けることができただけで、その時そのチームにいることができてとても幸運でした。それが私のキャリア全体を変えました。それは、TwitchのMod Viewダッシュボードです。
このダッシュボードは、モデレーターとして、または独自のモデレーターチームと一緒に、希望する方法でモデレーションプラットフォームを形作ることができるように、完全にカスタマイズ可能に構築されました。ここのチャットでも見られるように、非常に多くのものを構築しました。この6年前の愚かなスパム訴訟PRです。誰かがそれを削除したようで、消えました。なぜなら、ここには本当のモデレーションツールがあり、スパムである可能性があると検出されたときにデフォルトでキャッチされ、私たち維持者の1人がこれを許可するかどうかを選択しなければならないからです。
これは大丈夫だと思います。私はそれを放棄しません。でも見てください。メッセージがフィルタリングされた理由とそれらに対して誰かが行ったアクションを示すAutomod Qがあります。Twitchは、ゲーマーがゲームスタジオについて文句を言うためのストリーミングプラットフォームです。でも、安全性が優れたプラットフォームを作るためにどれだけ重要かを知っていたので、はるかに優れたモデレーションツールを構築しました。
なぜ、私の4人のチームが7か月でTwitchのためにより良いモデレーションツールを構築できたのに、何千人ものエンジニアを抱えるGitHub、そのうち何百人も安全性とプラットフォーム保守に専念しているのに、10年間でそれを構築できなかったのか。狂っています。そして、彼らの名誉のために言うと、YouTubeのツールもこれに関しては本当にひどいです。本当に本当に悪いです。
YouTubeには優れたシャドウバンのようなものがあり、人を隠すことができます。彼らは自分のコメントをまだ見ることができるので、自分が禁止されたことを知りません。これは好きです。ストリーミング中にTwitchチャットを表示するので、Twitchでそのように誰かを隠すのは難しいです。
でも、ええ、ほとんどの場合、YouTubeのモデレーションは比較すると最悪です。そして、GitHubのものは存在しません。そして今、私たちはコミュニティとして、独自のソリューションを構築しようとして立ち往生しています。最後までソリューションをカバーするのを待つつもりでしたが、これらの部分についてここで議論しようと思います。
解決策を模索:Vouch、PR Statsなど
いくつかのプロジェクトがこれを解決しようとしているのを見てきましたが、私が見た解決策のいくつかは実際にかなりクールです。最初に見たものの一つは、以前Vercelで働いていたRhysからのものでした。彼は現在Open Codeにいます。彼はまた、DiscordのQ&Aチャンネルを検索可能なWebサイトに変えるツールであるAnswer Overflowを構築しました。
彼は、多くのPRが入ってくる多くのオープンソースのものを持っていて、貢献の履歴に基づいて誰のPRを見る価値があるかを識別しやすくしたかったので、PR Statsを作成しました。これは、あなたのPRの何パーセントが最終的にマージされるか、どこにPRを提出したか、どのような種類の作業を行ったかを示します。これは素晴らしいです。
本当に本当に気に入っています。とはいえ、このタイプのカルマは構築および維持するのが難しく、前に述べたような戦略を通じて偽造するのが奇妙なほど簡単です。それがすべてではなく、また新しい開発者や貢献者をブロックすることになるので、私が必ずしも好きではない方法でもあります。これは有用な統計です。このようなものを絶対にマージして、ツールに組み込むべきです。
でも、もっとできることがあります。そして、私はハンズオンアプローチが本当に好きなので、Mitchellが作成しているものに本当に興奮しています。彼を知らない場合、彼はGhostyとTerraformを作った人です。Mitchellは自分のことを知っています。彼は、GhostyのようなものでナンセンスなPRを受け取ることに疲れたので、Vouchを構築しました。
面白いことに、Vouchには2つのオープンなPRと8つのissueがあります。これは、このプロジェクトがどれだけ有用で使用されているかを考えると、狂っています。では、Vouchとは何でしょうか。コミュニティトラスト管理システムです。人々がプロジェクトの特定の部分と対話する前に、保証されなければなりません。人々は明示的に非難されて、今後プロジェクトと対話することをブロックされることができます。Vouchをワークフローとしてセットアップします。
この場合、PRが開かれたり、再開されたり、同期されたり、レビューの準備ができたり、ドラフトに変換されたり、PRのステータスを変更するすべての異なることが起こるときに、自動的に実行されます。そして、個人的に保証して、少なくとも見る価値があると判断したすべてのGitHubユーザーを持つこのvouch TDファイルがあります。
そして今、プルリクエストタブに行くと、保証されていない特定のPRと、信頼されている保証されたPRが表示されます。そしてさらに重要なのは、忙しくてすべてを見ることができないとき、ほとんどの日がそうですが、vouch trustedに切り替えて、オープンなPRの3分の2以上をフィルタリングできます。だから、150から43になりました。
そして今、これは実際に実行可能です。公平に言えば、これの半分は、あらゆる種類のランダムな一回限りのバグを修正しているBen Banditです。彼を祝福します。これは、私が黄金のPRと見なすものの例です。これらは私が大好きなものです。PR vouch summaryでドラフトPR変換を処理します。欠落しているconverted to draftプルリクエストターゲットトリガーを追加します。
オープンなPRがドラフト状態に戻されたときに、トラストラベルが更新されるようにし、動作動作を変更しないようにします。これは非常にシンプルなPRです。それが何をするかを明確に説明しています。だから、ドラフトPRがドラフトから外されたとき、vouch状態を再チェックする必要があります。これは、ドラフトに変換されたときのためにこの1つの追加フィールドを追加した単純な1行の変更です。素晴らしい。
素晴らしい変更です。そして、私はこのタイプのPRが大好きです。これが別の本当に良いものです。これは、ローカルストレージクリーンアップリストの欠落しているキーがあるものです。render state v7を含めるのを忘れました。これはUIのどこにあるかを永続化するために行うことです。古いデータのクリーンアップを忘れました。
あなたはそれに気づいて、クリーンアップする必要があるもののためにこの1つの追加行を追加するPRを提出しました。私はこれらが大好きです。これらの1から5行のPRで、何をしているのか、なぜそれを行ったのかを明確に述べているものは最高です。これが別の本当に良いものでした。実際、issueを見て、もう少し読むまでは、これがどれほど重要かは最初はわかりませんでした。
でも、PRは非常に明確でした。Electronでファイルが保存されるディレクトリとしてアプリ名を使用していました。なぜなら、それがデフォルトで起こることだからです。でも、名前には括弧やスペースなど、多くのプラットフォームにとってあまり良くないものが含まれていました。そして彼はそれをdevモードでT3 CodeまたはT3 Code devに変更しました。
何をしているのか、なぜそうしているのかを説明する素晴らしいコメントと、古いデータを引き出して移動できるようにするコードを入れました。良いPRです。実際に必要だった合理的な変更です。非常にシンプルで、issueにリンクされ、何が起こっているかを説明していました。これは、マージをクリックするのが非常に簡単なPRです。
Mariaからのもう一つの素晴らしいもの。アーティファクトをビルドする前にパッケージバージョンを揃えます。これにより、実際のリリースをビルドする前に、すべてのパッケージバージョンがすべて同じであることが確認されます。これは、以前に間違いなく行うべきだったことです。待って、なぜMariaは保証されていないのですか。何が間違っていたのですか。GitHubのUIを編集に使用したことがあるのは、ライセンスMDを作成したり、プロジェクトのライセンスを変更したりすることだけですが、さらに重要なのは、vouched MDを更新することです。そして今、彼女がPRを提出すると、保証されたものとしてマークされます。これは素晴らしいシステムです。これにより、このプロジェクトはそうでない場合よりもはるかに保守しやすくなります。そしてもう一度、Mitchellがこのような信じられないほど有用なものを出し続けてくれることに感謝します。
Mitchell Hashimotoは伝説であり、彼が受け取ったすべての花に値します。フォローします。ずっと前にそうすべきでした。素晴らしいプロジェクトです。私はまた、anti-slopのようなプロジェクトでいくつかの努力を見てきました。これは、PRをスキャンして、それがAI slopである可能性が高いかどうかを識別し、それをクローズしやすくするように設定されています。これは本当にクールですが、私の懸念は、このようなもののコストがすぐにエスカレートする可能性があることです。なぜなら、これらのPRをスキャンするためにAIを使用しなければならない可能性がほぼ確実だからです。
多くの設定があり、このプロジェクトがバイブコーディングされたことをほぼ確信するのに十分な設定があります。でも、ええ、わかります。これらの問題を修正しようとする多くのソリューションが作られています。それらのいくつかは、新しい維持者が抜け出すのを難しくするでしょう。それは最悪です。なぜなら、死ぬまで現在の維持者だけがいて、その後すべてがゆっくりと蒸発する可能性があるからです。
だから、長期的に最終的に使用するソリューションが何であれ、オープンソースに新しい開発者がまだ侵入できる余地を残すようにしたいです。そしてありがたいことに、良いPRと良い貢献者を見つけることは、比較的簡単です。それらはPRのリストで際立っています。どの人が良くて、どれが良くないかを識別できる速さに驚いています。
一般的に、良い維持者は、意図的に行っていなくても、自分自身を知らせるのが得意だと信じています。悪い維持者がそうであるように、良い維持者は際立っています。悪い維持者は、PRへの応答の速さに満足していないときに、たくさんの人にタグを付けるような奇妙なことをします。良い維持者は、どのような変更を行ったのか、なぜ行ったのかを理解しやすくします。
これは、オープンソースソフトウェアの維持者として私たち全員が行わなければならないことであり、最悪です。そして、それははるかに難しくなりました。永遠にHacktoberfestのような感じがして、それが私を恐怖に陥れます。私はHacktoberfestを殺すために多くの努力を注ぎました。この私のビデオ、「オープンソースに貢献するな」は、これまでに撮影した最高のビデオの一つだと思います。
ただ、口ひげを生やしたあの金髪の男が誰なのかはわかりませんが。真面目な話、このビデオのように、私が開発者やジャーナリスト、YouTuber、あるいは何と呼んでいただいても構いませんが、行ったことの中でほぼすべてよりも、このビデオについて多くの維持者から感謝されたと言われてきました。これは、私が長い間気にかけてきたことであり、人々が今それを認識していることに非常に感謝していますが、同時に、認識が問題が成長している速度に対抗していないことに恐怖を感じています。
オープンソースの資金問題
より多くの人々にこれらの問題を認識させて、より共感的になるようにする必要があります。問題と維持者の間にもっと多くのものを置いて、彼らが燃え尽きないようにする必要があります。
そして、GitHubにただ目を覚ましてもらい、これについてもっと多くのことを行う必要があります。GitHubはこれらのツールをもっと組み込む必要があります。彼らはこれをプラットフォームの一部にする必要があり、オープンソース維持者にさらに負担を積み重ねることを続けてはいけません。これがここでの最大の問題であり、これが全体を通して明確に強調されることを確認したいです。
オープンソース維持者にとって最悪なことは悪化し続けています。彼らがこれらすべてのツールをセットアップし、すべてのこのslopに対処しなければならないという事実は、難しい部分をより難しくしています。良い部分はどうですか。あなたのパッケージがたくさんインストールされて人気があることはどうですか。それから得られる仕事の機会はどうですか。あなたのソリューションとの相互作用や統合を維持するのを助けるために、ビジネスと得られる契約はどうですか。オープンソースプロジェクトに資金を提供するスポンサーはどうですか。非常に明確にするために、それらのどれも十分に良くありませんでした。
オープンソース維持者は十分に支払われませんでした。彼らは十分な認識を得られませんでした。彼らは十分なクレジットを得られず、確実に十分なスポンサーシップを得られませんでした。それらの問題ははるかに悪化しました。多くのオープンソース維持者がやっていたことの一つは、コースを販売することでした。
彼らは、お金を稼ぐ方法として、彼らのソリューションを使用したいビジネスにワークショップやコースを販売していました。そして、週に10から20時間、プロジェクトの保守と並行してそのようなことをして、エッジ給与に匹敵する有意義な金額を稼いだ人を何人か知っています。
もうそうではありません。Tailwindのような人も知っています。Tailwindがお金を稼ぐためにやっていたことは、開発サイクルをスピードアップしたいものを販売することでした。ここの隅に、このプラスボタンが表示されます。これは、再利用可能なブロック、ページのテンプレート、完全なUIキットを取得するためにTailwindに支払うことができるサブスクリプションです。
これ以前にはTailwind Plusという名前がありましたが、2021年頃にずっと前に購入しました。彼らは今日でも一生涯の購入で私たちにアップデートを提供してくれています。Tailwindは素晴らしく、5年前に私たちのビジネスのために永遠に費やした100ドル程度で非常に寛大でしたが、私たちはまた、Tailwindの上に非常に多くを構築し、5年間でわずか150ドル程度しか支払っていません。
そして、正直に言うと、今これを持っていなかったら、それに支払う可能性はほぼゼロです。なぜなら、私はすでに月に200ドルをClaudeに支払っているからです。これを使って、代わりに物を構築するように言うことができます。文字通り、ここで気に入ったUIのスクリーンショットを撮り、AIに渡して「これを構築して」と言うことができます。そして、それを構築するだけでなく、そうするときにTailwindを使用します。
それは良くありません。これらのオープンソース開発者が確実に支払われるように、AIを愚かにすることを強制すべきだと思いますか。いいえ。彼らはそもそも十分に支払われていなかったと思います。そして今、私たちはこの奇妙な世界にいます。企業がそれを見て気に入ったら、自分で再構築するかもしれないので、物を使用さえしないかもしれません。
私でさえこれに罪を犯しています。ConductorやCodex Monitorのように、かなりクールだと思ったプロジェクトがありました。Conductorはオープンソースではなかったので、必要な方法で機能しないときに何もできませんでした。Codex Monitorはオープンソースでしたが、開発者が他のことで忙しいことは明らかで、またプロジェクトは私が構築したい方法とは少し違いました。
でも、それは信じられないほどの参考資料でした。T3 Codeを構築したときに深く考えたものでした。T3 Codeは、それらの他のプロジェクトが私たちにインスピレーションを与えていなければ存在しませんでした。一方では、貢献のようなことをするようにインスピレーションを受けましたが、他方では、自分で所有してコントロールできるように、独自のものを構築するようにインスピレーションを受けました。
そして、それ以来、これをたくさん見てきました。T3 Codeをフォークして機能や欲しいものを追加した人を1人見るたびに、独自の代替案を構築するようにインスピレーションを受けた別の人を見てきました。それは、これらのオープンソース維持者のトップオブファネルを傷つけます。誰かが維持者を気にするほど十分に関与する可能性は低下しました。
そして、彼らがそこまで到達したとしても、お金を使う可能性も低下しました。だから、オープンソースの利点である、ソフトウェアの普及、アイデアの普及、それらのことに資金を提供される可能性、それは大幅に低下しました。しかし、オープンソース保守の負担は大幅に増加しました。その比率の変化が私を恐怖に陥れます。
Open Source Pledge:新しい取り組み
そして、ここで私たちは何かをする必要があります。Open Source Pledgeは素晴らしいスタートですが、それは単なるスタートです。Open Source Pledgeは、SentryのChadがZeeがプッシュしたものであり、今ではかなり大きなものになっています。Open Source Pledgeは、企業が行うことができるシンプルな合意であり、会社のデブあたり年間最低2,000ドルをオープンソース維持者に支払うことに同意します。
だから、5人のエンジニアがいる場合、毎年オープンソースプロジェクトに10,000ドルを支払うことに同意したことになります。そして、毎年、どこに支払ったか、何を支払ったか、これらすべてで何をしているかについて自己報告することが期待されています。彼らはすでに、Posit Sentry SanityチャンネルスポンサーのCode Rabbit、Hero Devs、Antithesis、Zero Dah、チャンネルスポンサーのRailway、以前のチャンネルスポンサーのBolt、Serai、Astral、Prefect、Void Zero、Pyantic、AG Grid、個人的なお気に入り、Convexなど、プレッジを行っている信じられないほどの企業グループを持っています。
Convexは毎年開発者あたり7,692ドルです。これは、シリーズBを終えたばかりで、とても小さいConvexのような小さな会社が、ほぼすべての大企業よりもはるかに多くのお金をオープンソースに貢献しているという狂った数字です。それは、物事がどれだけひどいかを示しています。Frontend Masterも、会社の開発者あたり10,000ドルでここで殺しています。
だから、お金を持っている会社で働いている場合は、上司とその上司に行って、これを行うようにバグを報告してください。そして、あなたが彼らの上司である場合は、これを行ってください。お金を節約できる場合は、私たちが毎日使用しているソフトウェアが存続し続けるために支払うことは不可欠です。それは非常に重要なことです。そして、T3 CodeのGitHubリポジトリのこの素晴らしいロードからわかるように、GitHubが何かを修正する世界はありません。
彼らはCSSを適切にレンダリングすることさえできません。私は今、このバグに1日1回遭遇します。ただ起こります。悪いロードにぶつかる前に言っていたように、私たち全員ができることが2つあり、より多くの開発者がこのようなことをしているのを見たいと思っています。最初のものは、負担を助けることです。PR を開く以外にできることがたくさんあります。
そして、このようなリポジトリで何かをする前に、問題を本当に体現しようとしてほしいです。私たちが抱えている最大の問題は、PRの膨大な量と、それらのいずれかが見る価値があるかどうかを検証するのにかかる労力です。これを最悪にする小さなことがたくさんあります。
このビューで何行が変更されたかを見ることができないという事実のように。それにより、PRが法外かどうかを知るのがはるかに難しくなります。なぜなら、タイトルが非常にシンプルで、千行のようなPRがある場合、それを取り除きたいだけだからです。そして、issueタブについては始めさえしないでください。issueタブはさらに混沌とした管理作業です。
それでは、これらのことで維持者をどのように助けることができますか。あなたができる最善のことの一つは、物事の細部に入ることによって、何が重要かを明確にするのを助けることです。すでにこれに非常に役立っている維持者がいくつかいます。MariaとBen Banditに大きな叫びを送ります。彼らは、このリポジトリがますます人気になるにつれて不可欠でした。これが、誰かがdiffサイドパネルを閉じることができないと報告したバグです。
誰かが「最新バージョンを持っていますか」と尋ねました。ああ、このバグが見えます。すぐにPRをプッシュします。Juliusに同じものを同時に作業して互いに衝突しないように、彼がこれに取り組んでいることを知っているようにCCします。PRを提出し、根本原因を述べ、修正を述べました。Corfixは、他の誰かが提出した同じものである他のPRと同じです。
違いは、930が3つのキーすべてをundefinedに設定する新しい検索パラメータヘルパーを導入するのに対し、このPRはこの1つの特定のものをインライン化するだけです。これはとても良いです。これは、これを正しく行うゴールデンな例です。彼はこのissueを取り、同じものに触れている他のものを識別しました。彼が理論的にもっとうまくできた唯一のことは、他の関連するissueがあったかどうか、ここでそれらをリンクしたかどうかです。そして、彼のPRに他の関連するissueがある場合、彼がそれらに言及したと賭けます。
大丈夫です。935だけなので、おそらくそれだけです。これは、私が今雇おうとしている場合、そうする予算があれば、雇いたい人のリストの非常に高いところにいるタイプの人です。なぜなら、これは私の人生を楽にするからです。すでに修正された本当に古いissueを見た場合、「最新バージョンにいることを確認しましたか。このPRがそれを修正したと思います。最新では私にはもう起こりません」とコメントしてください。この種のことは本当に役立ちます。
そして、issue側で少しやったら、PR側で同じことを始めることができます。そして、ここで、Ben BanditはこのPRをより洗練させるためにUXフィードバックを提供しながら、あまり先に進む前にチームがこれについてどう思うかを尋ねています。
素晴らしいです。彼は私や他の人のPRをレビューしました。彼はコメントで有用なフィードバックを提供しました。彼は私が質問を持っているときに答えました。彼は質問を先取りし、PR説明でそれらに答えました。とても良いです。そして、維持者として、これらの名前をこれらの良い雰囲気と迅速に関連付け始めます。つまり、何かをマージしたいときに、Ben BanditまたはNMGまたはEgg Fried RiceまたはMariaまたはこれらの人々の誰かの名前が表示されることがわかった場合、私の脳のマッピングはすぐに完了し、これらの人々を信頼できることがわかります。なぜなら、彼らは物事を非常によく書くからです。とても良いです。
維持者への感謝:最も重要なこと
でも、本当に重要だと思うことが最後に1つあります。そして、このビデオから何かを取り入れるなら、これであることを本当に願っています。私たちはオープンソース維持者に親切にする必要があります。これらの人々は、業界で最も感謝されない仕事の1つを行っています。
企業のためにコードを書いて多くのお金を稼ぐことができますが、彼らは代わりに年間数十万ドルを稼ぐことができる仕事を無料でやることを選択しています。これらの人々は、私たちがソフトウェアを構築する基盤を構築しています。彼らはそのためにうまく扱われるに値します。そして、単にオープンソースプロジェクトを作成することで、あなたが今や人々がお辞儀をしなければならない神になると言っているわけではありません。
私が言っているのは、これらのソフトウェアのユーザーとして、私たちが構築するものを構築する開発者に感謝するために少し努力を入れるべきだということです。これを単なるストーリータイムに変えたくないので、このポイントを簡潔に保つために最善を尽くします。ビデオの最初に、オープンソースのおかげでここにいると言ったとき、それは少しも誇張ではありませんでした。
誰もが私が誰であるかを知っている唯一の理由は、AstroのクリエイターであるFred K. SchottとSolidのクリエイターであるRyan Carniato にDMを送ったからです。彼らの文章が本当に好きで、ブログ投稿の長所や構造についてフィードバックを提供したかったので、まだTwitterに500人ほどのフォロワーしかいませんでした。なぜなら、私は文章やテキストのフォーマットについてのオタクだからです。
信じられないかもしれませんが、生計を立てるためにYouTubeビデオを作る人は、言葉の流れが好きです。誰が考えたでしょうか。彼ら二人ともこれについて非常にクールでした。私が彼らに「あなたがしてきた仕事は素晴らしいです。この投稿が本当に好きでした。より多くの人が消化しやすくなるように、言葉の言い方についてフィードバックを受けてもいいですか」と言ったとき。それは私が想像していたよりもはるかにうまくいきました。
私が誰かに「ねえ、これを書いた方法についてフィードバックを提供してもいいですか」と言って連絡したときの100%のヒット率があります。そして彼らは「絶対にイエス」と言っています。私は、インターネット上のすべての記事に対して長所フィードバックを提供する必要があると言っているわけではありません。私が言っているのは、彼らの仕事を非常に高く評価していたので、彼らのブログ投稿を読んでいて、彼らも気にかけていると思ったこのことについて彼らに連絡し、彼らが気にかけていることをより良くする何かを提供したということです。
提供は、そこで重要な部分ではありません。前の部分を本当に強調したいのですが、それは、彼らの日常を妨げない方法で、クールなことをする人々に感謝することです。愚かですが、これを表現する愛情深い方法のように。私は自分のファンから、初めての良い仕事を得るのを手伝ってくれたり、昇進を得るのを手伝ってくれたり、プロジェクトを確立するのを手伝ってくれたりしたことについて感謝するメッセージをたくさん受け取ります。私はそれらのどれもしませんでした。
私は、それらの人々が自分の成功を構築するために使用することを選択したツールボックスのツールにすぎません。でも、それらのメッセージはまだ素晴らしいと感じます。それらのメッセージは私の日を作ります。10年間ラインクックで、サイドでコードを学び、本当にできるとは感じられなかったが、私のビデオを見ることで、私たちがいたこのクレイジーな技術世界が自分が適合できる場所のように感じられ、今は素晴らしい技術の仕事を持っているという誰かが私に連絡してくるのを見る。
私のビデオはそれをしませんでした。私のチャンネルはそれをしませんでした。彼らがそれをしました。でも、そのメッセージはまだ私を感情的にします。それはまだすべてを価値があると感じさせます。それらは、私が上に上がってストリームをキャンセルし、ビデオゲームをしたり、メールをチェックしたりすることを考えるときに考えるメッセージです。
それらの人々は、私がこれを続けることにとても興奮させてくれる人々です。それらの人々の一人になってください。しかし、私のためではなく、彼らのために。これらの維持者に感謝し、真正な方法でそれを行ってください。真正でない場合は、それを行わないでください。私は、何か感傷的なメッセージを書いたり、好きなランダムなライブラリをグレーズするようにChatGPTに頼んだりしないと言っているわけではありません。あなたが使用するツールについて考えることをお勧めします。
彼らが使用するパッケージを見てください。それらがどこから来たのか、誰がそれらを作ったのか、なぜ作ったのか、GitHubリポジトリがどのように見えるのか、何に貢献しているのか、何をマージして何をマージしていないのかを見てください。彼らは何を気にかけていますか。彼らが存在することに気づくのに時間をかけたのであれば、同じことを気にかけている可能性が非常に高いです。
人々がオープンソースソフトウェアを維持する理由は、あまりにも多くを気にかけているからです。そして、このすべてのAIのせいで彼らの仕事がますます難しくなると、彼らが諦める可能性が高くなります。彼らがここにいる理由は、その興奮です。そして、それを思い出させることができれば、彼らがそもそもこれを行った興奮したものになることができれば、はるかに価値があると感じさせることができます。
彼らにもお金を払うべきです。でも、これは財政的補償よりもさらに重要です。なぜなら、彼らが単にお金のためにここにいたのであれば、通常の技術の仕事を得るでしょう。でも、そうではありません。私を悪い開発者、悪いインフルエンサー、一般的に悪い影響にする私についての多くのことがあります。でも、私が自分について最も愛することを学んだことの一つは、クールだと思うものに手を差し伸べる方法です。
何か面白いものを見ると、物事についてあまり考えず、人々とその理由についてもっと考えます。そして、私はしばしば手を差し伸べます。私が誰でもなかったときでさえ、そうしていました。そして、最もクレイジーなことは、私が反応を得る可能性が、人気になってから有意義に上がっていないということです。
1,000人のフォロワーがいたとき、300,000人のフォロワーがいたとき、返信を受け取る可能性はほぼ同じままでした。わかりますか。暗号化されたもので更新してTwitterのDMを完全にめちゃくちゃにして以来、実際には大幅に下がっていますが。でも、それ以前は、スペースでより関連性を持ち続けるにつれて、レートはほぼ横ばいのままでした。
シンプルな2つの文章、「ねえ、あなたが出荷したこのPRを本当に感謝しました。何年もあなたが構築してきたもののファンでした。このライブラリは私の人生をはるかに良くしてくれます。ありがとう」。それらのメッセージは小さく見えるかもしれませんが、実際にあなたの人生を変える可能性があります。そして、私がTwitchを去ったときにしたようなことがなければ、今日ここにいなかったでしょう。
地獄、私がTwitchにいたときでさえ、そのようなことをしました。そして、それは、このクレイジーな分野でどこに向かっているかの軌道を完全に変えることができます。でも、さらに重要なのは、これらの人々が諦める可能性を低くすることです。そして、私たちが構築する基盤を構築した最高の維持者全員が燃え尽きて諦めたソフトウェア開発業界に住みたくありません。
私たち全員が一緒に働いて、それを防ぐようにしたいです。あなたが使用するソフトウェアを構築する人々に親切にしてください。できればお金を払ってください。そして、どちらにしても彼らに感謝してください。これが、皆さんがより良いオープンソースユーザーになるのに役立ち、オープンソースが今と同じようにうまく機能し続けることができるようになることを願っています。


コメント