Dans le développement logiciel, il est essentiel de communiquer clairement l'évolution d'un projet aux utilisateurs et aux développeurs. Pour cela, la Gestion Sémantique de Version, connue sous le nom de SemVer, fournit une convention simple et universelle pour numéroter les versions des logiciels.
SemVer utilise un format standardisé composé de trois nombres : MAJEUR.MINEUR.PATCH (par exemple, 2.0.0 ou X.Y.Z).
Ces trois nombres ont chacun une signification spécifique :
SemVer est aujourd'hui utilisé par la majorité des projets open-source et commerciaux, notamment dans les écosystèmes JavaScript (npm), PHP (Composer), Python (pip), et bien d'autres. Il facilite la gestion des dépendances, la mise à jour sécurisée des logiciels, et permet aux développeurs d'avoir confiance dans l'intégration des nouvelles versions.
Un numéro de version standard DOIT prendre la forme X.Y.Z où X, Y et Z sont des entiers non négatifs et NE DOIVENT PAS être préfixés par des zéros.
Exemple : 1.9.0 -> 1.10.0 -> 1.11.0
Une fois qu’un composant est publié, le contenu de sa version NE DOIT PAS être modifié. Toute modification DOIT être publiée dans une nouvelle version.
L’identifiant de version majeure zéro (0.y.z) est destiné au développement initial. Tout ou partie peut être modifié à tout moment.
L’identifiant de version mineure Y (x.Y.z | x > 0) DOIT être incrémenté si de nouvelles fonctionnalités rétrocompatibles sont introduites. Il PEUT être incrémenté si de nouvelles fonctionnalités ou améliorations substantielles sont introduites dans le code privé. Il PEUT inclure dans le même temps des corrections. L’identifiant de version de correction DOIT être remis à zéro lorsque l’identifiant de version mineure est incrémenté.