pres:gerti:devops:informacoes:versionamento_semantico

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Próxima revisão
Revisão anterior
pres:gerti:devops:informacoes:versionamento_semantico [19/04/2026 21:20] – criada lviniciuspres:gerti:devops:informacoes:versionamento_semantico [20/04/2026 13:22] (atual) lvinicius
Linha 3: Linha 3:
 Para padronizar as versões de nossos softwares, adotamos o padrão [[https://semver.org|Semantic Versioning 2.0.0]]. Para padronizar as versões de nossos softwares, adotamos o padrão [[https://semver.org|Semantic Versioning 2.0.0]].
  
-Esse padrão adiciona versões no formato: ''%%1.2.3%%'', ''%%1.3.0%%'', ''%%2.0.0%%''+Este artigo descreve o padrão de versionamento semântico.
- +
-Ele permite saber: 1. Se uma versão é retro-compatível com outra. 2. O que muda de uma versão para outra(Se é correção de bug ou se é feature)+
  
 ===== Objetivos ===== ===== Objetivos =====
Linha 13: Linha 11:
   * Saber o que muda de uma versão para a outra. (Se é um bug, um feature)   * Saber o que muda de uma versão para a outra. (Se é um bug, um feature)
   * Saber se a API de uma versão é compatível com a anterior.   * Saber se a API de uma versão é compatível com a anterior.
-  * Permitir automatizar o versionamento. Veja: [[pres:gerti:devops:informacoes:nomes_commits|Nomenclatura dos Commits]]+  * Permitir automatizar o versionamento durante o CI. Veja: [[pres:gerti:devops:informacoes:nomenclatura_commits|Nomenclatura dos Commits]]
  
 ===== Como funciona? ===== ===== Como funciona? =====
 +
 +Esse padrão adiciona versões no formato: ''%%1.2.3%%'', ''%%1.3.0%%'', ''%%2.0.0%%''.
 +
 +Ele permite saber:
 +
 +  - Se uma versão é retro-compatível com outra.
 +  - O que muda de uma versão para outra. (Se é correção de bug ou se é feature)
  
 ==== Formato da versão ==== ==== Formato da versão ====
Linha 29: Linha 34:
 ==== Patch ==== ==== Patch ====
  
-O ''%%Patch%%'' significa correções de bugs. Sempre que houver uma correção de bug, o ''%%Patch%%'' aumenta em 1.+O ''%%Patch%%'' significa **correções de bugs**. Sempre que houver uma correção de bug, o ''%%Patch%%'' aumenta em 1.
  
 Exemplos: Exemplos:
Linha 38: Linha 43:
 ==== Minor ==== ==== Minor ====
  
-O ''%%Minor%%'', número do meio, significa implementação de feature. Sempre que houver uma implementação de feature, o ''%%Minor%%'' aumenta em 1, e o ''%%Patch%%'' **reseta** para 0.+O ''%%Minor%%'', número do meio, significa **implementação de feature**. Sempre que houver uma implementação de feature, o ''%%Minor%%'' aumenta em 1, e o ''%%Patch%%'' **reseta** para 0.
  
 Exemplos: Exemplos:
Linha 55: Linha 60:
   * ''%%4.13.72%%'' -> ''%%5.0.0%%''   * ''%%4.13.72%%'' -> ''%%5.0.0%%''
  
-=== Breaking Changes ===+=== Breaking Change ===
  
-Breaking changes são mudanças que quebram a retrocompatibilidade com as versões anteriores. Isso significa que, se houver outros programas que consumam da API desse programa, atualizar para a nova versão pode quebrar o programa que chama a API.+Breaking changes são mudanças que quebram a retrocompatibilidade com as versões anteriores. 
 + 
 +Isso significa que, se houver outros programas que consumam da API desse programa, atualizar para a nova versão pode quebrar o programa que chama a API.
  
 Isso pode acontecer por exemplo pois o nome do endpoint que era ''%%/get_nome/<id>%%'' virou ''%%/nome/<id>%%''. Quebrando a retrocompatibilidade. Isso pode acontecer por exemplo pois o nome do endpoint que era ''%%/get_nome/<id>%%'' virou ''%%/nome/<id>%%''. Quebrando a retrocompatibilidade.
Linha 63: Linha 70:
 ===== Retrocompatibilidade ===== ===== Retrocompatibilidade =====
  
-Sobre a retrocompatibilidade, versões que possuem a mesma Major são compatíveis, e versões que possuem Major’s diferentesnão são compatíveis.+Sobre a retrocompatibilidade, versões que possuem a **mesma Major** são **compatíveis**, e versões que possuem **Major diferentes** **não** são **compatíveis**. 
 + 
 +==== Na prática ==== 
 + 
 +  - É tranquilo atualizar da versão ''%%7.3.0%%'', para a ''%%7.4.0%%''
 +  - Já atualizar da ''%%7.4.0%%'' para a ''%%8.0.0%%'' pode quebrar algum código, e requer uma análise. Vale a pena então olhar o Changelog para entender quais foram as mudanças entre cada versão. 
 + 
 +===== Automação no CI/CD =====
  
-Na práticaé tranquilo atualizar da versão ''%%7.3.0%%'', para a ''%%7.4.0%%''Já atualizar da ''%%7.4.0%%'' para a ''%%8.0.0%%'' é perigoso, e requer uma análise. Vale a pena então olhar Changelog para entender quais foram as mudanças entre cada versão.+Não será necessário aplicar as tags manualmente. A Pipeline de CI/CD possui um [[https://gitsource.tce.go.gov.br/GER-TI/tce.kubernetes/tce.templates/-/tree/main/templates/versioning|Job de Versionamento]] que aplica versionamento **automaticamente**, com base no nome do commit, veja: [[pres:gerti:devops:informacoes:nomenclatura_commits|Nomenclaturas Commits]]
  
  • pres/gerti/devops/informacoes/versionamento_semantico.1776633619.txt.gz
  • Última modificação: 19/04/2026 21:20
  • por lvinicius