Politica de commmits
Política de Commits
No projeto será utilizado o Padrão de Conventional Commits.
A especificação do Conventional Commits é uma convenção simples para utilizar nas mensagens de commit. Ela define um conjunto de regras para criar um histórico de commit explícito, o que facilita a criação de ferramentas automatizadas baseadas na especificação. Esta convenção se encaixa com o SemVer, descrevendo os recursos, correções e modificações que quebram a compatibilidade nas mensagens de commit.
A mensagem do commit deve seguir a seguinte estrutura
<tipo>[escopo opcional]: <descrição>
[corpo opcional]
[rodapé(s) opcional(is)]
Elementos Estruturais dos Commits
-
fix: um commit do tipo fix soluciona um problema na sua base de código (isso se correlaciona com PATCH do versionamento semântico).
-
feat: um commit do tipo feat inclui um novo recurso na sua base de código (isso se correlaciona com MINOR do versionamento semântico).
-
BREAKING CHANGE: um commit que contém no rodapé opcional o texto BREAKING CHANGE:, ou contém o símbolo ! depois do tipo/escopo, introduz uma modificação que quebra a compatibilidade da API (isso se correlaciona com MAJOR do versionamento semântico). Uma BREAKING CHANGE pode fazer parte de commits de qualquer tipo.
-
Outros tipos adicionais são permitidos além de fix: e feat:, por exemplo @commitlint/config-conventional (baseado na Convenção do Angular) recomenda-se build:, chore:, ci:, docs:, style:, refactor:, perf:, test:, entre outros.
Exemplos
Mensagem de commit com descrição e modificação que quebra a compatibilidade no rodapé
feat: permitir que o objeto de configuração fornecido estenda outras configurações
BREAKING CHANGE: a chave `extends`, no arquivo de configuração, agora é utilizada para estender outro arquivo de configuração
Mensagem de commit com ! para chamar a atenção para quebra a compatibilidade
feat!: envia email para o cliente quando o produto é enviado
Mensagem de commit com escopo e ! para chamar a atenção para quebra a compatibilidade
feat(api)!: envia email para o cliente quando o produto é enviado
Mensagem de commit com ! e BREAKING CHANGE no rodapé
chore!: remove suporte para Node 6
BREAKING CHANGE: refatorar para usar recursos do JavaScript não disponíveis no Node 6.
Mensagem de commit sem corpo
docs: ortografia correta de CHANGELOG
Mensagem de commit com escopo
feat(lang): adiciona tradução para português brasileiro
Histórico de versões
Versão | Alteração | Responsável | Data Alteração |
---|---|---|---|
1.0 | Criação do documento de política de commits | Diógenes Dantas Lélis Júnior | 16/04/2025 |
1.1 | Adição das políticas de commits: elementos estruturais e exemplos | Diógenes Dantas Lélis Júnior | 17/04/2025 |