Calculateur SemVer

La version sémantique a cinq éléments : MAJOR.MINOR.PATCH, plus les suffixes optionnels -prerelease et +build. Ce calculateur prend une chaîne de version, la valide par rapport à la grammaire semver 2.0.0, la décompose en ses composants et affiche les versions majeure, mineure, correctif et préversion (-rc.1) suivantes côte à côte.

Comment augmenter une version

  1. 1

    Collez la version actuelle

    Accepte `1.2.3`, `1.2.3-rc.1`, `2.0.0-alpha+exp.sha.5114f85` et d'autres formes semver 2.0.0.

  2. 2

    Lisez les parties analysées

    L'outil décompose la chaîne en majeur, mineur, correctif, préversion et métadonnées de construction pour que vous confirmiez qu'elle a été interprétée comme prévu.

  3. 3

    Comparez les versions suivantes

    Il affiche les prochaines versions majeure, mineure et correctif en même temps, plus une candidate de préversion (`-rc.1`). Augmenter le mineur réinitialise le correctif à 0 ; augmenter le majeur réinitialise à la fois le mineur et le correctif.

  4. 4

    Copiez la nouvelle version

    Sélectionnez la version qui correspond à votre changement et utilisez-la dans votre `package.json`, `Cargo.toml`, tag git, ou notes de version.

Ce que montre ce calculateur

Pour une version comme 1.2.3, l’outil affiche quatre versions suivantes suggérées :

Augmentation 1.2.3 devient
majeur 2.0.0
mineur 1.3.0
correctif 1.2.4
préversion 1.2.4-rc.1

Augmenter le mineur réinitialise le correctif à 0 ; augmenter le majeur réinitialise à la fois le mineur et le correctif à 0. La suggestion de préversion marque le correctif suivant comme candidate de version. Les outils en ligne de commande comme npm version ajoutent d’autres opérations (premajor, preminor, prepatch, et des incréments de préversion sur place comme 1.2.3-beta.1 qui devient 1.2.3-beta.2) si vous en avez besoin dans un script de version.

Règles de priorité que vous rencontrerez

  • Une préversion a une priorité inférieure à la version : 1.0.0-rc.1 < 1.0.0.
  • Les identifiants numériques se comparent numériquement ; les alphanumériques se comparent lexicalement : 1.0.0-alpha.2 < 1.0.0-alpha.11.
  • Les métadonnées de construction (+sha.abc) sont ignorées pour la priorité. 1.0.0+20240101 et 1.0.0+20250101 sont des versions égales.
  • Un zéro en tête dans un identifiant numérique est invalide. 1.0.0-rc.01 n’est pas semver ; utilisez rc.1.

Cheat sheet des opérateurs de plage

  • ^1.2.3, tout >=1.2.3 et <2.0.0 (reste sur le même majeur).
  • ~1.2.3, tout >=1.2.3 et <1.3.0 (reste sur le même mineur).
  • >=1.2.3 <2.0.0, plage explicite.
  • 0.x est spécial : npm traite ^0.2.3 comme >=0.2.3 <0.3.0 car les versions pré-1.0 sont considérées comme instables.

Quand augmenter le majeur

Augmentez le majeur pour tout changement qui casse les consommateurs en aval : API publique supprimée, signature de fonction modifiée, comportement par défaut modifié, clé de configuration renommée. Un mineur est uniquement pour des changements additifs. Un correctif est pour des corrections de bogues qui ne modifient pas le contrat.

Questions fréquentes

Non. 01.2.3 est invalide. Chaque identifiant numérique doit être un entier non négatif sans zéros en tête, sauf pour le littéral 0.

Utilisez une augmentation de correctif à partir de votre dernier 1.0.0-rc.N, semver considère cela comme une graduation hors de la préversion vers la version de publication. Alternativement, définissez la version explicitement et taguez.

Non. Les métadonnées de construction viennent après + et sont ignorées pour l’ordre. La préversion vient après - et abaisse la priorité en dessous de la version. La plupart des registres permettent les deux simultanément : 1.2.3-rc.1+build.77.

Oui, semver ne nécessite pas de majeurs consécutifs. Passer de 3.x directement à 5.x est valide, bien que la plupart des équipes le réservent pour signaler un changement particulièrement perturbateur.

Outils similaires

Outil disponible dans d’autres langues