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

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3265
Зарегистрирован: 20.08.2022

#

Создатель brew развивает новый пакетный менеджер tea
Дата публикации:Mon, 05 Dec 2022 20:21:21 +0300


Макс Хауэлл (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 ... /colors.go --yellow" приведёт к установке инструментария языка Go и выполнению скрипта colors.go с аргументом "--yellow".

Чтобы не вызывать команду tea каждый раз предоставляется возможность её подключения как универсального менеджера виртуальных окружений и обработчика отсутствующих программ. В этом случае если запущенная программа недоступна, она будет установлена, а если устанавливалась ранее - запущена в своём окружении.


$ deno
zsh: command not found: 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.


В дальнейшем планируется создание децентрализованных репозиториев, не привязанных к какому-то отдельному хранилищу и использующих для метаданных распределённый блокчейн, а для хранения пакетов децентрализованную инфраструктуру. Релизы будут заверяться напрямую сопровождающими и рецензироваться заинтересованными лицами. Предусмотрена возможность распределения криптовалютных токенов за вклад в сопровождение, поддержку, распространение и проверку пакетов.
Изображение


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=58269

Жизнь за Нер'зула!

Ответить