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

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
pres:gerti:devops:informacoes:versionamento_semantico [19/04/2026 21:30] lviniciuspres:gerti:devops:informacoes:versionamento_semantico [20/04/2026 13:22] (atual) lvinicius
Linha 2: Linha 2:
  
 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]].
 +
 +Este artigo descreve o padrão de versionamento semântico.
  
 ===== Objetivos ===== ===== Objetivos =====
Linha 9: 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 durante o CI. 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? =====
Linha 32: 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 41: 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 58: 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 66: 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 ====
  
-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 o Changelog para entender quais foram as mudanças entre cada versão.+  - É 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 ===== ===== Automação no CI/CD =====
  
-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 o versionamento **automaticamente**, com base no nome do commit, veja: [[pres:gerti:devops:informacoes:nomes_commits|Nomenclaturas Commits]]+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 o versionamento **automaticamente**, com base no nome do commit, veja: [[pres:gerti:devops:informacoes:nomenclatura_commits|Nomenclaturas Commits]]
  
  • pres/gerti/devops/informacoes/versionamento_semantico.1776634223.txt.gz
  • Última modificação: 19/04/2026 21:30
  • por lvinicius