le créateur d'infusion développe un nouveau gestionnaire de paquets de thé

Max Howell, l'auteur du populaire système de gestion de paquets macOS Brew (Homebrew), développe un nouveau gestionnaire de paquets appelé Tea, positionné comme une continuation du développement de Brew, allant au-delà du gestionnaire de paquets et offrant une infrastructure de gestion de paquets unifiée qui fonctionne avec des référentiels décentralisés. Le projet est initialement développé en tant que projet multiplateforme (macOS et Linux sont actuellement pris en charge, le support Windows est en développement). Le code du projet est écrit en TypeScript et distribué sous la licence Apache 2.0 (brew a été écrit en Ruby et distribué sous la licence BSD).

Thé n'est conceptuellement pas comme les gestionnaires de paquets traditionnels et au lieu du paradigme « Je veux installer un paquet », il utilise le paradigme « Je veux utiliser un paquet ». En particulier, Tea ne dispose pas de commande pour installer un package en tant que tel, mais utilise à la place la génération d'environnement pour exécuter le contenu du package qui ne chevauche pas le système actuel. Les packages sont placés dans un répertoire ~/.tea séparé et ne sont pas liés à des chemins absolus (ils peuvent être déplacés).

Deux modes de fonctionnement principaux sont proposés : accéder à un shell de commande avec accès à l'environnement avec les packages installés et appeler directement les commandes liées aux packages. Par exemple, lors de l'exécution de "tea +gnu.org/wget", le gestionnaire de paquets téléchargera l'utilitaire wget et toutes les dépendances nécessaires, puis fournira un accès shell dans l'environnement dans lequel l'utilitaire wget installé est disponible. La deuxième option implique un lancement direct - « tea +gnu.org/wget wget https://some_webpage », dans lequel l'utilitaire wget sera installé et immédiatement lancé dans un environnement séparé. Il est possible de composer des chaînes complexes, par exemple, pour télécharger le fichier white-paper.pdf et le traiter avec l'utilitaire glow, vous pouvez utiliser la construction suivante (si wget et glow manquent, ils seront installés) : tea + gnu.org/wget wget -qO- https://tea.xyz/white-paper.pdf | tea +charm.sh/glow glow - ou vous pouvez utiliser une syntaxe plus simple : tea -X wget -qO- tea.xyz/white-paper | thé -X lueur —

De la même manière, vous pouvez exécuter directement des scripts, des exemples de code et des one-liners, en chargeant automatiquement les outils nécessaires à leur fonctionnement. Par exemple, exécuter « tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go -white » installera la boîte à outils Go et exécutera le script colours.go avec l'argument « -jaune ».

Afin de ne pas appeler la commande tea à chaque fois, il est possible de la connecter en tant que gestionnaire universel d'environnements virtuels et gestionnaire de programmes manquants. Dans ce cas, si le programme en cours d'exécution n'est pas disponible, il sera installé, et s'il a été installé précédemment, il sera lancé dans son environnement. $ deno zsh : commande introuvable : deno $ cd mon-projet $ deno tea : installation deno.land^1.22 deno 1.27.0 > ^D

Dans leur forme actuelle, les packages disponibles pour Tea sont regroupés en deux collections - pantry.core et pantry.extra, qui incluent des métadonnées décrivant les sources de téléchargement des packages, les scripts de construction et les dépendances. La collection pantry.core comprend les principales bibliothèques et utilitaires, maintenus à jour et testés par les développeurs de Tea. Pantry.extra contient des packages pas suffisamment stabilisés ou suggérés par des membres de la communauté. Une interface Web est fournie pour naviguer dans les packages.

Le processus de création de packages pour Tea est grandement simplifié et se résume à la création d'un fichier package.yml universel (exemple), qui ne nécessite pas d'adapter le package à chaque nouvelle version. Un package peut créer un lien vers GitHub pour découvrir de nouvelles versions et télécharger leur code. Le fichier décrit également les dépendances et fournit des scripts de build pour les plates-formes prises en charge. Les dépendances installées sont immuables (la version est fixe), ce qui élimine la répétition de situations similaires à l'incident du pavé gauche.

À l'avenir, il est prévu de créer des référentiels décentralisés qui ne sont liés à aucun stockage séparé et utilisent une blockchain distribuée pour les métadonnées, ainsi qu'une infrastructure décentralisée pour le stockage des packages. Les versions seront certifiées directement par les responsables et examinées par les parties prenantes. Il est possible de distribuer des jetons de crypto-monnaie pour contribuer à la maintenance, au support, à la distribution et à la vérification des packages.

le créateur d'infusion développe un nouveau gestionnaire de paquets de thé


Source: opennet.ru

Ajouter un commentaire