Publicado em
- 4 minutos de leitura
Nx Release: Simplificando o versionamento de pacotes!
Em um ambiente de desenvolvimento de software moderno, o gerenciamento eficiente de múltiplos pacotes dentro de um único repositório (monorepo) tornou-se uma prática comum.
O Nx oferece um conjunto de ferramentas para auxiliar na construção e gerenciamento desses monorepos.
Uma das funcionalidades importantes dentro do ecossistema Nx é o Nx Release, projetado para simplificar e automatizar o processo de lançamento de pacotes.
O Que é Nx Release?
Nx Release é um recurso integrado ao Nx que facilita o gerenciamento do processo de versionamento, geração de changelogs e publicação de pacotes em um monorepo.
Ele atua como um conjunto de ferramentas e utilitários acessíveis através da linha de comando do Nx .
Para Que Serve o Nx Release?
O principal objetivo do Nx Release é otimizar e automatizar o fluxo de trabalho de lançamento para pacotes em um workspace Nx . Ele serve para:
- Automatizar o processo de lançamento: Reduzindo o esforço manual e o risco de erros em tarefas repetitivas.
- Gerenciar o versionamento: Determinando a próxima versão dos pacotes e atualizando as dependências internas .
- Gerar changelogs: Criando automaticamente arquivos que detalham as mudanças em cada lançamento .
- Publicar pacotes: Facilitando a disponibilização das novas versões em registros como o npm .
- Garantir a consistência: Ajudando a manter a integridade entre os diferentes pacotes do monorepo.
Como Configurar o Nx Release
A configuração do Nx Release envolve alguns passos essenciais:
-
Instalação do Nx: Certifique-se de que o Nx esteja instalado no seu monorepo .
-
Adição do plugin @nx/js: Esse plugin é necessário para gerenciar os pacotes. Instale-o com o comando:
nx add @nx/js. -
Configuração dos Projetos para Release: No arquivo
nx.json, defina a propriedaderelease.projectscom um array de strings para especificar quais pacotes devem ser incluídos no processo de lançamento. Você pode usar nomes de pacotes, tags Nx, diretórios ou padrões globais para filtrar . Por exemplo:
{
"release": {
"projects": ["packages/*"]
}
}
Personalização das Operações Git (Opcional): Você pode personalizar a mensagem de commit e o padrão da tag Git no arquivo nx.json . Por exemplo:
{
"release": {
"releaseTagPattern": "release/{version}",
"git": {
"commitMessage": "Release version {version}"
}
}
}
Como Mapear os Pacotes do Projeto com Nx Release
O mapeamento dos pacotes do projeto é feito através da configuração da propriedade release.projects no arquivo nx.json .
Esta propriedade permite definir quais pacotes dentro do seu workspace Nx serão considerados para o processo de release.
Você pode especificar pacotes individualmente por nome, usar tags para agrupar pacotes ou utilizar padrões de diretório para incluir múltiplos pacotes de uma vez .
Como Configurar o Changelog
O Nx Release automatiza a geração de changelogs com base nas mensagens de commit ou em arquivos de plano de versão .
Ao seguir convenções de commit como o Conventional Commits, o Nx Release pode gerar changelogs informativos e precisos automaticamente.
Como Configurar o Git
A configuração do Git no Nx Release é feita através da seção release.git no arquivo nx.json.
É possível personalizar a mensagem de commit que será utilizada durante o processo de lançamento com a propriedade commitMessage.
Além disso, o padrão para as tags Git criadas pode ser configurado utilizando a propriedade releaseTagPattern.
Relacionamento Independente com Nx Release
O Nx Release oferece a capacidade de gerenciar o versionamento e o lançamento de pacotes individuais de forma independente dentro do monorepo.
Essa configuração permite que cada projeto siga seu próprio ciclo de vida de lançamento, o que pode ser útil em monorepos com pacotes que não precisam ser versionados ou lançados simultaneamente.
Como Executar o Nx Release
A execução do Nx Release é feita através do comando nx release no terminal .
Ao executar este comando, o Nx Release iniciará o processo de lançamento, solicitando informações como o tipo de incremento de versão (major, minor, patch) .
Para o primeiro lançamento em um workspace, utilize a opção --first-release:
nx release --first-release
É altamente recomendado utilizar a opção --dry-run para simular o processo de lançamento e visualizar as alterações que seriam feitas sem efetivamente aplicá-las:
nx release --dry-run
Para lançar apenas um subconjunto de pacotes, utilize a opção --projects seguida pelos nomes dos pacotes separados por vírgula:
nx release --projects=projeto-1,projeto-2
Como Executar o Nx Release com Subcomandos
Para um controle mais granular sobre o processo de lançamento, o Nx Release oferece subcomandos que podem ser executados independentemente .
Os principais subcomandos são:
nx release version: Responsável por determinar e atualizar as versões dos pacotes.nx release changelog: Utilizado para gerar os arquivos de changelog.nx release publish: Executa a publicação dos pacotes nos registros configurados.
Cada um desses subcomandos possui suas próprias opções e pode ser explorado com a flag --help. Por exemplo:
nx release version --help
nx release changelog --help
nx release publish --help
Conclusão
Em resumo, o Nx Release é uma ferramenta poderosa para simplificar e automatizar o gerenciamento de releases em monorepos Nx.
Sua configuração flexível e a capacidade de execução através de comandos simples ou subcomandos específicos o tornam uma solução valiosa para equipes que buscam eficiência e organização em seus processos de entrega de software.
Assine nossa Newsletter
Receba novos posts como esse na sua caixa de e-mail!
Sobre o autor