Blog Aprenda a compatibilizar sua biblioteca com o Boss

Aprenda a compatibilizar sua biblioteca com o Boss

Aprenda a compatibilizar sua biblioteca com o Boss post thumbnail image

O Boss é uma ferramenta de gerenciamento de pacotes criada especificamente para o ambiente de desenvolvimento Delphi pela equipe HashLoad e é OpenSource. Ele automatiza o processo de busca, instalação, atualização e remoção de bibliotecas e componentes Delphi, que são essenciais para o desenvolvimento de aplicações robustas. Funciona de maneira semelhante a outros gerenciadores de pacotes populares como npm para Node.js ou Maven para Java, mas é totalmente dedicado ao ecossistema Delphi.

Por que é importante fazer a gestão de dependências em sistemas?

A gestão de dependências é um aspecto fundamental no desenvolvimento de software moderno. Ela permite que os desenvolvedores:

  • Evitem conflitos de versões: Assegura que todos os componentes do projeto funcionem com compatibilidade, evitando que atualizações incompatíveis quebrem funcionalidades existentes.
  • Mantenham consistência: Todos os desenvolvedores trabalham com as mesmas versões de cada dependência, garantindo que o software se comporte de maneira uniforme, independentemente do ambiente de desenvolvimento.
  • Facilitem upgrades: Atualizar um pacote é tão simples quanto modificar a versão em uma configuração e deixar que o gerenciador trate de resolver qualquer questão de compatibilidade.

Vantagens de instalar bibliotecas e componentes diretamente no projeto

Um das grandes vantagens de outras IDE/linguagens de desenvolvimento é jutamente instalar componentes e bibliotecas diretamente no projeto, ao invés de instalar na IDE, como acontece no Delphi. Isso muitas vezes dificulta a reinstalação do Delphi quando há necessidade, por isso usar o Boss no dia a dia torna a vida do desenvolvedor mais fácil. Instalar componentes diretamente no projeto ao invés de no ambiente de desenvolvimento Delphi traz benefícios significativos:

  • Flexibilidade e Isolamento: Permite que diferentes projetos usem versões diferentes de uma mesma biblioteca sem interferência, facilitando testes e upgrades.
  • Simplificação do controle de versões e colaboração: Quando as bibliotecas estão integradas ao projeto, as informações de versão são compartilhadas através do controle de versão, melhorando a colaboração em equipe.
  • Reprodutibilidade de ambientes: Novos desenvolvedores podem configurar seus ambientes rapidamente, simplesmente clonando o repositório e instalando as dependências necessárias.

Claro que continuaremos instalando componentes diretamente na IDE, entretanto podemos compatibilizar nossas próprias bibliotecas com o Boss, assim podemos simplesmente instalar tais bibliotecas diretamente no projeto. Tenho certeza que você tem aquela unit de funções ou conjunto de units com diversas funções que você sempre usa em diversos projetos diferentes.

Onde o GitHub entra nessa história?

O GitHub é crucial para o gerenciamento de código-fonte usando Git, apesar do Boss ser compatível com outras ferramentas. Ele oferece funcionalidades que facilitam a colaboração entre desenvolvedores, como:

  • Controle de versão: Manter um histórico completo de alterações, permitindo reverter para versões anteriores se necessário.
  • Issues e Pull Requests: Gerenciar tarefas e melhorias, além de revisar e discutir mudanças no código antes de integrá-las ao projeto principal.
  • Releases e Tags: Marcar versões específicas do software para liberação, usando tags para controlar versões estáveis.

Criando um projeto teste no GitHub

Não vamos nos aprofundar no GitHub, vamos falar somente dos passos necessários pra colocar seu projeto lá e compatibilizar para que você possa fazer a instalação da sua biblioteca por Boss em seus projetos.

Requisito: Ter uma conta válida no GitHub.

Nesse tutorial vamos simular um cenário. Imagine que você possui uma unit recheada de funções e procedimentos genéricos que você costuma usar em seus projetos. Nós vamos criar um repositório, armazenar essa função e compatibilizar para que possamos usá-la com o Boss.

  1. Login no GitHub: Acesse sua conta.
  2. Criar repositório: Clique em “New repository”.
  3. Configurar repositório: Defina o nome, descrição e visibilidade (pública ou privada).
  4. Inicializar repositório: Opcionalmente, adicione um README, .gitignore, e escolha uma licença.
  5. Criar repositório: Clique em “Create repository”.

Uma dica é escolher o .gitignore e marcar a linguagem Delphi. Isso fará com que ao subir versões novas da sua biblioteca para o GitHub, arquivos desnecessários não sejam enviados, tais como .dcus, arquivos de histórico do Delphi, entre outros arquivos. Eis um exemplo de configuração abaixo:

O nome do repositório será usado para fazer a instalação pelo Boss. No exemplo acima teremos a seguinte linha de comando:

Não é necessário adicionar https:// no Boss. Basta incluir github.com/<usuario>/<nome_biblioteca>, ou seja, bem fácil.

Em seguida, você será redirecionado para a tela principal do seu repositório, que se parecerá com essa tela.

O próximo passo é baixar esse repositório e cadastrá-lo em uma ferramenta client de Git, recomendo o Source Tree, que é bem fácil de usar e gratuito. Caso não tenha nenhum conhecimento sobre Git/GitHub e Source Tree, vou deixar abaixo um vídeo do meu amigo Gabriel Baltazar que vai abrir sua mente e ensinar você a entrar nesse mundo de GitHub.

Download da biblioteca

Você deve estar pensando: “Mas acabei de criar a biblioteca, não tenho nada, por que fazer o download.” Costumo realizar esse passo para deixar a biblioteca salva em um diretório comum no meu computador onde poderei fazer alterações nela quando necessário e subir a versão nova. Você pode fazer tudo isso direto no GitHub, porém é bem mais fácil fazer local.

Vou imaginar que você você instalou o Source Tree, ele é fácil e as funções nele são bem parecidas com outras ferramentas, como o GitKraken por exemplo.

Ao abrir o Source Tree, crie uma nova Aba e então clique no botão Clone. Retorne ao GitHub, clique no botão <> Code e copie o endereço do git:

Cole o endereço no primeiro campo do Source Tree. A ferramenta selecionará automaticamente uma pasta no seu computador pra fazer o downloa, modifique a pasta se necessário e também o nome caso seja o seu desejo.

Uma vez feito o download, agora é só copiar as units que compoem sua biblioteca para dentro da pasta. O Source Tree irá detectar automaticamente as mudanças no diretório. Para enviar os arquivos para o GitHub você precisará fazer um Commit, clique no botão correspondente. Em seguida clique em Stage all para que todos os arquivos passem a ser monitorados pelo Source Tree, dê uma descrição para o commit e confirme. Por fim, clique em Push e confirme. O Push irá enviar os arquivos para o GitHub online.

Todos esses passos e detalhes você aprenderá no vídeo que compartilhei anteriorente.

Retorne agora para o GitHub e perceba as mudanças. Pra organizar o projeto criei uma pasta chamada src onde toda a minha biblioteca ficará armazenada. Veja um exemplo abaixo:

É interesssante criar branches, que são, grosseiramente falando, cópias do código-fonte com versões diferentes, assista ao vídeo e entenda melhor.

Releases no GitHub: Uma visão detalhada

No GitHub, um “Release” é uma funcionalidade que permite aos desenvolvedores distribuir versões finais de código para usuários e outros desenvolvedores. É uma maneira de empacotar e entregar software que inclui o código fonte, binários, documentação e outros recursos necessários para o uso ou desenvolvimento do software. Os releases são tipicamente utilizados para marcar pontos específicos na história de um projeto que são considerados estáveis ou que representam uma versão significativa do software.

Componentes de um release

  1. Tag: Cada release é associado a uma tag específica no repositório do Git. Uma tag funciona como uma referência estática para um ponto específico na linha do tempo do repositório. Tags são frequentemente versões semânticas, como v1.0.0, v2.0.0, etc.
  2. Binários: Releases podem incluir arquivos binários, que são versões compiladas do software que podem ser executadas em sistemas operacionais específicos sem a necessidade de compilar o código fonte.
  3. Documentação: Geralmente, documentação relevante é incluída, como notas de lançamento que detalham o que há de novo, melhorado ou corrigido na versão.
  4. Artefatos Adicionais: Qualquer outro recurso relevante para o release, como scripts de instalação, exemplos de código, ou outros documentos.

Processo de criação de um Release

O processo de criação de um release no GitHub é integrado e orientado pela interface de usuário do site:

  1. Acesso aos Releases: Na página principal do repositório no GitHub, há uma seção ou aba chamada “Releases” onde os usuários podem ver todos os releases existentes e criar novos.
  2. Criar um Novo Release: Ao clicar em “Draft a new release”, você é levado para uma página onde pode configurar o novo release. Aqui, você seleciona a tag Git correspondente ao estado do código que deseja liberar. Se a tag ainda não existir, você pode criá-la nesse momento.
  3. Adicionar Detalhes: Você pode adicionar um título ao release e uma descrição detalhada, que geralmente inclui um changelog. Este changelog pode ser automático, baseado em commits, ou manual, com descrições detalhadas das alterações.
  4. Upload de Artefatos: É possível fazer upload de binários e outros artefatos que deveriam acompanhar o release.
  5. Publicar o Release: Após configurar todos os detalhes e adicionar todos os artefatos necessários, o release pode ser publicado, tornando-o disponível para qualquer pessoa com acesso ao repositório.

Benefícios de usar releases

  • Organização: Releases ajudam a manter o projeto organizado, facilitando para usuários e desenvolvedores encontrar versões específicas do software.
  • Rastreabilidade: Cada release é imutável uma vez criado, o que significa que os usuários podem sempre voltar a uma versão anterior se a mais recente apresentar problemas.
  • Comunicação: As notas de release permitem que os desenvolvedores comuniquem eficientemente o que foi alterado, corrigido ou melhorado em uma versão específica do software.

Os releases são, portanto, uma parte integrante do ciclo de vida de desenvolvimento de software no GitHub, oferecendo uma forma robusta e acessível de gerenciar e distribuir versões de software.

O Release também será importante para que possamos baixar o código-fonte da nossa biblioteca em nosso projeto. Vamos criar um release, dar uma tag pra ele e fechar uma versão. Vamos lá:

Na raiz da url da biblioteca note que à direita há um link chamadao “Create a new release”. Clique nele e uma janela vazia será criada. A primeira providência é criar uma TAG. Clique em “Choose a tag”, digite uma tag e em seguida em “Create new tag: …“. Costumo usar sempre a letra “v” e uma versão de três dígitos, é o mais comum no mercado, mas você pode mudar isso se preferir.

Adicione um título e descrição. Veja um exemplo:

Pronto, uma vez feito isso, criamos o primeiro Release e ele já está pronto para ser instalado pelo Boss. Isso mesmo! Fácil assim. Agora poderemos fazer a instalação dessa biblioteca em qualquer projeto simplesmente usando a linha de comando

Instalando o Boss no Windows.

Gravei um vídeo para o meu canal onde mostro como fazer uso do Boss, portanto serei breve aqui no artigo, pois no vídeo você conseguirá ter uma visão mais detalhada. Assista ao vídeo abaixo:

Acesse o GitHub oficial do Boss nesse link. Você pode simplesmente clicar no Release à direita do GitHub, até o fechamento desse artigo a versão era v3.0.12. Na janela que se abre, escolha o sistema operacional e baixe a versão correspondente. Creio que esteja usando o Windows, então poderá escolher entre a versão 32 e 64 bits.

Recomendo criar uma pasta em C:\Boss, acho mais fácil, porém fica a seu critério. Descompacte o arquivo e pronto, você terá o Boss disponível para uso. Recomendo que adicione um caminho nas variáveis de ambiente do Windows para que você consiga acessar o Boss de qualquer lugar no Terminal do Windows. Com isso encerramos a instalação do Boss.

Usando o Boss e instalando sua biblioteca em um projeto

Agora vem a parte mais legal, vamos criar um projeto novo para exemplificar e instalar nele a nossa biblioteca criada e compatibilizada com o Boss. Crie um projeto simples no Delphi, salve em uma pasta e em seguida abra um terminal do Windows e navegue até a pasta do projeto exemplo, na raiz.

Uso aqui o Git Bash dentro do Windows Terminal, criei uma pasta chamda Meu Projeto Exemplo e listei os arquivos na pasta. Veja que ele me mostra os arquivos de projeto e a unit principal.

No terminal a primeira providência é inicializar a gestão de dependências com o comando boss init. Responda as perguntas que o Boss faz (opcionais, portanto você pode dar Enter em tudo se quiser). Isso fará com que o Boss crie os arquivos boss.json e boss-lock.json. Agora basta fazermos a instalação da nossa biblioteca. Digite o comando:

Lembre-se, <usuario> é o seu nome de usuário no GitHub e ele compõe a url da biblioteca. No meu caso ficou dessa forma.

Uma vez executado o comando, o Boss fará o download da biblioteca, criará uma pasta chamada modules e colocará a sua biblioteca nessa pasta. Em seguida ele adicionará o caminho da biblioteca no Library Path do seu projeto no Delphi, ou seja, fará tudo que é necessário pra que seu projeto tenha a biblioteca adicionada.

No arquivos boss.json agora haverá uma referência a biblioteca na tag dependências, veja.

Um detalhe importante. Caso você não adicione um Release/TAG, o download será feito do mesmo modo, entretanto a versão ficará com o valor 0.0.0 no boss.json. Recomendo fortemente que insira a versão através da tag, isso é uma premissa importante e ajudará você a gerenciar a versão da biblioteca adicionada.

Quando uma nova versão da biblioteca estiver pronta, você pode novamente fazer o Commit/Push no Source Tree, criar um novo Release no GitHub e então atualizar a versão através do Boss usando:

Fazendo isso o Boss automaticamente pegará a versão mais atual e fará a instalação, ou você ainda poderá informar qual versão específica deseja instalar, algo como:

ou seja, informando qual a versão deseja instalar. Fácil não? E ainda é possível desinstalar a biblitoteca usando:

Conclusão

A utilização do BOSS em conjunto com o GitHub transforma radicalmente a maneira como gerenciamos as dependências e colaboramos em projetos Delphi. A integração dessas ferramentas oferece uma abordagem sistemática para o controle de versões e a gestão de bibliotecas, proporcionando uma série de benefícios que incluem maior consistência entre ambientes de desenvolvimento, facilidade de manutenção, e melhoria na colaboração entre equipes.

Ao adotar o BOSS, os desenvolvedores Delphi podem se beneficiar da automação no gerenciamento de pacotes, garantindo que todas as dependências sejam tratadas de forma eficaz e que os projetos permaneçam limpos e organizados. Por outro lado, o GitHub serve como um ponto central para o controle de versões e colaboração, oferecendo uma plataforma robusta para hospedar código, gerenciar mudanças através de pull requests e releases, e documentar cada etapa do desenvolvimento.

As práticas descritas neste artigo não apenas simplificam processos técnicos, mas também fortalecem a cultura de desenvolvimento, promovendo melhores práticas e padrões elevados de qualidade de código. Em última análise, a implementação dessas ferramentas e metodologias é um investimento significativo na qualidade, escalabilidade e sucesso de projetos de software desenvolvidos em Delphi, proporcionando uma base sólida para o desenvolvimento contínuo e a inovação no ecossistema de software moderno.

Comunidade no Telegram

🚀Comente no campo abaixo 👇👇👇 o que achou e qual sua dúvida.

Te vejo na próxima

Adriano Santos

Deixe sua resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Posts Relacionados