Krijuesi i birrës zhvillon menaxher të ri të paketave të çajit

Max Howell, autor i sistemit popullor të menaxhimit të paketave macOS brew (Homebrew), po zhvillon një menaxher të ri paketash, Tea, i pozicionuar si një vazhdim i zhvillimit të birrës, duke shkuar përtej menaxherit të paketave dhe duke ofruar një infrastrukturë të unifikuar të menaxhimit të paketave që funksionon me depo të decentralizuara. Projekti fillimisht është zhvilluar si një multi-platformë (aktualisht macOS dhe Linux mbështeten, mbështetja e Windows është në zhvillim e sipër). Kodi i projektit është shkruar në TypeScript dhe shpërndahet nën licencën Apache 2.0 (krijimi u shkrua në Ruby dhe u dërgua nën një licencë BSD).

Tea nuk është konceptualisht si menaxherët tradicionalë të paketave dhe në vend të paradigmës "Dua të instaloj një paketë", ai përdor paradigmën "Dua të përdor një paketë". Në veçanti, Tea nuk ka një komandë instalimi të paketës si të tillë, në vend të kësaj përdor gjenerimin e mjedisit për të ekzekutuar përmbajtjet e paketës që nuk mbivendosen me sistemin aktual. Paketat vendosen në një direktori të veçantë ~/.tea dhe nuk janë të përcaktuara në shtigje absolute (mund të zhvendosen).

Janë dhënë dy mënyra themelore të funksionimit: kalimi në një guaskë komandimi me akses në një mjedis me paketa të instaluara dhe thirrja e drejtpërdrejtë e komandave të lidhura me paketën. Për shembull, kur ekzekutohet "tea +gnu.org/wget", menaxheri i paketës do të shkarkojë programin wget dhe të gjitha varësitë e nevojshme dhe më pas do të sigurojë akses në guaskë në një mjedis ku është i disponueshëm mjeti i instaluar wget. Opsioni i dytë nënkupton një nisje të drejtpërdrejtë - "tea +gnu.org/wget wget https://some_webpage", e cila do të instalojë mjetin wget dhe do ta nisë menjëherë në një mjedis të veçantë. Lidhja me zinxhir kompleks është e mundur, për shembull, për të shkarkuar skedarin white-paper.pdf dhe për ta përpunuar atë me mjetin e ndriçimit, mund të përdorni konstruksionin e mëposhtëm (nëse wget dhe shkëlqim nuk janë të pranishëm, ato do të instalohen): çaj +gnu. org/wget wget -qO- https://tea.xyz/white-paper.pdf | çaj +charm.sh/glow glow - ose mund të përdorni sintaksën më të thjeshtë: tea -X wget -qO- tea.xyz/white-paper | çaj -X shkëlqim

Në mënyrë të ngjashme, ju mund të ekzekutoni drejtpërdrejt skriptet, shembujt e kodeve dhe një rreshtim, duke ngarkuar automatikisht mjetet e nevojshme për punën e tyre. Për shembull, ekzekutimi i "tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go --yellow" do të instalojë paketën e veglave të gjuhës Go dhe do të ekzekutojë skriptin Colors.go me argumentin --yellow.

Për të mos thirrur komandën e çajit çdo herë, është e mundur ta lidhni atë si një menaxher universal i mjediseve virtuale dhe një mbajtës për programet që mungojnë. Në këtë rast, nëse programi i ekzekutimit nuk është i disponueshëm, ai do të instalohet, dhe nëse është instaluar më herët, do të lansohet në mjedisin e tij. $ deno zsh: komanda nuk u gjet: deno $ cd my-project $ deno tea: duke instaluar deno.land^1.22 deno 1.27.0 > ^D

Në formën e tij aktuale, paketat e disponueshme për Tea janë mbledhur në dy koleksione, pantry.core dhe pantry.extra, të cilat përfshijnë meta të dhëna që përshkruajnë burimet e shkarkimit të paketave, skriptet e ndërtimit dhe varësitë. Koleksioni pantry.core përfshin biblioteka dhe shërbime kryesore që mbahen të përditësuara dhe testohen nga zhvilluesit e Tea. pantry.extra përmban paketa që nuk janë të stabilizuara mirë ose që sugjerohen nga komuniteti. Ofrohet një ndërfaqe në internet për të lundruar nëpër paketa.

Procesi i krijimit të paketave për Tea është thjeshtuar shumë dhe përfundon në krijimin e një skedari universal package.yml (shembull), i cili nuk kërkon që paketa të përshtatet për çdo version të ri. Për të zbuluar versione të reja dhe për të shkarkuar kodin e tyre, paketa mund të lidhet me GitHub. Skedari përshkruan gjithashtu varësitë dhe ofron skriptet e ndërtimit për platformat e mbështetura. Varësitë e instaluara janë të pandryshueshme (versioni është i fiksuar), gjë që eliminon përsëritjen e situatave të ngjashme me incidentin e bllokut të majtë.

Në të ardhmen, është planifikuar të krijohen depo të decentralizuara që nuk janë të lidhura me ndonjë ruajtje të veçantë dhe të përdorin një blockchain të shpërndarë për metadata dhe një infrastrukturë të decentralizuar për ruajtjen e paketave. Publikimet do të certifikohen drejtpërdrejt nga mirëmbajtësit dhe do të rishikohen nga palët e interesuara. Është e mundur të shpërndahen tokenat e kriptomonedhave për kontributin në mirëmbajtjen, mbështetjen, shpërndarjen dhe verifikimin e paketave.

Krijuesi i birrës zhvillon menaxher të ri të paketave të çajit


Burimi: opennet.ru

Shto një koment