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.