Commit Guidelines¶
Padrões para mensagens de commit.
Conventional Commits¶
Usamos Conventional Commits:
Tipos¶
| Tipo | Descrição |
|---|---|
feat |
Nova feature |
fix |
Bug fix |
docs |
Documentação |
style |
Formatação (não afeta lógica) |
refactor |
Refatoração |
test |
Testes |
chore |
Manutenção, deps, config |
perf |
Performance |
ci |
CI/CD |
Exemplos¶
Feature¶
feat(hymns): adiciona filtro por estilo musical
Permite filtrar hinos por estilo (Valsa, Marcha, etc)
na página de busca.
Bug Fix¶
fix(search): corrige erro de encoding na busca
O TypeSense não estava recebendo caracteres acentuados
corretamente. Agora normaliza para UTF-8 antes de enviar.
Fixes #123
Documentação¶
Refatoração¶
refactor(views): extrai lógica de validação para form
Move validação de YAML do view para o form,
seguindo padrão Django.
Testes¶
test(e2e): adiciona testes de navegação
- test_home_page_loads
- test_hymnbook_list
- test_hymn_detail
Chore¶
Boas Práticas¶
Descrição¶
- Use imperativo: "adiciona" não "adicionado"
- Primeira letra minúscula
- Sem ponto final
- Máximo 72 caracteres
Body¶
- Explique O QUE e POR QUE
- Pule uma linha após o título
- Quebre em 72 caracteres
Footer¶
Fixes #123- Fecha issueCloses #123- Fecha issueBREAKING CHANGE:- Mudança incompatível
Co-Authored-By¶
Quando usando Claude Code ou pair programming:
Commits Atômicos¶
Bom¶
feat(hymns): adiciona model Favorite
feat(hymns): adiciona view de favoritos
feat(hymns): adiciona template de favoritos
test(hymns): adiciona testes de favoritos
Ruim¶
Squash¶
Ao fazer merge, commits são combinados (squash). O título do PR vira a mensagem do commit.
Dicas¶
Amend¶
Interactive Rebase¶
Hooks¶
Pre-commit pode validar mensagens: