À propos de ce tutoriel
Dans ce tutoriel, je vous propose de découvrir la gestion sémantique de version qui définit des règles sur la manière de versionner une application/librairie. Le principe repose sur 3 numéros qui sont incrémentés de manières différentes.
- Le premier numéro, désignant la version MAJEURE, est incrémenté lorsqu'il y a des changements qui ne sont pas rétro-compatibles (qui contiennent des breaking changes).
- Le second numéro, désignant la version MINEURE, est incrémenté lorsqu'il y a un ajout de fonctionnalité (qui ne casse pas la rétrocompatibilité).
- Le troisième numéro, désignant la version PATCH, est incrémenté quand il y a des corrections d'anomalies rétrocompatibles.
En plus de ces nombres, il est possible d'ajouter un libellé supplémentaire pour désigner des versions de prélivraison spécifique (-beta, -alpha...).
Utilisation dans la déclaration des dépendances
Cette gestion de la numérotation est très importante car elle permet de mieux prévoir les conséquences d'une montée en version dans les dépendances. Quand on installe une dépendance sur un projet, il est possible d'ajouter des contraintes sur les versions qu'il est possible d'installer.
^1.2.3
, un^
permet d'indiquer qu'on accepte les versions supérieures ou égales à la version demandée et qui ne contiendront pas de breaking changes (équivalent à>= 1.2.3 <2.0.0
)~1.2.3
, le~
permet d'accepter une montée de version de même signification (~1.2.3
équivaut à>=1.2.3 <1.3.0
et~1.2
équivaut à>=1.2 <2.0
).1.2.3
, verrouille la version au numéro demandé (mais prive d'éventuelles corrections de bugs).
Liens utiles
- Documentation Semver.org
- npm semver calcultator pour tester l'effet d'un numéro de version
- Prise en compte dans composer
- Prise en compte dans NPM