URL Sobre: https://www.conventionalcommits.org/
O padrão “Conventional Commits” é uma especificação simples para escrever mensagens de commits que sigam um estilo determinado e padronizado. Isso ajuda a facilitar a leitura e a automação de processos de lançamento de versões. A especificação é baseada no uso de tipos de commits que indicam a intenção da mudança e segue uma estrutura definida.
Estrutura de um Commit Convencional
Uma mensagem de commit no padrão “Conventional Commits” tem a seguinte estrutura:
<tipo>(escopo opcional): <descrição>
Tipos Comuns de Commits
- feat: Uma nova funcionalidade para o usuário.
- fix: Uma correção de bug para o usuário.
- docs: Alterações na documentação, como no README ou em comentários no código.
- style: Mudanças que não afetam o significado do código (formatação, ponto e vírgula, etc.).
- refactor: Mudanças no código que não corrigem bugs nem adicionam funcionalidades (ex.: refatoração de uma parte do código).
- perf: Melhorias de desempenho.
- test: Adição ou correção de testes.
- build: Mudanças que afetam o sistema de build ou dependências externas (ex.: gulp, npm).
- ci: Mudanças em arquivos e scripts de configuração de CI (ex.: Travis, Circle, BrowserStack, etc.).
- chore: Outras mudanças que não modificam src ou arquivos de teste.
- revert: Reversão de um commit anterior.
Exemplo de Mensagens de Commit
feat(login): add user authentication
fix(login): correct password validation
docs(readme): update installation instructions
style(header): format header component
refactor(api): reorganize API endpoints
perf(database): optimize query performance
test(auth): add unit tests for login
build(webpack): update to webpack 5
ci(travis): integrate with new CI tool
chore(deps): update dependencies
revert: revert "feat(login): add user authentication"
Regras Adicionais
- Escopo: O escopo é opcional, mas pode ser útil para especificar a parte do código afetada pela mudança.
- Descrição: Deve ser breve, clara e no imperativo.
- Corpo da Mensagem: Opcionalmente, pode-se adicionar um corpo à mensagem de commit para fornecer mais detalhes. Deve começar uma linha após a descrição.
- Rodapé: Pode ser usado para referências a tickets de issues ou breaking changes. Também começa uma linha após o corpo (ou após a descrição, se não houver corpo).
Benefícios
- Histórico de commits mais claro: Facilita a leitura e entendimento das mudanças.
- Automatização: Ferramentas de automação podem usar os tipos de commits para gerar changelogs, versões e outros processos.
- Colaboração: A adoção de um padrão comum facilita a colaboração entre desenvolvedores.
Ao seguir o padrão “Conventional Commits”, as equipes de desenvolvimento podem manter um histórico de commits bem organizado e fácil de entender, o que é particularmente útil em projetos de larga escala ou de longa duração.