Ang gumawa ng brew ay gumagawa ng bagong package manager tea

Si Max Howell, ang may-akda ng sikat na plataporma macOS Ang sistema ng pamamahala ng pakete ng brew (Homebrew) ay bumubuo ng isang bagong tagapamahala ng pakete, ang Tea, na nakaposisyon bilang isang pagpapatuloy ng brew, na higit pa sa tagapamahala ng pakete at nag-aalok ng isang pinag-isang imprastraktura ng pamamahala ng pakete na gumagana sa mga desentralisadong repositoryo. Ang proyekto ay binuo mula sa simula bilang isang proyektong multi-platform (kasalukuyang sinusuportahan macOS и Linux, ang suporta ay nasa proseso ng pagbuo WindowsAng project code ay nakasulat sa TypeScript at ipinamamahagi sa ilalim ng lisensyang Apache 2.0 (ang brew ay isinulat sa Ruby at ipinamamahagi sa ilalim ng lisensyang BSD).

Iba ang konsepto ng tsaa sa mga tradisyunal na manager ng package, at sa halip na ang paradigm na "Gusto kong mag-install ng package," ginagamit nito ang prinsipyong "Gusto kong gumamit ng package." Sa partikular, walang tamang command si Tea para sa pag-install ng package; sa halip, lumilikha ito ng kapaligiran para sa pagpapatupad ng mga nilalaman ng package, na hindi nakakasagabal sa kasalukuyang sistema. Ang mga package ay iniimbak sa isang hiwalay na direktoryo, ~/.tea, at hindi nakatali sa ganap na mga landas (maaari silang ilipat).

Mayroong dalawang pangunahing mga mode ng operasyon: paglipat sa isang command shell na may access sa kapaligiran na may naka-install na mga pakete at direktang pagtawag sa mga command na nauugnay sa isang package. Halimbawa, kapag nag-execute ng "tea +gnu.org/wget", ida-download ng package manager ang wget utility at lahat ng kinakailangang dependencies, pagkatapos nito ay magbibigay ng shell access sa kapaligiran kung saan available ang naka-install na wget utility. Ang pangalawang opsyon ay nagsasangkot ng direktang paglulunsad - "tea +gnu.org/wget wget https://some_webpage", na mag-i-install ng wget utility at agad na patakbuhin ito sa isang hiwalay na kapaligiran. Ang mga kumplikadong kadena ay maaaring binubuo; halimbawa, para i-download ang white-paper.pdf file at iproseso ito gamit ang glow utility, maaari mong gamitin ang sumusunod na construction (kung wala ang wget at glow, mai-install ang mga ito): tea +gnu.org/wget wget -qO- https://tea.xyz/white-paper.pdf | tea +charm.sh/glow glow - o maaari kang gumamit ng mas simpleng syntax: tea -X wget -qO- tea.xyz/white-paper | tsaa -X glow -

Katulad nito, maaari mong direktang patakbuhin ang mga script, sample ng code, at one-liner, awtomatikong nilo-load ang kinakailangang toolchain. Halimbawa, ang pagpapatakbo ng "tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go --yellow" ay mag-i-install ng Go language toolchain at magpapatakbo ng colors.go script na may "--yellow" na argumento.

Upang maiwasang tawagan ang utos ng tsaa sa bawat oras, maaari mo itong paganahin bilang isang unibersal na virtual environment manager at handler para sa mga nawawalang programa. Sa kasong ito, kung ang isang tumatakbong programa ay hindi magagamit, ito ay mai-install, at kung ito ay na-install dati, ito ay ilulunsad sa sarili nitong kapaligiran. $ deno zsh: command not found: deno $ cd my-project $ deno tea: pag-install ng deno.land^1.22 deno 1.27.0 > ^D

Sa kasalukuyan, ang mga package na available para sa Tea ay nakaayos sa dalawang koleksyon—pantry.core at pantry.extra—na kinabibilangan ng metadata na naglalarawan ng mga source ng pag-download ng package, build script, at dependencies. Kasama sa koleksyon ng pantry.core ang mga pangunahing aklatan at kagamitan, pinananatili at sinubok ng mga developer ng Tea. Ang Pantry.extra ay para sa mga pakete na hindi pa stable o isinumite ng mga miyembro ng komunidad. Ang isang web interface ay ibinigay para sa pag-navigate sa pamamagitan ng mga pakete.

Ang proseso ng paggawa ng mga package para sa Tea ay lubos na pinasimple at bumubuo sa paglikha ng isang unibersal na package.yml file (halimbawa), na inaalis ang pangangailangan na iakma ang package para sa bawat bagong bersyon. Maaaring mag-link ang package sa GitHub para makita ang mga bagong bersyon at i-download ang kanilang code. Inilalarawan din ng file ang mga dependency at nagbibigay ng mga build script para sa mga sinusuportahang platform. Ang mga naka-install na dependency ay hindi nababago (ang bersyon ay naayos), na pumipigil sa pag-ulit ng mga sitwasyong katulad ng insidente sa kaliwa.

Kasama sa mga plano sa hinaharap ang paglikha ng mga desentralisadong repositoryo na hindi nakatali sa anumang solong repositoryo at gumagamit ng distributed blockchain para sa metadata at isang desentralisadong imprastraktura para sa pag-iimbak ng package. Direktang certified ng mga maintainer ang mga release at susuriin ng mga stakeholder. Magiging available ang mga token ng Cryptocurrency para sa mga kontribusyon sa pagpapanatili ng package, suporta, pamamahagi, at pagsusuri.

Ang gumawa ng brew ay gumagawa ng bagong package manager tea


Pinagmulan: opennet.ru
Bumili ng maaasahang pagho-host para sa mga site na may proteksyon ng DDoS, mga server ng VPS VDS 🔥 Bumili ng maaasahang website hosting na may proteksyon ng DDoS, VPS VDS servers | ProHoster