Calculadora SemVer

O Versionamento Semântico tem cinco partes móveis: MAJOR.MINOR.PATCH, além de sufixos opcionais -prerelease e +build. Esta calculadora aceita uma string de versão, valida-a contra a gramática semver 2.0.0, divide-a em seus componentes e mostra as próximas versões major, minor, patch e prerelease (-rc.1) lado a lado.

Como aumentar uma versão

  1. 1

    Cole a versão atual

    Aceita `1.2.3`, `1.2.3-rc.1`, `2.0.0-alpha+exp.sha.5114f85` e outras formas semver 2.0.0.

  2. 2

    Leia as partes analisadas

    A ferramenta divide a string em major, minor, patch, prerelease e metadados de build para que você confirme que ela foi interpretada como esperado.

  3. 3

    Compare as próximas versões

    Ela mostra a próxima major, minor e patch ao mesmo tempo, além de uma candidata de prerelease (`-rc.1`). Aumentar minor reinicia patch para 0; aumentar major reinicia ambos minor e patch.

  4. 4

    Copie a nova versão

    Selecione a versão adequada à sua mudança e use-a em seu `package.json`, `Cargo.toml`, tag git ou notas de lançamento.

O que esta calculadora mostra

Para uma versão como 1.2.3, a ferramenta mostra quatro próximas versões sugeridas:

Aumento 1.2.3 se torna
major 2.0.0
minor 1.3.0
patch 1.2.4
prerelease 1.2.4-rc.1

Aumentar minor reinicia patch para 0; aumentar major reinicia ambos minor e patch para 0. A sugestão de prerelease marca o próximo patch como candidato de lançamento. Ferramentas de linha de comando como npm version adicionam mais operações (premajor, preminor, prepatch e incrementos de prerelease no lugar como 1.2.3-beta.1 que se torna 1.2.3-beta.2) se você precisar delas em um script de lançamento.

Regras de precedência que você encontrará

  • Um prerelease tem menor precedência que o lançamento: 1.0.0-rc.1 < 1.0.0.
  • Identificadores numéricos comparam numericamente; alfanuméricos comparam lexicalmente: 1.0.0-alpha.2 < 1.0.0-alpha.11.
  • Metadados de build (+sha.abc) são ignorados para precedência. 1.0.0+20240101 e 1.0.0+20250101 são versões iguais.
  • Um zero à frente em um identificador numérico é inválido. 1.0.0-rc.01 não é semver; use rc.1.

Cheatsheet de operadores de intervalo

  • ^1.2.3, qualquer coisa >=1.2.3 e <2.0.0 (permanece na mesma major).
  • ~1.2.3, qualquer coisa >=1.2.3 e <1.3.0 (permanece na mesma minor).
  • >=1.2.3 <2.0.0, intervalo explícito.
  • 0.x é especial: npm trata ^0.2.3 como >=0.2.3 <0.3.0 porque pré-1.0 é considerado instável.

Quando aumentar major

Aumente major para qualquer mudança que quebre consumidores a montante: API pública removida, assinatura de função alterada, comportamento padrão alterado, chave de configuração renomeada. Um minor é apenas para mudanças aditivas. Um patch é para correções de bugs que não alteram o contrato.

Perguntas frequentes

Não. 01.2.3 é inválido. Cada identificador numérico deve ser um inteiro não negativo sem zeros à frente, exceto pelo literal 0.

Use um aumento de patch a partir do seu último 1.0.0-rc.N, semver trata isso como uma graduação de prerelease para a versão de lançamento. Alternativamente, defina a versão explicitamente e marque.

Não. Metadados de build vêm após + e são ignorados para ordenação. Prerelease vem após - e reduz a precedência abaixo do lançamento. A maioria dos registros permite ambos simultaneamente: 1.2.3-rc.1+build.77.

Sim, semver não exige majors consecutivos. Pular de 3.x diretamente para 5.x é válido, embora a maioria das equipes reserve isso para sinalizar uma mudança particularmente disruptiva.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas