De makker fan brew ûntwikkelet in nije pakketbehearder tee

Max Howell, de skriuwer fan it populêre macOS pakketbehearsysteem brew (Homebrew), ûntwikkelet in nije pakketbehearder neamd Tea, gepositioneerd as in fuortsetting fan 'e ûntwikkeling fan brew, giet fierder as de pakketbehearder en biedt in unifoarme pakketbehearynfrastruktuer dy't wurket mei desintralisearre repositories. It projekt wurdt yn earste ynstânsje ûntwikkele as in multi-platfoarm projekt (macOS en Linux wurde op it stuit stipe, Windows-stipe is yn ûntwikkeling). De projektkoade is skreaun yn TypeScript en ferspraat ûnder de Apache 2.0-lisinsje (brew waard skreaun yn Ruby en ferspraat ûnder de BSD-lisinsje).

Tee is konseptueel net as tradisjonele pakketbehearders en ynstee fan it "Ik wol in pakket ynstallearje" paradigma, brûkt it it "Ik wol in pakket brûke" paradigma. Benammen Tea hat gjin kommando om in pakket as sadanich te ynstallearjen, mar brûkt ynstee omjouwingsgeneraasje om de pakketynhâld út te fieren dy't net oerlaapje mei it hjoeddeistige systeem. Pakketten wurde pleatst yn in aparte ~/.tea-map en binne net bûn oan absolute paden (se kinne ferpleatst wurde).

Twa haadmodi fan operaasje wurde foarsjoen: gean nei in kommando-shell mei tagong ta de omjouwing mei ynstalleare pakketten, en direkt oproppen fan pakket-relatearre kommando's. Bygelyks, by it útfieren fan "tea +gnu.org/wget", sil de pakketbehearder it wget-hulpprogramma en alle nedige ôfhinklikens downloade, en dan shell-tagong leverje yn 'e omjouwing wêryn it ynstalleare wget-hulpprogramma beskikber is. De twadde opsje omfettet direkte lansearring - "tea +gnu.org/wget wget https://some_webpage", wêryn it wget-hulpprogramma wurdt ynstalleare en fuortendaliks yn in aparte omjouwing lansearre. It is mooglik om komplekse keatlingen te komponearjen, bygelyks om it white-paper.pdf-bestân te downloaden en te ferwurkjen mei it glow-utility, kinne jo de folgjende konstruksje brûke (as wget en glow ûntbrekke, sille se ynstalleare wurde): tee + gnu.org/wget wget -qO- https://tea.xyz/white-paper.pdf | tea +charm.sh/glow glow - of jo kinne in ienfâldiger syntaksis brûke: tea -X wget -qO- tea.xyz/white-paper | tee -X glow -

Op in fergelykbere manier kinne jo direkt skripts, koadefoarbylden en ienliners útfiere, automatysk de ark laden dy't nedich binne foar har operaasje. Bygelyks, it útfieren fan "tee https://gist.githubusercontent.com/i0bj/…/raw/colors.go -yellow" sil de Go toolkit ynstallearje en it colors.go-skript útfiere mei it argumint "-giel".

Om net elke kear it kommando tee te neamen, is it mooglik om it te ferbinen as in universele behearder fan firtuele omjouwings en in handler foar ûntbrekkende programma's. Yn dit gefal, as it rinnende programma net beskikber is, sil it ynstalleare wurde, en as it earder ynstalleare is, sil it yn har omjouwing lansearre wurde. $ deno zsh: kommando net fûn: deno $ cd my-project $ deno tea: ynstallaasje fan deno.land^1.22 deno 1.27.0 > ^D

Yn syn hjoeddeistige foarm binne de pakketten beskikber foar Tea sammele yn twa kolleksjes - pantry.core en pantry.extra, dy't omfetsje metadata dy't pakket download boarnen beskriuwe, skripts bouwe en ôfhinklikens. De pantry.core-kolleksje omfettet de wichtichste biblioteken en nutsbedriuwen, bywurke en hifke troch Tea-ûntwikkelders. Pantry.extra befettet pakketten dy't net genôch stabilisearre binne of dy't foarsteld wurde troch leden fan 'e mienskip. In webynterface wurdt levere om troch de pakketten te navigearjen.

It proses fan it meitsjen fan pakketten foar Tea is gâns ferienfâldige en komt del op it meitsjen fan ien universele package.yml triem (foarbyld), dat net nedich it oanpassen fan it pakket foar eltse nije ferzje. In pakket kin keppelje nei GitHub om nije ferzjes te ûntdekken en har koade te downloaden. It bestân beskriuwt ek ôfhinklikens en leveret buildskripts foar stipe platfoarms. De ynstalleare ôfhinklikens binne ûnferoarlik (de ferzje is fêst), wat de werhelling fan situaasjes elimineert dy't fergelykber binne mei it ynsidint fan 'e linker pad.

Yn 'e takomst is it pland om desintralisearre repositories te meitsjen dy't net bûn binne oan in aparte opslach en brûke in ferspraat blockchain foar metadata, en in desintralisearre ynfrastruktuer foar it bewarjen fan pakketten. Releases sille direkt wurde sertifisearre troch ûnderhâlders en hifke troch belanghawwenden. It is mooglik om cryptocurrency tokens te fersprieden foar bydragen oan it ûnderhâld, stipe, distribúsje en ferifikaasje fan pakketten.

De makker fan brew ûntwikkelet in nije pakketbehearder tee


Boarne: opennet.ru

Add a comment