Макс Хауэлл, автор популярной системы управления пакетами заваривать (Homebrew) macOS, сообщил, что работает над разработкой нового менеджера пакетов под названием Tea, который позиционируется как продолжение разработки brew, выходящее за рамки менеджера пакетов и предлагающее единую инфраструктуру управления пакетами, работающую с децентрализованными репозиториями.
Tea концептуально не похож на традиционные менеджеры пакетов., и вместо парадигмы «Я хочу установить пакет» используется подход «Я хочу использовать пакет».
В частности, В Tea нет команды установки пакета как таковой, но вместо этого использует генерацию среды для запуска содержимого пакета, которое не пересекается с текущей системой. Пакеты размещаются в отдельной директории ~/.tea и не имеют абсолютных путей (их можно перемещать).
В Tea предусмотрено два основных режима. операции: переход в командную оболочку с доступом к среде с установленными пакетами и прямой вызов команд, связанных с пакетами. Например, запустив «tea +gnu.org/wget», менеджер пакетов загрузит утилиту wget и все необходимые зависимости, а затем предоставит доступ к оболочке в среде, где доступна установленная утилита wget.
Второй вариант предполагает прямой пуск: «чай +gnu.org/wget -qO- tea.xyz/white-paper | чай +charm.sh/glow свечение – «, которая установит утилиту wget и сразу же запустит ее в отдельном окружении, скачав файл, который будет отображаться со свечением. Возможна сложная цепочка, например, чтобы скачать файл white-paper.pdf и обработать его утилитой Glow, можно использовать следующую конструкцию (если wget и Glow нет, то они будут установлены).
Кроме того, вы можете напрямую запускать скрипты, образцы кода и однострочники, автоматически загружающие инструменты, необходимые для работы.
Чтобы не было примера, запустите:
tea https://gist.githubusercontent.com/i0bj/2b3afbe07a44179250474b5f36e7bd9b/raw/colors.go --yellow
tea: installing go 1.18.3
go: installing deps
go: running colors.go
…
Он установит инструментарий языка Go и запустит скрипт colors.go с аргументом «–yellow».
Чтобы каждый раз не вызывать чайную команду, можно подключить ее как универсальный менеджер виртуальных сред и драйвер недостающих программ. В этом случае, если работающая программа недоступна, она будет установлена и, если она была установлена ранее, запустится в вашей среде.
В нынешнем виде пакеты, доступные для чая, собраны в две коллекции, кладовая.ядро и кладовая.дополнительно, который включает метаданные, описывающие источники загрузки пакетов, сценарии сборки и зависимости.
Коллекция pantry.core включает основные библиотеки и утилиты, которые разработчики Tea поддерживается в актуальном состоянии и тестируется. pantry.extra содержит плохо стабилизированные пакеты или предложенные сообществом. Для навигации по пакетам предусмотрен веб-интерфейс.
Процесс создания пакетов для Tea значительно упрощен и сводится к созданию универсального файла package.yml (пример), который не требует адаптации пакета под каждую новую версию. Чтобы найти новые версии и загрузить его код, пакет можно связать с GitHub.
Файл также описывает зависимости и предоставляет сценарии сборки для поддерживаемых платформ. Установленные зависимости неизменяемы (версия фиксирована), что исключает повторение ситуаций, подобных инциденту с левой площадкой.
В дальнейшем планируется создание децентрализованных хранилищ, которыеue не привязаны к какому-либо отдельному хранилищу и используют распределенный блокчейн для метаданных и децентрализованную инфраструктуру для хранения пакетов. Версии будут напрямую сертифицированы сопровождающими и проверены заинтересованными сторонами. Можно распространять токены криптовалюты, чтобы способствовать обслуживанию, поддержке, распространению и проверке пакетов.
Наконец, стоит отметить, что в настоящее время проект изначально разрабатывается как кроссплатформенный (В настоящее время поддерживаются macOS и Linux, поддержка Windows находится в стадии разработки.) Код проекта написан на TypeScript и выпущен под лицензией Apache 2.0 (brew был написан на Ruby и поставляется под лицензией BSD).
Если вы заинтересованы в том, чтобы узнать больше об этом, вы можете ознакомиться с подробной информацией о Tea и руководством пользователя на веб-сайте. по следующей ссылке.