HN 日本語サマリー

← 一覧へ戻る
オープンソース

The Federated Code Forge

The Federated Code Forge (tangled.org)

73 pointsby zlliang29 コメント

要約

この記事は、従来の集中型コードフォージ(GitHubなど)の限界を指摘し、分散型でオープンプロトコルに基づいた「フェデレーテッドコードフォージ」の概念を提案しています。Tangledは、ユーザーが自身のコードをホストしつつ、他のユーザーとシームレスに連携できるプラットフォームを目指しています。ATプロトコルを基盤とし、自己ホスト可能なコンポーネントと高いカスタマイズ性、エージェントフレンドリーな設計が特徴です。

全文翻訳

フェデレーテッドコードフォージ

過去20年間のほとんどの間、コードフォージはプロジェクトの拠点でした。コードがホストされ、変更がレビューされ、貢献者が見つけられる場所です。フォージは中央集権化と引き換えに利便性を提供しました。

しかし、中央集権的なフォージは崩壊しつつあります。アップタイム、機能、そしてコードの良き管理者であるために他者に依存することは、うまくいっていません。時を経ても耐えうるものは、電子メールでした。コードを移動させるにはGit、それについて話すにはオープンプロトコルである電子メールです。ただし、ユーザーエクスペリエンスを犠牲にしていました。

Tangledは、両方の利点を提供することを目指しています。オープンプロトコルの永続性と、適切なフォージの利便性と洗練さです。

これは真に最初のフェデレーテッドコードフォージです。自分のサーバーでコードをホストしながら、他のユーザーとシームレスに協力できます。私たちの方法は実用的です。GitホスティングやCIランナーのような、自分でホストしたい部分だけ、あるいはAPIサーバーやUIを含むすべてを自己ホストできます。あなたが選んだものに関わらず、他のすべての人と通信できます。

インフラストラクチャを所有することは、フォージを自由にハック、拡張、カスタマイズできることも意味します。TangledはATプロトコル上に構築されているため、独自の拡張機能を構築したり、ファイアホースを購読したり、Cloudflare Workers上で動作し、GitストレージにArtifacts製品を使用するような完全にカスタムなノットを作成したりできます。あるいは、mitchellh.com/tackのような完全にカスタムなスピンドルを作成することもできます。さらに進んで、インデクサー用の超軽量APIサーバーをホストし、独自のカスタムフォージを構築することもできます。

エージェントは、このようなハイパーパーソナライズされたソフトウェアの構築を容易にしました。特に、ソフトウェアが最初からハックしやすさを念頭に置いて設計されている場合はなおさらです。Tangledは信じられないほどエージェントフレンドリーで、エージェントフレンドリーです。

ソフトウェアエンジニアリングの未来は動的なターゲットかもしれませんが、オープンプロトコルと開発者の主体性への私たちの賭けは、それと共に移動し、.になるための機敏性を提供します。

製品アップデート

新しい見た目!

明白な大きな変更点:このリリースで、Tangledは全く新しい見た目になりました。新しいアーキテクチャ(下記でさらに説明)の上に、SvelteでUIを再構築しました。物事はより速く、視覚的に一貫性があり、より美しくなるはずです!目の肥えた方なら、InterをTimeless Sansに切り替えたことにも気づいたかもしれません。

あなたの近くのボビン

これまで、TangledのWeb UIとバックエンドはappviewと呼ばれる単一のGoモノリスでした。appviewサービスは、html/template + htmxを使用してATプロトコルインデックス作成、キャッシング、オフプロトコルデータ、UIレンダリングを処理していました。これはスウェーデンの1台の中規模サーバーで単一のSQLiteデータベース上で実行されていました。

これは、スウェーデンから約50〜100ミリ秒の距離にいれば素晴らしかったのですが、ほとんどのユーザーはそうではありません!私たちは再アーキテクチャしました。エッジにデプロイされたSvelte製の新しいスタンドアロンフロントエンドアプリを構築しました。これは、Rustで書かれた新しいディスクレス、完全にインメモリのインデクサーサービスであるボビンによってデータが供給されます。ボビンは11以上の地域にグローバルに展開されており、世界中のユーザーに最高のAPIとUIパフォーマンスを提供します。

鋭い読者は気づいたかもしれません:ボビンは純粋に読み取り専用であり、ATプロトコルデータのみを扱います。残りはどうなるのでしょうか?その機能(およびそれ以上)は、新しい一連のサポートサービスに委任されました。

新しいデータモデルとリポジトリ所有データ

まず、データモデル自体です。新しいレキシコンのセットがあり、すべてが古いsh.tangled.*レコードに取って代わり、org.tangled.*の下に配置されます。

Knot2は、適切に名付けられたノットサーバーの2番目の実装であり、今回はRustで書き直されました。Knot2は完全にカスタムなGitサーバーを構築し、同じバイナリにSSHサーバーもバンドルしています。

Knot2では、一部のデータの保存場所も変更しました。Issue、プルリクエスト、コメント、リアクション、ラベルは、コードのすぐ隣、コラボレーティブオブジェクト(COB)としてノット上に保存されるようになりました。COBは、リポジトリ自体のGitオブジェクトのチェーンにすぎません。コラボレーター、ノットメンバー、ブロックリストも同様の方法で保存されます。

その意味で、ノットは現在PDSと似たように動作します。署名されたレコード、完全な履歴を含む、リポジトリに属するすべてのもののレコードを保持します。PDSと同様に、これらのレコードは標準のATプロトコルファイアホースを介して同期されます。

しかし、なぜでしょうか?プロジェクトのIssueやプルリクエストは、コードと同じくらいプロジェクトの一部であり、あなたがどこでホストすることを選んでも、それらと共に存在すべきです。これにより、プロジェクトのポータビリティが最大化されます。

ノットがIssueやコメントを書き込む場合、それはあなたの口に言葉を入れるのを止めることはできませんか?証明です。ノット上のレコードを作成または編集するたびに、WebアプリはあなたのPDSにorg.tangled.graph.attestationレコードも書き込み、そのレコードの正確なバージョンと、その背後にあるCOBの変更を指します。双方向検証です!

自己ホスト者は、アップグレードガイドに従って、ノットをv1.20.0にアップグレードする必要があります。

組織

組織アカウントが登場しました!Tangledの組織は実際のATプロトコルアカウントであり、独自のDIDとハンドルを持ち、Tranquil PDSインスタンスでホストされます。これらはパスワードレスで委任されたアカウントです。あなたは新規組織ページから作成し、<name>.tngl.shというハンドルと、あなたをオーナーとして取得します。オーナーはメンバーを招待でき、組織内の誰でもリポジトリの作成やフォーク時に組織として行動できます。他のアカウントと同様に、ハンドルを所有しているドメインに切り替えることができます。スタンドインの「組織」として通常のカウントを実行していた場合は、しばらくお待ちください。それらを移行する方法に取り組んでいます。詳細はドキュメントをご覧ください。

全員のためのスタックPR

私たちのPRフローはオーバーホールされました。新しいフローにより、Jujutsuを使用しているか、バニラGitを使用しているかに関わらず、誰もがスタックされたPRを送信およびレビューできるようになります。Gitを使用している場合、バージョン(以前はラウンドと呼ばれていました)間の差分を表示できるようになりました。JJユーザーは、個々の変更間の差分も表示できます。

数週間後のローンチ

これだけではありません。今後数週間にわたってこのローンチを段階的に行います。次にプライベートリポジトリ、CLI、さまざまな言語のSDK、エージェント用のスキルが登場します。

それまで、このローンチのすべての部分を同様に楽しんでください。