criador de cerveja desenvolve novo gerenciador de pacotes de chá

Max Howell, autor do popular sistema de gerenciamento de pacotes macOS brew (Homebrew), está desenvolvendo um novo gerenciador de pacotes chamado Tea, posicionado 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 projeto está sendo inicialmente desenvolvido como um projeto multiplataforma (atualmente há suporte para macOS e Linux, suporte para Windows está em desenvolvimento). O código do projeto é 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).

Tea é conceitualmente diferente dos gerenciadores de pacotes tradicionais e em vez do paradigma "Quero instalar um pacote", ele usa o paradigma "Quero usar um pacote". Em particular, o Tea não possui um comando para instalar um pacote como tal, mas em vez disso usa a geração de ambiente para executar o conteúdo do pacote que não se sobrepõe ao sistema atual. Os pacotes são colocados em um diretório ~/.tea separado e não estão vinculados a caminhos absolutos (eles podem ser movidos).

São fornecidos dois modos principais de operação: acessar um shell de comando com acesso ao ambiente com pacotes instalados e chamar diretamente comandos relacionados ao pacote. Por exemplo, ao executar "tea +gnu.org/wget", o gerenciador de pacotes baixará o utilitário wget e todas as dependências necessárias e, em seguida, fornecerá acesso ao shell no ambiente em que o utilitário wget instalado estiver disponível. A segunda opção envolve o lançamento direto - “tea +gnu.org/wget wget https://some_webpage”, no qual o utilitário wget será instalado e iniciado imediatamente em um ambiente separado. É possível compor cadeias complexas, por exemplo, para baixar o arquivo white-paper.pdf e processá-lo com o utilitário glow, você pode usar a seguinte construção (se faltarem wget e glow, eles serão instalados): tea + gnu.org/wget wget -qO- https://tea.xyz/white-paper.pdf | tea +charm.sh/glow glow - ou você pode usar uma sintaxe mais simples: tea -X wget -qO- tea.xyz/white-paper | chá -X brilho —

De forma semelhante, você pode executar scripts, exemplos de código e one-liners diretamente, carregando automaticamente as ferramentas necessárias para seu funcionamento. Por exemplo, executar "tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go -yellow" instalará o kit de ferramentas Go e executará o script colors.go com o argumento "-yellow".

Para não chamar sempre o comando tea, é possível conectá-lo como gerenciador universal de ambientes virtuais e manipulador de programas ausentes. Neste caso, se o programa em execução não estiver disponível, ele será instalado e, se tiver sido instalado anteriormente, será lançado em seu ambiente. $ deno zsh: comando não encontrado: deno $ cd meu projeto $ deno tea: instalando deno.land^1.22 deno 1.27.0 > ^D

Em sua forma atual, os pacotes disponíveis para o Tea são coletados em duas coleções - pantry.core e pantry.extra, que incluem metadados que descrevem fontes de download de pacotes, scripts de construção e dependências. A coleção pantry.core inclui as principais bibliotecas e utilitários, mantidos atualizados e testados pelos desenvolvedores do Tea. Pantry.extra contém pacotes que não estão suficientemente estabilizados ou que são sugeridos por membros da comunidade. Uma interface web é fornecida para navegar pelos pacotes.

O processo de criação de pacotes para Tea é bastante simplificado e se resume à criação de um arquivo package.yml universal (exemplo), que não requer adaptação do pacote para cada nova versão. Um pacote pode ser vinculado ao GitHub para descobrir novas versões e baixar seu código. O arquivo também descreve 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 painel esquerdo.

No futuro, está prevista a criação de repositórios descentralizados que não estejam vinculados a nenhum armazenamento separado e utilizem uma blockchain distribuída para metadados e uma infraestrutura descentralizada para armazenamento de pacotes. As versões serão certificadas diretamente pelos mantenedores e revisadas pelas partes interessadas. É possível distribuir tokens de criptomoeda para contribuições na manutenção, suporte, distribuição e verificação de pacotes.

criador de cerveja desenvolve novo gerenciador de pacotes de chá


Fonte: opennet.ru

Adicionar um comentário