Aide-mémoire Développement

Aide-mémoire du versionnage sémantique et des plages npm

Ce que signifie MAJOR.MINOR.PATCH, comment se développent ^, ~, les plages en x, les plages avec tiret et ||, comment se classent les préversions et quelles versions chaque plage accepte, vérifié avec npm semver 7.8.5.

Dernière vérification :

AdSense Placeholder
Slot: header_reference_page
Sur cette page

Une version sémantique s'écrit MAJOR.MINOR.PATCH : on incrémente MAJOR pour les changements incompatibles, MINOR pour les nouveautés compatibles et PATCH pour les correctifs compatibles. Les gestionnaires de paquets décrivent les versions acceptables par des plages. Testez n'importe quelle plage sur n'importe quelle version avec le vérificateur de plages semver ; l'idée derrière les numéros est expliquée dans Gestion sémantique de version (SemVer).

Opérateurs de plage

Plage Équivaut à Correspond (exemples) Ne correspond pas
^1.2.3 >=1.2.3 <2.0.0 1.2.3, 1.9.9 2.0.0, 1.2.2
~1.2.3 >=1.2.3 <1.3.0 1.2.3, 1.2.9 1.3.0, 1.2.2
^0.2.3 >=0.2.3 <0.3.0 0.2.3, 0.2.9 0.3.0, 0.2.2
^0.0.3 >=0.0.3 <0.0.4 0.0.3 0.0.4, 0.0.2
^1.2 >=1.2.0 <2.0.0 1.2.0, 1.9.9 2.0.0, 1.1.9
~1 >=1.0.0 <2.0.0 1.0.0, 1.9.9 2.0.0, 0.9.9
1.x >=1.0.0 <2.0.0 1.0.0, 1.9.9 2.0.0, 0.9.9
1.2.x >=1.2.0 <1.3.0 1.2.0, 1.2.9 1.3.0, 1.1.9
>=1.2.7 <1.3.0 >=1.2.7 <1.3.0 1.2.7, 1.2.99 1.3.0, 1.2.6
1.2.3 - 2.3.4 >=1.2.3 <=2.3.4 1.2.3, 2.3.4 2.3.5, 1.2.2
<2.0.0 || >=3.0.0 <2.0.0 || >=3.0.0 1.9.9, 3.0.0 2.5.0, 2.0.0
^1.2.3-beta.2 >=1.2.3-beta.2 <2.0.0 1.2.3-beta.2, 1.2.3 1.2.3-beta.1, 2.0.0

Préversions

Les préversions se classent sous la version finale qu'elles précèdent, et leurs identifiants se comparent champ par champ (les nombres numériquement, les mots alphabétiquement, un ensemble de champs plus long après un plus court) :

1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0

Une plage n'accepte une préversion que si elle nomme elle-même une préversion du même MAJOR.MINOR.PATCH. Ainsi >1.2.3 n'accepte pas 1.3.0-beta, alors que ^1.2.3-beta.2 accepte 1.2.3-beta.4. La plupart des outils proposent une option pour inclure explicitement les préversions.

Règles rapides

  • ^ autorise les changements qui ne modifient pas le premier nombre non nul en partant de la gauche. Sous 1.0.0, ^0.2.3 est donc aussi strict que ~0.2.3.
  • ~ autorise les changements de correctif lorsqu'une version mineure est donnée (~1.2.3) et les changements de version mineure lorsque seule la majeure l'est (~1).
  • Un espace entre comparateurs signifie ET ; || signifie OU.
  • Les métadonnées de build après + (1.0.0+20261028) sont ignorées dans les comparaisons.
  • Incréments : 1.2.3 devient 1.2.4 (correctif), 1.3.0 (mineure) ou 2.0.0 (majeure) ; 1.2.3-beta.1 devient 1.2.3-beta.2.
  • La PEP 440 de Python utilise d'autres opérateurs (~=, ==1.*) et d'autres graphies (1.0rc1) ; Cargo applique par défaut les règles du circonflexe de npm.

Essayez ces outils

Voir aussi

AdSense Placeholder
Slot: footer_leaderboard