À retenir
- X (Majeur) : Changements incompatibles (on casse la compatibilité).
- Y (Mineur) : Nouvelles fonctionnalités (compatibilité conservée).
- Z (Patch) : Corrections de bugs (compatibilité conservée).
Le SemVer est une méthode normalisée pour numéroter les versions d'un logiciel en utilisant trois nombres séparés par des points (par exemple : 1.4.2). Son objectif est de communiquer instantanément aux utilisateurs et aux autres développeurs l'importance des changements effectués dans une mise à jour. C'est un code de communication universel : le premier chiffre indique un gros changement, le deuxième une nouveauté, et le troisième une simple réparation.
Étymologie
Contraction de l'anglais Semantic Versioning (versionnage sémantique). Le terme souligne que les numéros de version possèdent un sens précis (une sémantique) au lieu d'être choisis de manière arbitraire ou purement chronologique. Ce standard a été formalisé par Tom Preston-Werner, cofondateur de GitHub.
Exemples d'usage
- Passer de
1.0.4à1.0.5: Correction d'une petite erreur de calcul (Patch). - Passer de
2.3.0à2.4.0: Ajout d'un mode sombre dans une application (Mineur). - Passer de
3.2.1à4.0.0: Refonte totale de l'interface qui change les habitudes des utilisateurs (Majeur).
Cas d'usage
Ce système est le standard absolu pour les gestionnaires de paquets (comme npm pour Node.js, Composer pour PHP ou PyPI pour Python). Il permet aux systèmes informatiques de décider automatiquement s'ils peuvent installer une mise à jour en toute sécurité sans risquer de rendre le logiciel incompatible avec le reste du système.
Bonnes pratiques
Une fois qu'une version est publiée avec un numéro précis, son contenu ne doit plus jamais être modifié. Si une erreur est détectée, on publie une nouvelle version avec un numéro de patch supérieur. Il est également recommandé de ne passer à la version 1.0.0 que lorsque le logiciel est jugé stable et prêt pour une utilisation réelle.
Synonymes
Antonymes
Conseil
Si vous développez une application, adoptez le SemVer dès le début. Cela vous forcera à réfléchir à l'impact de vos modifications sur vos utilisateurs. Rappelez-vous : si vous supprimez une fonction que d'autres utilisent, vous devez obligatoirement augmenter le chiffre Majeur.
Questions fréquentes
Pourquoi commencer par 0.1.0 ?
La version 0.x.y est utilisée pour la phase de développement initial où tout peut changer à tout moment sans respecter les règles strictes du SemVer.
Peut-on utiliser des lettres ?
Oui, on peut ajouter des étiquettes comme -alpha, -beta ou -rc (Release Candidate) à la fin pour indiquer une version de test non finalisée.