Como Gerar Release Notes Eficientes com Convenções de Commit
A geração de release notes é uma parte crucial do ciclo de desenvolvimento de software, pois fornece uma visão clara das alterações feitas em cada versão do produto. Neste tutorial, vamos explorar como podemos automatizar esse processo utilizando convenções de commit.
O que são Convenções de Commit?
Convenções de commit são um conjunto de regras que definem como as mensagens de commit devem ser formatadas. Elas ajudam a manter a consistência e a clareza nas alterações do código. Por exemplo, uma convenção popular é a Conventional Commits , que utiliza prefixos para categorizar os commits, como feat
, fix
, e chore
.
Prefixo | Descrição |
---|---|
feat | Nova funcionalidade |
fix | Correção de bugs |
chore | Tarefas de manutenção |
Por que usar Convenções de Commit?
Utilizar convenções de commit traz muitos benefícios, incluindo:
- Consistência: Mensagens de commit claras e padronizadas.
- Facilidade de leitura: Melhora a compreensão do histórico de mudanças.
- Automação: Permite gerar release notes automaticamente.
Como Implementar Convenções de Commit?
Para implementar convenções de commit na sua equipe, você pode seguir os seguintes passos:
- Escolha uma convenção: Defina qual convenção será utilizada (por exemplo, Conventional Commits).
- Documente as regras: Crie um documento acessível que explique as convenções escolhidas.
- Implemente hooks: Utilize hooks de pré-commit para garantir que as mensagens de commit sigam as regras estabelecidas.
# Exemplo de um hook de pré-commit em um repositório Git
#!/bin/sh
commit_message=$(cat "$1")
if ! echo "$commit_message" | grep -qE "^(feat|fix|chore): .+"; then
echo "Erro: Mensagem de commit deve seguir a convenção: feat|fix|chore: descrição"
exit 1
fi
O código acima é um script de shell que valida a mensagem de commit. Ele verifica se a mensagem começa com um dos prefixos válidos e, caso contrário, exibe um erro e impede o commit.
Automatizando a Geração de Release Notes
Uma vez que as convenções de commit estão implementadas, podemos automatizar a geração de release notes. Existem várias ferramentas disponíveis, como o release-it
, que facilitam esse processo. Vamos ver um exemplo de como usar essa ferramenta.
{
"scripts": {
"release": "release-it"
},
"release-it": {
"git": {
"tag": true,
"requireCleanWorkingDir": true
},
"npm": {
"publish": false
}
}
}
No exemplo acima, configuramos o release-it
em nosso arquivo package.json
. Isso permite que, ao executar o comando npm run release
, as release notes sejam geradas automaticamente com base nas mensagens de commit.
Estruturando suas Release Notes
As release notes geradas devem seguir uma estrutura clara. Uma sugestão é:
- Título da versão: Inclua a versão e a data de lançamento.
- Novidades: Destaque novas funcionalidades.
- Correções: Liste os bugs corrigidos.
- Melhorias: Inclua melhorias realizadas.
Exemplos de Release Notes
Aqui está um exemplo de como suas release notes podem ser apresentadas:
Versão 1.0.0 - 2023-10-05
Novidades
feat
: Adicionada nova funcionalidade de busca.
Correções
fix
: Corrigido bug no sistema de login.
Melhorias
chore
: Atualização das dependências do projeto.
Conclusão
Automatizar a geração de release notes a partir de convenções de commit não só melhora a documentação do seu projeto, mas também aumenta a eficiência da sua equipe. Ao seguir as diretrizes e implementar as ferramentas adequadas, você garantirá uma comunicação clara sobre as mudanças realizadas em cada versão do seu software.
Dica Final: Incentive sua equipe a seguir as convenções de commit e sempre revise as release notes antes do lançamento para garantir que todas as informações relevantes estejam incluídas. Com essa prática, você terá um registro de mudanças mais organizado e útil para todos os envolvidos no projeto.
Contribuições de Camila Ribeiro