Política de Commits
Guia de Contribuição para commit ¶
Este guia padroniza as mensagens de commit em todos os repositórios da organização EHFAKE, com o objetivo de manter um histórico de alterações limpo, rastreável e compatível com ferramentas de automação como geradores de changelog e versionamento semântico (SemVer).
Especificação adotada¶
- Baseada na convenção Conventional Commits v1.0.0.
- Corpo e rodapé seguem o padrão da convenção Angular.
- O tipo
chorenão é permitido.
Tipos de Commit Permitidos¶
| Tipo | Descrição | Exemplos de uso |
|---|---|---|
build |
Mudanças no sistema de build ou dependências externas | Ajustes em Dockerfile, atualização do package.json |
static |
Alterações em conteúdo estático | Inclusão de imagens, atualização de ícones, textos fixos |
ci |
Configurações de integração contínua | Criação/ajuste de workflows do GitHub Actions |
cd |
Configurações de entrega contínua | Alterações em pipelines de deploy |
docs |
Atualizações de documentação | Modificações no README, inclusão de novos guias |
feat |
Adição de nova funcionalidade | Implementação de novo endpoint, novo componente React |
fix |
Correção de erros ou falhas | Tratamento de exceções, correção de bug em layout |
perf |
Melhorias de performance | Implementação de cache, lazy-loading |
refactor |
Refatorações sem alteração no comportamento | Extração de funções, reorganização de pastas |
improve |
Melhorias visuais ou funcionais sem nova feature | Ajustes de UI, melhorias em UX, mensagens mais claras |
style |
Alterações de formatação e estilo de código | Ajustes com prettier, remoção de imports não utilizados |
test |
Criação ou modificação de testes | Testes unitários, mocks, cobertura |
revert |
Reversão de commit anterior | revert: feat(auth): adiciona OAuth2 |
Estrutura da Mensagem¶
<tipo>(<escopo opcional>): <título no imperativo>
<corpo explicativo opcional>
<rodapé com BREAKING CHANGE e/ou referências de issue>
Regras Gerais¶
- Título com no máximo 50 caracteres.
- Corpo com linhas de até 72 caracteres.
-
Utilize sempre o modo imperativo e tempo presente:
-
✅
adiciona,corrige,refatora -
❌
adicionado,corrigido,refatorado -
Escopos devem utilizar
kebab-case, por exemplo: frontend/ui-
backend/auth -
Para alterações que quebram compatibilidade, adicione no rodapé:
text
BREAKING CHANGE: descrição da alteração incompatível
- Para vincular issues, utilize no rodapé:
text
Closes #123
Related to #456
- Os commits devem ser atômicos: cada commit deve representar uma única alteração lógica no código.
Exemplos de Commit¶
feat(backend/auth): adiciona rotação de refresh token
Implementa novo fluxo de rotação usando JWT ID, reduzindo riscos de reuse...
Closes #45
fix(frontend/ui): corrige alinhamento do botão de login em telas < 320px
docs(datasets): atualiza README com processo de curadoria
Validação Automatizada¶
Todos os repositórios EHFAKE possuem validação de commits com:
- Husky – ganchos
pre-commitepre-push - Commitlint – valida mensagens conforme esta especificação
- Semantic Release – gera changelogs e versões com base nos commits
Commits inválidos são automaticamente rejeitados.
Histórico do documento¶
| Versão | Data | Descrição | Autor |
|---|---|---|---|
| 1.0 | 18/04/2025 | Criação do documento | Equipe EHFAKE |
| 1.1 | 19/04/2025 | Reformulação | Equipe EHFAKE |