Le versioning sémantique (SemVer) est une convention de numérotation des versions logicielles au format MAJOR.MINOR.PATCH. Chaque segment communique la nature du changement : rupture de compatibilité, nouvelle fonctionnalité ou correction de bug.
Un contrat de compatibilité
MAJOR signale un breaking change, MINOR une fonctionnalité rétrocompatible, PATCH une correction de bug. Ce contrat permet aux développeurs de mettre à jour leurs dépendances en confiance : un composer update ne cassera pas l'application si les contraintes de version sont bien définies.
Gestion des dépendances
Composer (PHP), npm (JavaScript) et la plupart des gestionnaires de paquets s'appuient sur SemVer pour résoudre les dépendances. Les contraintes comme ^2.1 ou ~3.0 n'ont de sens que si les mainteneurs respectent la convention. Un bump de MAJOR non signalé peut casser des centaines de projets.
Le versioning sémantique est un contrat social entre mainteneurs et utilisateurs. Le respecter, c'est permettre à l'écosystème de mettre à jour en confiance. Le violer, c'est semer le chaos dans les dépendances.