Começando com o boss

Matheus Hunsche
4 min readNov 14, 2018

--

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”.

--

--

Matheus Hunsche

Graduating in Computer Engineering, Speaker, Embarcadero Engineer, Security Expert, DevOps, Docker, AWS, Linux and Software Architecture.