brew の作成者が新しいパッケージマネージャー tea を開発中

人気の macOS パッケージ管理システム brew (Homebrew) の作者である Max Howell は、Tea と呼ばれる新しいパッケージ マネージャーを開発しています。これは、brew の開発の継続として位置付けられ、パッケージ マネージャーを超えて機能する統合パッケージ管理インフラストラクチャを提供します。分散リポジトリを使用します。 このプロジェクトは当初、マルチプラットフォーム プロジェクトとして開発されています (現在、macOS と Linux がサポートされており、Windows のサポートは開発中です)。 プロジェクト コードは TypeScript で記述され、Apache 2.0 ライセンスに基づいて配布されます (brew は Ruby で記述され、BSD ライセンスに基づいて配布されました)。

Tea は概念的には従来のパッケージ マネージャーとは異なり、「パッケージをインストールしたい」というパラダイムの代わりに、「パッケージを使用したい」というパラダイムを使用します。 特に、Tea にはパッケージそのものをインストールするコマンドはありませんが、代わりに環境生成を使用して、現在のシステムと重複しないパッケージの内容を実行します。 パッケージは別の ~/.tea ディレクトリに配置され、絶対パスにバインドされません (移動可能)。

主な操作モードは XNUMX つあります。XNUMX つはコマンド シェルに移動してパッケージがインストールされている環境にアクセスする方法、もう XNUMX つはパッケージ関連のコマンドを直接呼び出す方法です。 たとえば、「tea +gnu.org/wget」を実行すると、パッケージ マネージャーは wget ユーティリティと必要なすべての依存関係をダウンロードし、インストールされた wget ユーティリティが利用可能な環境でシェル アクセスを提供します。 XNUMX 番目のオプションでは、直接起動 - 「tea +gnu.org/wget wget https://some_webpage」を使用します。この場合、wget ユーティリティがインストールされ、別の環境ですぐに起動されます。 複雑なチェーンを構成することが可能です。たとえば、white-paper.pdf ファイルをダウンロードして、glow ユーティリティで処理する場合は、次の構造を使用できます (wget と glow が見つからない場合は、それらがインストールされます): tea + gnu.org/wget wget -qO- https:/ /tea.xyz/white-paper.pdf | tea +charm.sh/glow グロー - または、より単純な構文を使用することもできます。 tea -X wget -qO- tea.xyz/white-paper | tea -X wget -qO- tea.xyz/white-paper | tea ティー-Xグロー —

同様に、スクリプト、コード例、ワンライナーを直接実行して、その操作に必要なツールを自動的にロードすることができます。 たとえば、「tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go - yellow」を実行すると、Go ツールキットがインストールされ、引数「- yellow」を指定して Colors.go スクリプトが実行されます。

毎回 tea コマンドを呼び出さないようにするために、仮想環境のユニバーサル マネージャーおよび不足しているプログラムのハンドラーとしてこれを接続することができます。 この場合、実行中のプログラムが利用できない場合はインストールされ、以前にインストールされていた場合はその環境で起動されます。 $ deno zsh: コマンドが見つかりません: deno $ cd my-project $ deno tea: deno.land^1.22 のインストール deno 1.27.0 > ^D

現在の形式では、Tea で利用可能なパッケージは、pantry.core と pantry.extra の XNUMX つのコレクションに収集されており、これらのコレクションには、パッケージのダウンロード ソース、ビルド スクリプト、および依存関係を説明するメタデータが含まれています。 pantry.core コレクションには、Tea 開発者によって最新に維持され、テストされた主要なライブラリとユーティリティが含まれています。 Pantry.extra には、十分に安定化されていないパッケージ、またはコミュニティのメンバーによって提案されたパッケージが含まれています。 パッケージ内を移動するために Web インターフェイスが提供されます。

Tea のパッケージを作成するプロセスは大幅に簡略化され、XNUMX つのユニバーサル package.yml ファイル (例) を作成するだけで済みます。これにより、新しいバージョンごとにパッケージを調整する必要がなくなりました。 パッケージは GitHub にリンクして、新しいバージョンを検出し、そのコードをダウンロードできます。 このファイルには依存関係も記述されており、サポートされているプラ​​ットフォーム用のビルド スクリプトも提供されます。 インストールされた依存関係は不変 (バージョンは固定) であるため、左パッドのインシデントと同様の状況が繰り返されることがなくなります。

将来的には、個別のストレージに関連付けられていない分散型リポジトリを作成し、メタデータ用に分散型ブロックチェーンを使用し、パッケージを保存するために分散型インフラストラクチャを使用することが計画されています。 リリースはメンテナによって直接認証され、関係者によってレビューされます。 パッケージの保守、サポート、配布、検証への貢献として暗号通貨トークンを配布することが可能です。

brew の作成者が新しいパッケージマネージャー tea を開発中


出所: オープンネット.ru

コメントを追加します