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
chore
nã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-commit
epre-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 |