Vou tentar explicar os conceitos sobre versionamento semântico que considero mais úteis para o usuário. Para informações detalhadas, acesse as fontes no final do artigo.
Versionamento semântico é um padrão de versionamento de APIs que permite a separação entre mudanças que quebram a compatibilidade com versões anteriores (major
), mudanças que adicionam funcionalidades sem quebrar a retrocompatibilidade (minor
) e mudanças que não afetam a funcionalidade (patch
). Consiste basicamente de 3 números separados por ponto.
Patch
É o 3° número. Qualquer atualização que não adicione, remova, ou modifique alguma funcionalidade deve incrementar esse dígito. Ex.: correções de bugs.
Se você quiser manter a versão major
e minor
de sua dependência e atualizar apenas o patch
, inclua um ~
antes da versão no arquivo package.json
. Ex.: ~3.4.1 - instala ou atualiza a versão 3.4 que contenha o patch
mais alto a partir de 1.
Minor
É o 2° número. Qualquer atualização que adicione funcionalidades sem quebrar o código que usa versões anteriores deve incrementar esse dígito. Ex.: adição de métodos em uma classe.
Se você quiser manter a versão major
e atualizar a minor
e patch
de sua dependência, inclua um ^
antes da versão no arquivo package.json
. Ex.: ^3.4.1 - instala ou atualiza a versão 3 que contenha o minor
e patch
mais alto a partir de 4.1.
Major
É o 1° número. Qualquer atualização que quebre a retrocompatibilidade deve incrementar esse dígito. Ex.: Remoção de uma função ou a remoção/renomeação de um método de classe.
Se você quiser manter a sua dependência sempre atualizada com a última versão, use um *
como versão no arquivo package.json
.
Fontes:
- Documentação oficial: https://semver.org
- Documentação do NPM: https://docs.npmjs.com/about-semantic-versioning
Ferramenta para testar a sintaxe: https://semver.npmjs.com/
Top comments (2)
Muito bom!
Valeu man !! estava procurando algo desse modelo para aprender !!!