Calcolatore SemVer

Il Versioning Semantico ha cinque parti in movimento: MAJOR.MINOR.PATCH, più i suffissi opzionali -prerelease e +build. Questo calcolatore prende una stringa di versione, la convalida rispetto alla grammatica semver 2.0.0, la scompone nei suoi componenti e mostra le versioni major, minor, patch e prerelease (-rc.1) successive affiancate.

Come aumentare una versione

  1. 1

    Incolla la versione attuale

    Accetta `1.2.3`, `1.2.3-rc.1`, `2.0.0-alpha+exp.sha.5114f85` e altre forme semver 2.0.0.

  2. 2

    Leggi le parti analizzate

    Lo strumento suddivide la stringa in major, minor, patch, prerelease e metadati di build così puoi confermare che sia stata interpretata come previsto.

  3. 3

    Confronta le versioni successive

    Mostra la prossima major, minor e patch contemporaneamente, più una candidata prerelease (`-rc.1`). Aumentare il minor resetta il patch a 0; aumentare il major resetta sia il minor che il patch.

  4. 4

    Copia la nuova versione

    Seleziona la versione adatta alla tua modifica e usala nel tuo `package.json`, `Cargo.toml`, tag git o note di rilascio.

Cosa mostra questo calcolatore

Per una versione come 1.2.3, lo strumento mostra quattro versioni successive suggerite:

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

Aumentare il minor resetta il patch a 0; aumentare il major resetta sia il minor che il patch a 0. Il suggerimento prerelease contrassegna il patch successivo come candidato di rilascio. Gli strumenti da riga di comando come npm version aggiungono altre operazioni (premajor, preminor, prepatch e incrementi di prerelease in loco come 1.2.3-beta.1 che diventa 1.2.3-beta.2) se ne hai bisogno in uno script di rilascio.

Regole di precedenza che incontrerai

  • Un prerelease ha una precedenza inferiore rispetto al rilascio: 1.0.0-rc.1 < 1.0.0.
  • Gli identificatori numerici si confrontano numericamente; gli alfanumerici si confrontano lessicalmente: 1.0.0-alpha.2 < 1.0.0-alpha.11.
  • I metadati di build (+sha.abc) sono ignorati per la precedenza. 1.0.0+20240101 e 1.0.0+20250101 sono versioni uguali.
  • Uno zero iniziale in un identificatore numerico è non valido. 1.0.0-rc.01 non è semver; usa rc.1.

Cheat sheet degli operatori di intervallo

  • ^1.2.3, qualsiasi cosa >=1.2.3 e <2.0.0 (rimane sulla stessa major).
  • ~1.2.3, qualsiasi cosa >=1.2.3 e <1.3.0 (rimane sulla stessa minor).
  • >=1.2.3 <2.0.0, intervallo esplicito.
  • 0.x è speciale: npm tratta ^0.2.3 come >=0.2.3 <0.3.0 perché le versioni precedenti alla 1.0 sono considerate instabili.

Quando aumentare il major

Aumenta il major per qualsiasi cambiamento che rompe i consumatori downstream: API pubbliche rimosse, modifica della firma della funzione, modifica del comportamento predefinito, rinominato chiave di configurazione. Un minor è solo per cambiamenti additivi. Un patch è per correzioni di bug che non alterano il contratto.

Domande frequenti

No. 01.2.3 è non valido. Ogni identificatore numerico deve essere un intero non negativo senza zeri iniziali, tranne che per il letterale 0.

Usa un aumento patch dalla tua ultima 1.0.0-rc.N, semver tratta questo come un passaggio da prerelease alla versione di rilascio. In alternativa, imposta esplicitamente la versione e tagga.

No. I metadati di build vengono dopo + e sono ignorati per l’ordinamento. Il prerelease viene dopo - e abbassa la precedenza sotto il rilascio. La maggior parte dei registri consente entrambi simultaneamente: 1.2.3-rc.1+build.77.

Sì, semver non richiede major consecutive. Passare da 3.x direttamente a 5.x è valido, anche se la maggior parte dei team lo riserva per segnalare un cambiamento particolarmente dirompente.

Strumenti correlati

Strumento disponibile in altre lingue