| Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior |
| pres:gerti:devops:informacoes:nomes_commits [19/04/2026 20:24] – lvinicius | pres:gerti:devops:informacoes:nomes_commits [19/04/2026 22:17] (atual) – removida lvinicius |
|---|
| ===== # Nomenclatura dos Commits ===== | |
| |
| Adotamos o padrão [[https://www.conventionalcommits.org/pt-br/v1.0.0/|Conventional Commits]] para nomear os commits de nossos projetos. | |
| |
| ===== Objetivos ===== | |
| |
| * Automatizar o versionamento de nossos projetos | |
| * Automatizar a geração do Changelog | |
| * Tornar o histórico de commits mais legível | |
| * Padronizar a comunicação entre a equipe | |
| |
| ==== Automação do versionamento ==== | |
| |
| É importante que usemos esse padrão pois o [[https://gitsource.tce.go.gov.br/GER-TI/tce.kubernetes/tce.templates/-/tree/main/templates/versioning|Job de Versionamento]] das Pipelines de CI/CD lê os nomes dos commits, e com base neles, gera automaticamente a próxima versão, usando o padrão de [[https://semver.org/|Versionamento Semântico]] | |
| |
| ===== Como funciona? ===== | |
| |
| Exemplo com um commit no [[|TCE.Pipelines]] | |
| |
| - Encontrei um bug no [[https://gitsource.tce.go.gov.br/GER-TI/tce.kubernetes/tce.templates/-/tree/main/templates/versioning|Job de Versionamento]] | |
| - Corrigi o erro em minha máquina, testei e estou pronto para commitar. | |
| - Como a alteração é uma correção de bug no job ''%%versioning%%'', o commit se chamou: ''%%fix(versioning): corrige output do NEXT_VERSION%%'', e fiz push. | |
| - No Gitlab, o Job de Versionamento [[https://gitsource.tce.go.gov.br/GER-TI/tce.kubernetes/tce.templates/-/jobs/23380|leu o nome do commit]] entendeu que é um ''%%fix%%'', e criou uma nova tag nesse commit. A tag anterior era ''%%3.0.0%%'' e o commit era um ''%%fix%%'' então ele aumentou para ''%%3.0.1%%''. Veja: [[https://www.conventionalcommits.org/pt-br/v1.0.0/|Conventional Commits]] e [[https://semver.org/|Versionamento Semantico]]. | |
| - Após isso, o [[https://gitsource.tce.go.gov.br/GER-TI/tce.kubernetes/tce.templates/-/tree/main/templates/versioning|Job de Versionamento]] também gerou um [[https://gitsource.tce.go.gov.br/GER-TI/tce.kubernetes/tce.templates/-/releases#3.0.1|changelog]] com as alterações. | |
| |
| ===== Sintaxe dos Commits ===== | |
| |
| Esta é a sintaxe dos commits que o [[https://gitsource.tce.go.gov.br/GER-TI/tce.kubernetes/tce.templates/-/tree/main/templates/versioning|Job de Versionamento]] está configurado para entender | |
| |
| <code> | |
| <tipo>(<escopo opcional>): <descrição> [#<task redmine>] | |
| </code> | |
| |
| * ''%%<tipo>%%'': Obrigatório. Refere-se ao tipo da alteração: se ele corrige um bug é um ''%%fix%%'', se adiciona um feature, é um ''%%feat%%''. Veja: [[#Quais%20Tipos%20de%20Commits%20existem?|Quais Tipos de Commits existem?]] | |
| * ''%%<escopo opcional>%%'': Opcional. Descreve qual módulo do sistema foi alterado | |
| * ''%%<descrição>%%'': Descrição do o que o seu commit faz. Inicie sempre com verbos no **presente do indicativo**, ex.: ''%%corrige%%'', ''%%altera%%'', ''%%implementa%%'', ''%%refatora%%'', ''%%adiciona%%''. | |
| |
| ==== Quais Tipos de Commits existem? ==== | |
| |
| Para o campo ''%%<tipo>%%'', há as seguintes opções: | |
| |
| ^Tipo ^Descrição ^Versão ^Roda a pipeline?^ | |
| |**build** |Mudanças que afetam o sistema de build (Dockerfile) ou dependências externas (requirements.txt)|Não altera |Sim | | |
| |**ci** |Alterações na pipeline de CI/CD |Não altera |Sim | | |
| |**docs** |Alterações na Documentação |Não altera |Não | | |
| |**feat** |Um feature novo (alterações que adicionam funcionalidade) |Aumenta a Minor|Sim | | |
| |**fix** |Uma correção de bug (alteração que corrige funcionalidade) |Aumenta o Patch|Sim | | |
| |**perf** |Uma mudança no código que melhora a performance |Aumenta a Minor|Sim | | |
| |**refactor**|Uma mudança de código que nem corrige bugs, nem adiciona features. Apenas Refatoração. |Não altera |Sim | | |
| |**test** |Adição de novos testes ou correção de testes existentes |Não altera |Sim | | |
| |
| > **Dica:** Commits que começam ''%%docs:%%'' não disparam a pipeline. Caso não queria disparar a pipeline, pode usá-lo. | |
| |
| ===== Exemplos ===== | |
| |
| Veja como exemplo um histórico de commits de um projeto fictício para entender como que | |
| |
| ^Versão Atual^Nome do Commit ^Nova Versão^Tipo de Alteração ^ | |
| |1.2.4 |fix: Corrige a formatação do parser markdown |1.2.5 |Altera a versão de Patch| | |
| |1.2.5 |feat: Adiciona comando de pull para baixar novas páginas |1.3.0 |Altera a versão Minor | | |
| |1.3.0 |docs(comandos): Cria sessão explicando como usar o comando de pull|1.3.0 |Versão se mantem igual | | |
| |
| ===== Dica: Iniciar descrição do commit com o presente do indicativo ===== | |
| |
| Por convenção, inicie a **Descrição** do commit com **verbos no presente do indicativo**. A descrição deve indicar o que o commit **faz**. Exemplos: | |
| |
| * fix: **corrige** a formatação do parser markdown | |
| * feat: **adiciona** comando de pull para baixar novas páginas | |
| |
| A intenção é facilitar a leitura do histórico de commits, e dos changelogs. | |
| |
| ====== Mais informações ====== | |
| |
| Para informações completas da sintaxe dos commits e versionamento semântico: [[https://semver.org/|Versionamento Semântico]] e [[https://github.com/angular/angular/blob/main/contributing-docs/commit-message-guidelines.md|guia de commits do Angular]]. | |
| |