O que é Versionamento Semântico
Padrão de numeração de versões MAJOR.MINOR.PATCH
Versionamento Semântico (SemVer) — um padrão de numeração de versões de software no formato MAJOR.MINOR.PATCH, onde cada parte tem um significado específico.
Estrutura de versão
- MAJOR (1.x.x) — mudanças de API incompatíveis
- MINOR (x.1.x) — nova funcionalidade com compatibilidade reversa
- PATCH (x.x.1) — correções de bugs compatíveis com versões anteriores
- Pré-lançamento — 1.0.0-alpha, 1.0.0-beta.1
- Metadados de build — 1.0.0+build.123
Regras
- Versão inicial — 0.1.0
- Primeiro lançamento estável — 1.0.0
- Ao incrementar MAJOR — resetar MINOR e PATCH
- Ao incrementar MINOR — resetar PATCH
- Versões são comparadas da esquerda para a direita
Exemplos de mudanças
- MAJOR: remoção de função, mudança de assinatura de método
- MINOR: adição de novo endpoint, novo parâmetro opcional
- PATCH: correção de bug, melhoria de desempenho
Ferramentas
- npm — usa SemVer para pacotes
- Composer — gerenciador de pacotes PHP
- Maven — dependências Java
- semantic-release — automação de releases
- commitizen — commits estruturados
Benefícios
- Previsibilidade — expectativas claras de atualizações
- Automação — determinação automática de versão
- Documentação — changelog a partir de commits
- Compatibilidade — atualizações seguras de dependências