Tea, o novo gerenciador de pacotes do criador de cerveja

Chá

tea está criando novas tecnologias que mudarão a maneira como o código é distribuído

Max Howell, autor do popular sistema de gerenciamento de pacotes Homebrew para macOS, o brew , anunciou que está trabalhando no desenvolvimento de um novo gerenciador de pacotes chamado Tea, que se posiciona como uma continuação do desenvolvimento do brew, indo além do gerenciador de pacotes e oferecendo uma infraestrutura unificada de gerenciamento de pacotes que funciona com repositórios descentralizados.

O Tea não é conceitualmente como os gerenciadores de pacotes tradicionais e, em vez do paradigma "quero instalar um pacote", usa a abordagem "quero usar um pacote".

Especificamente, o Tea não possui um comando de instalação de pacotes como tal; em vez disso, ele usa a geração de ambientes para executar o conteúdo dos pacotes que não se sobrepõem ao sistema atual. Os pacotes são colocados em um diretório separado ~/.tea e não são atribuídos a caminhos absolutos (eles podem ser movidos).

O Tea oferece dois modos básicos de operação: acessar um shell de comando com acesso a um ambiente com pacotes instalados e invocar diretamente comandos relacionados a pacotes. Por exemplo, executar "tea +gnu.org/wget" fará com que o gerenciador de pacotes baixe o utilitário wget e todas as dependências necessárias e, em seguida, forneça acesso ao shell em um ambiente onde o utilitário wget instalado esteja disponível.

A segunda opção envolve uma execução direta: ` tea +gnu.org/wget -qO- tea.xyz/white-paper | tea +charm.sh/glow glow -` , que instalará o utilitário wget e o executará imediatamente em um ambiente separado, baixando um arquivo que será então renderizado com o glow. Uma cadeia mais complexa é possível; por exemplo, para baixar o arquivo `white-paper.pdf` e processá-lo com o utilitário glow, você pode usar o seguinte comando (se wget e glow ainda não estiverem presentes, eles serão instalados).

Da mesma forma, você pode executar scripts , exemplos de código e frases inteligentes diretamente, carregando automaticamente as ferramentas necessárias para a tarefa.

Para nenhum exemplo, execute:

tea https://gist.githubusercontent.com/i0bj/2b3afbe07a44179250474b5f36e7bd9b/raw/colors.go --yellow
tea: installing go 1.18.3
go: installing deps
go: running colors.go
…

Ele instalará o kit de ferramentas da linguagem Go e executará o script colors.go com o argumento “–yellow”.

Para evitar chamar o comando tea sempre que necessário, você pode conectá-lo como um gerenciador universal de ambientes virtuais e um manipulador de programas ausentes. Nesse caso, se o programa em execução estiver indisponível, ele será instalado e, se já estiver instalado, será executado no seu ambiente.

Em sua forma atual, os pacotes disponíveis para o Tea estão reunidos em duas coleções , pantry.core e pantry.extra , que incluem metadados descrevendo as fontes de download dos pacotes, os scripts de compilação e as dependências.

A coleção pantry.core inclui bibliotecas e utilitários essenciais que os desenvolvedores do Tea mantêm atualizados e testados. A coleção pantry.extra contém pacotes que ainda não estão bem estabilizados ou que foram sugeridos pela comunidade. Uma interface web é fornecida para navegar pelos pacotes.

O processo de criação de pacotes para o Tea é bastante simplificado e reduzido à criação de um arquivo package.yml universal (exemplo), que não exige que o pacote seja adaptado a cada nova versão. Para descobrir novas versões e baixar seu código, o pacote pode ser vinculado ao GitHub.

O arquivo também descreve as dependências e fornece scripts de construção para plataformas suportadas. As dependências instaladas são imutáveis ​​(a versão é fixa), o que elimina a repetição de situações semelhantes ao incidente do teclado esquerdo.

No futuro, estão previstos planos para criar repositórios descentralizados que não estejam vinculados a nenhum armazenamento separado e para usar um blockchain distribuído para metadados e uma infraestrutura descentralizada para armazenar pacotes. As versões serão certificadas diretamente pelos mantenedores e revisadas pelas partes interessadas. Poderá ser possível distribuir tokens de criptomoeda para contribuir com a manutenção, o suporte, a distribuição e a verificação dos pacotes.

Por fim, vale mencionar que o projeto está sendo desenvolvido como um aplicativo multiplataforma (atualmente, há suporte para macOS e Linux, e o suporte para Windows está em desenvolvimento). O código do projeto foi escrito em TypeScript e distribuído sob a licença Apache 2.0 (o brew foi escrito em Ruby e distribuído sob a licença BSD).

Se tiver interesse em saber mais, você pode consultar os detalhes e o manual do usuário do Tea no seguinte link.


Adicionar como fonte preferencial no Google