tea は、コードの配布方法を変える新しいテクノロジーを生み出しています
マックス・ハウエル、作家 人気のあるパッケージ管理システムの 醸造 (Homebrew) の macOS が、それを明らかにした Tea と呼ばれる新しいパッケージ マネージャーの開発に取り組んでいます。 これは、brew 開発の継続として位置付けられ、パッケージ マネージャーを超えて、分散型リポジトリと連携する統合パッケージ管理インフラストラクチャを提供します。
Tea は、概念的には従来のパッケージ マネージャーとは異なります。、そして「パッケージをインストールしたい」パラダイムの代わりに、「パッケージを使用したい」アプローチを使用します。
特に Teaにはパッケージインストールコマンドがありません ただし、代わりに環境生成を使用して、現在のシステムと重複しないパッケージ コンテンツを実行します。 パッケージは別の ~/.tea ディレクトリに配置され、絶対パスには割り当てられません (移動できます)。
Tea には XNUMX つの基本モードが用意されています 操作方法: パッケージがインストールされた環境にアクセスしてコマンド シェルにジャンプし、パッケージ関連のコマンドを直接呼び出します。 たとえば、「tea +gnu.org/wget」を実行すると、パッケージ マネージャーは wget ユーティリティと必要なすべての依存関係をダウンロードし、インストールされた wget ユーティリティが利用可能な環境でシェル アクセスを提供します。
XNUMX 番目のオプションには、直接起動が含まれます: «tea +gnu.org/wget -qO-tea.xyz/white-paper | tea +charm.sh/glow グロー – これにより、wget ユーティリティがインストールされ、すぐに別の環境で実行され、glow でレンダリングされるファイルがダウンロードされます。 複雑な連鎖が可能です。たとえば、white-paper.pdf ファイルをダウンロードしてグロー ユーティリティで処理するには、次の構成を使用できます (wget とグローが存在しない場合は、インストールされます)。
同様に、 スクリプトを直接実行できます、コードサンプル、ワンライナー、ジョブに必要なツールを自動的にロードします。
たとえば、次を実行します。
tea https://gist.githubusercontent.com/i0bj/2b3afbe07a44179250474b5f36e7bd9b/raw/colors.go --yellow
tea: installing go 1.18.3
go: installing deps
go: running colors.go
…
Go 言語ツールキットをインストールし、引数として「–yellow」を指定して colors.go スクリプトを実行します。
毎回ティーコマンドを呼び出さないようにするために、ユニバーサルマネージャーとして接続することができます 仮想環境と不足しているプログラムのドライバー。 この場合、実行中のプログラムが使用できない場合はインストールされ、以前にインストールされていた場合は環境で開始されます。
現在の形では、 Tea で利用できるパッケージは XNUMX つのコレクションにまとめられています, pantry.core と pantry.extraには、パッケージのダウンロード ソース、ビルド スクリプト、および依存関係を説明するメタデータが含まれています。
コレクション pantry.core には、Tea 開発者が使用するコア ライブラリとユーティリティが含まれています。 最新の状態に保たれ、テストされています。 pantry.extra には十分に安定化されていないパッケージが含まれています またはコミュニティによって提案されたもの。 パッケージをナビゲートするための Web インターフェイスが用意されています。
Tea 用のパッケージを作成するプロセスは大幅に簡素化され、ユニバーサル package.yml ファイル (例) の作成に削減されます。これにより、新しいバージョンごとにパッケージを調整する必要がなくなります。 新しいバージョンを見つけてそのコードをダウンロードするには、パッケージを GitHub にリンクできます。
このファイルは、依存関係についても説明し、サポートされているプラットフォーム用のビルド スクリプトを提供します。 インストールされた依存関係は不変 (バージョンは固定) であるため、左パッド インシデントのような状況が繰り返されることはありません。
将来的には、分散リポジトリを作成する予定です。ue は個別のストレージに関連付けられておらず、メタデータ用に分散型ブロックチェーンを使用し、パッケージを格納するために分散型インフラストラクチャを使用します。 バージョンは、メンテナによって直接認定され、関係者によってレビューされます。 パッケージの保守、サポート、配布、検証に貢献するために暗号通貨トークンを配布することが可能です。
最後に、現在のところ言及する価値があります プロジェクトは当初、クロスプラットフォームとして開発されました (現在、macOS と Linux がサポートされています。Windows のサポートは開発中です。) プロジェクトのコードは TypeScript で書かれており、Apache 2.0 ライセンスの下でリリースされています (brew は Ruby で書かれており、BSD ライセンスの下で出荷されています)。
詳細を知りたい場合は、次の Web サイトで Tea の詳細とユーザー マニュアルを参照してください。 次のリンク。