O objetivo deste tópico é descrever de forma fácil como devemos utilizar alguns dos principais comandos para manter o versionamento no desenvolvimento de códigos utilizando o semantic-release.
O que é versionamento semântico?
O versionamento semântico é um padrão de regras para manter um acompanhamento de versões no desenvolvimento de códigos, no contexto geral e uma tentativa de resolução de um problema antigo conhecido como “Inferno de dependências” ou dependency hell, onde cada versão possui um número diferente que carrega melhorias e demais mudanças que podem diferir bastante uma das outras.
Versionamento
O versionamento semântico segue o formato MAJOR.MINOR.PATCH (X.Y.Z), aonde cada parte do número da versão tem um significado específico:
Major: Representa a versão de compatibilidade, ou seja, caso for alterado o software ou biblioteca sofre uma mudança que o torna incompatível com outras versões anteriores.
Minor: Representa a versão da funcionalidade, onde uma nova função ou melhoria substancial é adicionada e não há problemas de incompatibilidade com outras versões.
Patch: Representa a correção de bugs, melhorias de desempenho ou alterações similares que não alteram as funcionalidades atuais e nem introduzem novas.
Exemplos de Versionamento Semântico
1.0.0: Primeira versão estável.
1.1.0: Nova funcionalidade adicionada de forma retrocompatível.
1.1.1: Correção de bug na versão 1.1.0.
2.0.0: Alteração que quebra a compatibilidade com a versão 1.x.x.
Benefícios do Versionamento Semântico
Clareza: Facilita para os desenvolvedores entenderem o impacto das mudanças.
Gestão de Dependências: Ajuda a gerenciar bibliotecas e dependências, permitindo atualizações seguras.
Comunicação: Proporciona uma linguagem comum para comunicar mudanças no software.
Na imagem acima, o feat no início da mensagem indica que a próxima versão deverá ter o minor incrementado em +1. Por exemplo, se a versão atual estiver em 4.3.8, a próxima será 4.4.0.
Na imagem acima, o fix: no início da mensagem indica que a próxima versão deverá ter o patch incrementado em +1. Por exemplo, se a versão atual estiver em 4.3.8, a próxima será 4.3.9
Configuração
Abaixo é possível visualizar uma configuração de um projeto e quais comandos permitem incrementar a versão e qual parte da versão é modificada.
Comando
Incremento
BREAKING CHANGE
major
feat
minor
perf
patch
fix
patch
refactor
patch
build
patch
Mesmo seguindo uma convenção, essas regras são passíveis de mudança. Alinhe com o arquiteto da sua squad sobre como seu projeto está configurado.
Gerenciamento de Tags e Releases
Cada nova versão registrará uma tag no repositório. Essa tag serve como ponto de referência da criação da versão no histórico do git. Sendo possível acessar o estado dos fontes de determinada versão.
Em resumo, o uso de versionamento semântico é uma prática recomendada em projetos de software, pois garante que todos os envolvidos no desenvolvimento e uso do software compreendam a natureza das mudanças realizadas.
Dicas
Vejam outros conteúdos sobre como melhorar a sua produtividade: