ang tsaa ay lumilikha ng mga bagong teknolohiya na magbabago sa paraan ng pamamahagi ng code
Max Howell, may-akda ng sikat na sistema ng pamamahala ng pakete magluto (Homebrew) ng macOS, ibinunyag iyon ay nagtatrabaho sa pagbuo ng isang bagong manager ng package, na tinatawag na Tea, na nakaposisyon bilang isang pagpapatuloy ng pag-unlad ng brew, na lumalampas sa manager ng package at nag-aalok ng pinag-isang imprastraktura ng pamamahala ng package na gumagana sa mga desentralisadong repositoryo.
Ang tsaa ay hindi konsepto tulad ng tradisyonal na mga tagapamahala ng pakete., at sa halip na paradigm na "Gusto kong mag-install ng package," ginagamit nito ang diskarte na "Gusto kong gumamit ng package."
Sa partikular Ang tsaa ay walang package install command tulad nito, ngunit sa halip ay gumagamit ng pagbuo ng kapaligiran upang patakbuhin ang mga nilalaman ng package na hindi nagsasapawan sa kasalukuyang sistema. Ang mga package ay inilalagay sa isang hiwalay na ~/.tea na direktoryo at hindi itinalaga sa ganap na mga landas (maaari silang ilipat).
Dalawang pangunahing mode ang ibinibigay sa Tea ng pagpapatakbo: Tumalon sa isang command shell na may access sa isang kapaligiran na may mga naka-install na package at direktang nag-invoke ng mga command na nauugnay sa package. Halimbawa, sa pamamagitan ng pagpapatakbo ng "tea +gnu.org/wget", ida-download ng package manager ang wget utility at lahat ng kinakailangang dependency, at pagkatapos ay magbibigay ng shell access sa isang kapaligiran kung saan available ang naka-install na wget utility.
Ang pangalawang opsyon ay nagsasangkot ng direktang paglulunsad: «tea +gnu.org/wget -qO- tea.xyz/white-paper | tsaa +charm.sh/glow glow – ", na mag-i-install ng wget utility at patakbuhin ito kaagad sa isang hiwalay na kapaligiran, na nagda-download ng isang file na ire-render na may glow. Ang kumplikadong chaining ay posible, halimbawa, upang i-download ang white-paper.pdf file at iproseso ito gamit ang glow utility, maaari mong gamitin ang sumusunod na construct (kung wala ang wget at glow, mai-install ang mga ito).
Katulad nito, maaari kang direktang magpatakbo ng mga script, mga sample ng code at one-liner, awtomatikong naglo-load ng mga tool na kailangan para sa trabaho.
Para sa walang halimbawa, tumakbo:
tea https://gist.githubusercontent.com/i0bj/2b3afbe07a44179250474b5f36e7bd9b/raw/colors.go --yellow
tea: installing go 1.18.3
go: installing deps
go: running colors.go
…
I-install nito ang toolkit ng wika ng Go at patakbuhin ang script ng colors.go na may "–dilaw" bilang argumento.
Upang hindi tumawag sa utos ng tsaa sa bawat oras, posible na ikonekta ito bilang isang unibersal na tagapamahala ng mga virtual na kapaligiran at isang driver ng mga nawawalang programa. Sa kasong ito, kung ang tumatakbong programa ay hindi magagamit, ito ay mai-install at, kung dati nang naka-install, ito ay magsisimula sa iyong kapaligiran.
Sa kasalukuyang form, ang mga pakete na magagamit para sa Tsaa ay kinokolekta sa dalawang koleksyon, pantry.core at pantry.extra, na kinabibilangan ng metadata na naglalarawan ng mga pinagmumulan ng pag-download ng package, mga build script, at mga dependency.
Ang koleksyon Kasama sa pantry.core ang mga pangunahing aklatan at utility na mga developer ng Tea napanatiling napapanahon at nasubok. pantry.extra ay naglalaman ng mga pakete na hindi maayos na nagpapatatag o na iminumungkahi ng komunidad. Ang isang web interface ay ibinigay upang mag-navigate sa mga pakete.
Ang proseso ng paggawa ng mga package para sa Tea ay lubos na pinasimple at nababawasan sa paglikha ng isang unibersal na package.yml file (halimbawa), na hindi nangangailangan ng package na iakma para sa bawat bagong bersyon. Upang tumuklas ng mga bagong bersyon at i-download ang code nito, maaaring i-link ang package sa GitHub.
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 (naayos ang bersyon), na nag-aalis ng mga paulit-ulit na sitwasyon na katulad ng insidente sa kaliwang pad.
Sa hinaharap, ito ay binalak na lumikha ng mga desentralisadong repositoryo naue ay hindi nakatali sa anumang hiwalay na storage at gumagamit ng isang distributed blockchain para sa metadata at isang desentralisadong imprastraktura upang mag-imbak ng mga pakete. Ang mga bersyon ay direktang sertipikado ng mga maintainer at susuriin ng mga interesadong partido. Posibleng ipamahagi ang mga token ng cryptocurrency upang mag-ambag sa pagpapanatili, suporta, pamamahagi at pag-verify ng mga pakete.
Sa wakas, ito ay nagkakahalaga ng pagbanggit na sa kasalukuyan ang proyekto ay unang binuo bilang cross-platform (Ang macOS at Linux ay kasalukuyang sinusuportahan, ang suporta sa Windows ay nasa ilalim ng pag-unlad.) Ang code ng proyekto ay nakasulat sa TypeScript at inilabas sa ilalim ng Apache 2.0 na lisensya (ang brew ay isinulat sa Ruby at ipinadala sa ilalim ng lisensya ng BSD).
Kung interesado kang matuto nang higit pa tungkol dito, maaari mong konsultahin ang mga detalye ng Tea at user manual sa sumusunod na link.