tea ontwikkelt nieuwe technologieën die de manier waarop code wordt verspreid zullen veranderen
Max Howell, auteur van het populaire pakketbeheersysteem brouwen (Homebrew) van macOS, onthulde dat werkt aan de ontwikkeling van een nieuwe pakketbeheerder, genaamd Tea, die is gepositioneerd als een voortzetting van de brouwontwikkeling, die verder gaat dan de pakketbeheerder en een uniforme pakketbeheerinfrastructuur biedt die werkt met gedecentraliseerde opslagplaatsen.
Thee is conceptueel niet zoals traditionele pakketbeheerders., en in plaats van het "Ik wil een pakket installeren"-paradigma, gebruikt het de "Ik wil een pakket gebruiken"-benadering.
En in het bijzonder, Tea heeft geen opdracht voor het installeren van pakketten als zodanig, maar gebruikt in plaats daarvan omgevingsgeneratie om pakketinhoud uit te voeren die niet overlapt met het huidige systeem. Pakketten worden in een aparte map ~/.tea geplaatst en zijn niet toegewezen aan absolute paden (ze kunnen worden verplaatst).
Er zijn twee basismodi in Tea werking: spring in een opdrachtshell met toegang tot een omgeving met geïnstalleerde pakketten en roep direct pakketgerelateerde opdrachten op. Door bijvoorbeeld "tea +gnu.org/wget" uit te voeren, zal de pakketbeheerder het wget-hulpprogramma en alle benodigde afhankelijkheden downloaden en vervolgens shell-toegang bieden in een omgeving waar het geïnstalleerde wget-hulpprogramma beschikbaar is.
De tweede optie betreft een directe lancering: «thee +gnu.org/wget -qO- tea.xyz/white-paper | thee +bedel.sh/gloed gloed – ", waarmee het wget-hulpprogramma wordt geïnstalleerd en onmiddellijk in een aparte omgeving wordt uitgevoerd, waarbij een bestand wordt gedownload dat wordt weergegeven met gloed. Complexe chaining is mogelijk, bijvoorbeeld om het white-paper.pdf-bestand te downloaden en te verwerken met het hulpprogramma glow, u kunt de volgende constructie gebruiken (als wget en glow niet aanwezig zijn, worden ze geïnstalleerd).
Evenzo u kunt direct scripts uitvoeren, codevoorbeelden en oneliners, waarbij automatisch de tools worden geladen die nodig zijn voor de taak.
Voer bijvoorbeeld niet uit:
tea https://gist.githubusercontent.com/i0bj/2b3afbe07a44179250474b5f36e7bd9b/raw/colors.go --yellow
tea: installing go 1.18.3
go: installing deps
go: running colors.go
…
Het zal de Go-taaltoolkit installeren en het colors.go-script uitvoeren met het "-geel" als argument.
Om niet elke keer het theecommando aan te roepen is het mogelijk om deze als universele beheerder aan te sluiten van virtuele omgevingen en een driver van ontbrekende programma's. Als het actieve programma in dit geval niet beschikbaar is, wordt het geïnstalleerd en, indien eerder geïnstalleerd, in uw omgeving gestart.
In zijn huidige vorm de pakketten die beschikbaar zijn voor Thee zijn verzameld in twee collecties, pantry.core en pantry.extra, inclusief metadata die pakketdownloadbronnen, buildscripts en afhankelijkheden beschrijven.
De verzameling pantry.core bevat kernbibliotheken en hulpprogramma's die door Tea-ontwikkelaars zijn ontwikkeld up to date gehouden en getest. pantry.extra bevat pakketten die niet goed gestabiliseerd zijn of die worden voorgesteld door de gemeenschap. Er is een webinterface voorzien om door de pakketten te navigeren.
Het proces van het maken van pakketten voor Tea is sterk vereenvoudigd en beperkt tot het maken van een universeel pakket.yml-bestand (voorbeeld), waarvoor het pakket niet voor elke nieuwe versie hoeft te worden aangepast. Om nieuwe versies te ontdekken en de code te downloaden, kan het pakket worden gekoppeld aan GitHub.
Het bestand beschrijft ook afhankelijkheden en biedt build-scripts voor ondersteunde platforms. Geïnstalleerde afhankelijkheden zijn onveranderlijk (versie is vast), waardoor herhaalde situaties zoals het incident met de linkermuisknop worden geëlimineerd.
In de toekomst is het de bedoeling om gedecentraliseerde repositories te creëren dieUe zijn niet gebonden aan een afzonderlijke opslag en gebruiken een gedistribueerde blockchain voor metadata en een gedecentraliseerde infrastructuur om pakketten op te slaan. De versies worden direct gecertificeerd door de beheerders en beoordeeld door de geïnteresseerde partijen. Het is mogelijk om cryptocurrency-tokens te distribueren om bij te dragen aan het onderhoud, de ondersteuning, de distributie en de verificatie van pakketten.
Tot slot is het vermeldenswaard dat momenteel het project is in eerste instantie platformonafhankelijk ontwikkeld (macOS en Linux worden momenteel ondersteund, Windows-ondersteuning is in ontwikkeling.) De code van het project is geschreven in TypeScript en wordt vrijgegeven onder de Apache 2.0-licentie (brew is geschreven in Ruby en verzonden onder een BSD-licentie).
Als u geïnteresseerd bent om er meer over te weten te komen, kunt u de details en gebruikershandleiding van Tea raadplegen op de volgende link.