tea създава нови технологии, които ще променят начина, по който се разпространява кодът
Макс Хауъл, автор на популярната система за управление на пакети варя (Homebrew) на macOS, разкри това работи върху разработването на нов пакетен мениджър, наречен Tea, който е позициониран като продължение на разработката на brew, надхвърляйки мениджъра на пакети и предлагайки унифицирана инфраструктура за управление на пакети, която работи с децентрализирани хранилища.
Чаят концептуално не прилича на традиционните мениджъри на пакети., и вместо парадигмата „Искам да инсталирам пакет“, той използва подхода „Искам да използвам пакет“.
По-специално Tea няма команда за инсталиране на пакет като такъв, но вместо това използва генериране на среда за изпълнение на съдържание на пакет, което не се припокрива с текущата система. Пакетите се поставят в отделна директория ~/.tea и не се присвояват на абсолютни пътеки (те могат да се местят).
В Tea има два основни режима на операция: Преминете към командна обвивка с достъп до среда с инсталирани пакети и директно извикване на команди, свързани с пакета. Например, чрез стартиране на "tea +gnu.org/wget", мениджърът на пакети ще изтегли помощната програма wget и всички необходими зависимости и след това ще предостави достъп до обвивката в среда, в която е налична инсталираната помощна програма wget.
Вторият вариант включва директно стартиране: «tea +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“ като аргумент.
За да не извиквате командата tea всеки път, можете да я свържете като универсален мениджър на виртуални среди и драйвер на липсващи програми. В този случай, ако работещата програма не е налична, тя ще бъде инсталирана и, ако е била инсталирана преди това, ще стартира във вашата среда.
В сегашния си вид, наличните опаковки за Tea са събрани в две колекции, килер.ядро и килер.доп, което включва метаданни, описващи източници за изтегляне на пакети, скриптове за изграждане и зависимости.
Колекцията pantry.core включва основни библиотеки и помощни програми, които разработчиците на Tea поддържан актуален и тестван. pantry.extra съдържа пакети, които не са добре стабилизирани или които са предложени от общността. Осигурен е уеб интерфейс за навигация в пакетите.
Процесът на създаване на пакети за Tea е значително опростен и сведен до създаване на универсален файл package.yml (пример), който не изисква пакетът да се адаптира за всяка нова версия. За да откриете нови версии и да изтеглите неговия код, пакетът може да бъде свързан към GitHub.
Файлът също така описва зависимости и предоставя скриптове за изграждане за поддържани платформи. Инсталираните зависимости са неизменни (версията е фиксирана), което елиминира повтарящи се ситуации, подобни на инцидента с левия панел.
В бъдеще се планира да се създадат децентрализирани хранилища, коитоue не са обвързани с отделно хранилище и използват разпределен блокчейн за метаданни и децентрализирана инфраструктура за съхраняване на пакети. Версиите ще бъдат директно сертифицирани от поддържащите и прегледани от заинтересованите страни. Възможно е да се разпространяват токени за криптовалута, за да се допринесе за поддръжката, поддръжката, разпространението и проверката на пакети.
И накрая, заслужава да се спомене, че в момента проектът първоначално е разработен като кросплатформен (Понастоящем се поддържат macOS и Linux, поддръжката за Windows е в процес на разработка.) Кодът на проекта е написан на TypeScript и е издаден под лиценза Apache 2.0 (brew е написан на Ruby и е доставен под лиценз BSD).
Ако се интересувате от възможността да научите повече за него, можете да се консултирате с подробностите и ръководството за потребителя на Tea на следваща връзка.