Стваральнік brew развівае новы пакетны мэнэджар tea

Макс Хауэлл (Max Howell), аўтар папулярнай на платформе macOS сістэмы кіравання пакетамі brew (Homebrew), развівае новы пакетны мэнэджар Tea, які пазіцыянуецца як працяг развіцця brew, якое выходзіць за рамкі пакетнага мэнэджара і што прапануе ўніфікаваную інфраструктуру кіравання пакетамі, што працуе з дэцэнтралізаванымі рэпазітарамі. Праект першапачаткова развіваецца як шматплатформавы (у цяперашні час падтрымліваюцца macOS і Linux, у распрацоўцы падтрымка Windows). Код праекту напісаны на мове TypeScript і распаўсюджваецца пад ліцэнзіяй Apache 2.0 (brew быў напісаны на Ruby і пастаўляўся пад ліцэнзіяй BSD).

Tea канцэптуальна не паходзіць на традыцыйныя пакетныя мэнэджары і замест парадыгмы "я хачу ўсталяваць пакет" выкарыстоўвае прынцып "я хачу выкарыстоўваць пакет". У прыватнасці, у Tea няма як такой каманды для ўсталёўкі пакета, замест якой ужываецца фармаванне асяроддзя для выканання змесціва пакета, не перасякальнага з бягучай сістэмай. Пакеты размяшчаюцца ў асобным каталогу ~/.tea і не прывязваюцца да абсалютных шляхоў (могуць быць перамешчаныя).

Падаецца два асноўных рэжыму працы: пераход у камандную абалонку з доступам да асяроддзя з усталяванымі пакетамі і прамы выклік злучаных з пакетам каманд. Напрыклад, пры выкананні "tea +gnu.org/wget" пакетны мэнэджар загрузіць утыліту wget і ўсе неабходныя залежнасці, пасля чаго падасць shell-доступ у асяроддзі, у якім даступная ўсталяваная ўтыліта wget. Другі варыянт мае на ўвазе прамы запуск - "tea +gnu.org/wget wget https://some_webpage", пры якім будзе ўсталявана ўтыліта wget і адразу запушчана ў асобным асяроддзі. Магчымая кампаноўка складаных ланцужкоў, напрыклад, для загрузкі файла white-paper.pdf і яго апрацоўкі ўтылітай glow можна выкарыстоўваць наступную канструкцыю (калі wget і glow адсутнічаюць, яны будуць усталяваныя): tea +gnu.org/wget wget -qO- https:/ /tea.xyz/white-paper.pdf | tea +charm.sh/glow glow - ці можна выкарыстоўваць прасцейшы сінтаксіс: tea -X wget -qO- tea.xyz/white-paper | tea-X glow -

Падобнай выявай можна напроста запускаць скрыпты, прыклады кода і аднарадкоўнікі, аўтаматычна падгружаючы неабходны для іх працы інструментар. Напрыклад, выкананне "tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go —yellow" прывядзе да ўстаноўкі інструментара мовы Go і выкананню скрыпту colors.go з аргументам "—yellow".

Каб не выклікаць каманду tea кожны раз падаецца магчымасць яе падлучэння як універсальнага мэнэджара віртуальных асяроддзяў і апрацоўшчыка адсутных праграм. У гэтым выпадку, калі запушчаная праграма недаступная, яна будзе ўсталяваная, а калі ўсталёўвалася раней - запушчаная ў сваім асяроддзі. $ deno zsh: не выкарыстоўваецца: deno $ cd my-project $ deno tea: installing deno.land^1.22 deno 1.27.0 > ^D

У бягучым выглядзе даступныя для Tea пакеты сабраны ў двух калекцыях – pantry.core і pantry.extra, якія ўключаюць метададзеныя, якія апісваюць крыніцы загрузкі пакетаў, сцэнары зборкі і залежнасці. Калекцыя pantry.core уключае асноўныя бібліятэкі і ўтыліты, якія падтрымліваюцца ў актуальным выглядзе і пратэставаныя распрацоўшчыкамі Tea. У pantry.extra змяшчаюцца нядосыць стабілізаваныя пакеты або пакеты, прапанаваныя прадстаўнікамі супольнасці. Для навігацыі па пакетах прадстаўлены web-інтэрфейс.

Працэс стварэння пакетаў для Tea моцна спрошчаны і зводзіцца да стварэння аднаго ўніверсальнага файла package.yml (прыклад), не які патрабуе адаптацыі пакета для кожнай новай версіі. Для выяўлення новых версій і для загрузкі іх кода пакет можа спасылацца на GitHub. У файле таксама апісваюцца залежнасці і прыводзяцца сцэнары зборкі для падтрымоўваных платформаў. Устанаўліваюцца залежнасці нязменныя (фіксуецца версія), што выключае паўтарэнне сітуацый, падобных на інцыдэнт з left-pad.

У далейшым плануецца стварэнне дэцэнтралізаваных рэпазітароў, якія не прывязаныя да нейкага асобнага сховішча і выкарыстоўваюць для метададзеных размеркаваны блокчэйн, а для захоўвання пакетаў дэцэнтралізаваную інфраструктуру. Рэлізы будуць завярацца непасрэдна суправаджаючымі і рэцэнзавацца зацікаўленымі асобамі. Прадугледжана магчымасць размеркавання криптовалютных токенаў за ўклад у суправаджэнне, падтрымку, распаўсюджванне і праверку пакетаў.

Стваральнік brew развівае новы пакетны мэнэджар tea


Крыніца: opennet.ru

Дадаць каментар