Começando com o boss
Porque ele existe
No cenário atual, cada vez mais necessitamos de ferramentas que nos auxiliam no trabalho do dia a dia. Quando falamos de microservices, integração contínua ou de distribuição de packages, nos vem à cabeça um problema gigante para lidarmos no mundo Delphi. Isto mudou quando decidimos criar o boss, ele veio para acabar com problemas ligados a dependências recursivas de packages, imagine gerenciar N níveis de dependências entre packages em seu projeto, isso causa uma grande dor de cabeça, logo, o boss veio para resolver isso de maneira muito simples e sutil, com apenas um simples comando. Outro grande problema sempre foi a atualização destes packages entre múltiplos projetos, algo que é muito comum em cenários de microservices, onde precisamos manter a compatibilidade entre as versões dos packages e atualizar quando necessário os serviços que fazem uso deste package, com o seu sistema de controle de versão por semantic version, o boss trata este grande problema de maneira sofistica seguindo um excelente padrão de mercado. Por último mas não menos importante, temos à necessidade de automatizar a instalação de dependências em ambientes de integração contínua, onde antigamente nos forçava a mandar junto todo o fonte de suas dependências, agora pode ser facilmente resolvido com um único comando inteligente do boss.
Instalando o bixo
Para instalarmos o boss é muito simples, podemos baixar o último binário disponível nas releases do github, mover ele para um path do Windows e ser feliz com seus comandos.
Os releases podem ser encontrados neste belo link:
Você pode simplesmente jogar o binário em C:\Windows\System32, ou se preferir fazer algo mais profissional jogue em uma pasta e mapeie está mesma pasta na variavel de ambiente PATH do sistema operacional.
Após fazer este belo trabalho, rode o comando “boss” em seu terminal favorito, seja ele Power Shell, Bash, CMD, etc. Se a saída for igual a da imagem abaixo, você é um campeão.
Se alguém quiser fazer um instalador para Windows no padrão next, next, next. Por favor fique à vontade, contribuições sempre são bem-vindas, vamos tornar este projeto, nosso projeto.
E agora, como instalamos um package?
O boss nos permite instalar qualquer repositório git como package, vamos fazer um exemplo na prática.
Vamos utilizar o magnífico package horse, para quem não o conhece, este package é utilizado para a criação de APIs http, leves, simples e poderosas. Mais informações no link abaixo:
Enfim chega de Jabá, vamos pôr a mão na massa.
Crie um projeto Delphi normalmente, e através de seu terminal favorito navegue até a pasta onde você salvou este projeto.
No caso acima criei o projeto boss_sample, e salvei na pasta boss-sample localizada em C:\Users\MHunsche\projects\boss-sample.
Quando temos projetos novos onde não está sendo utilizado o boss, precisamos inicializá-lo. Este processo pode ser feito através do comando “boss init”.
Veja na imagem acima, que este comando gerou um arquivo chamado “boss.json”, é nele onde contem todas as informações referentes ao seu projeto e versões dos packages que vamos instalar.
Após ter inicializado o boss, podemos instalar finalmente o package horse, com o comando “boss install github.com/HashLoad/horse”.
Após realizar o comando acima, automaticamente a última versão compatível do package é instalada em seu projeto, e adicionada em seu “Search Path” permitindo o uso imediato do package.
Note que foi criada uma pasta modules em seu diretório, nesta pasta ficam todas as dependências e sub-dependencias dos seus packages.
Se você estiver utilizando um controle de versão como o git, lembre-se de pôr esta pasta no .gitignore, pois é possível instalar todos os packages do seu projeto através do boss.json, com um único comando “boss install”.
Considerações
- O boss está preparado para lidar com repositórios privados, para inserir suas credenciais tanto por https ou por ssh, basta usar o comando “boss login <url do repositório>”, como exemplo “boss login github.com”.
- Para publicar packages no boss, basta criar tags seguindo o padrão semantic version.
- O boss faz uma instalação recursiva de todas as sub-dependências de seus packages.
- Para deletar uma dependência, basta excluir a linha referente a ela no arquivo boss.json, e rodar o comando “boss install”.