Slide 76
Slide 76 text
Semantic
SemVer Versioning
15
v X . Y . Z
Major Minor Patch
bugfix
feature
new API
– id
Pre-rel
“beta.1”,
“alpha”…
Le versionnement sémantique, ou SemVer, est une simple convention de nommage. Vous utilisez certainement déjà un système proche : la lettre 'v', suivie de trois entiers positifs séparés par des points.
L'incrémentation du dernier nombre à droite indique la correction d'une anomalie. Celle du nombre central, l'ajout d'une fonctionnalité. Enfin, celle du nombre le plus à gauche, une nouvelle version
complète, généralement accompagnée une nouvelle API. On parlera de numéros de version “majeur”, “mineur” et “de patch”. On peut également ajouter à cette numérotation, en cas de besoin, un identifiant
de pré-version, préfixé d'un tiret, et sans espace.
Tout l'intérêt de ce système de versionnement est l'établissement d'un contrat avec les clients de l'API publique de votre application :
- la modification d'un numéro de patch GARANTIT le maintien tel quel de votre API ;
- la modification d'un numéro mineur GARANTIT la compatibilité de votre API, bien que certaines méthodes puissent être dépréciées en prévision d'évolutions ;
- la modification d'un numéro majeur, quant à lui, n'offre aucune garantie : l'API a pu être modifiée, ou non. En revanche, toute incompatibilité d'API oblige à incrémenter le numéro de version majeur.
Un identifiant de pré-version casse les contrats habituels. L'objectif est de respecter celui annoncé par le numéro de version, mais tant que la pré-version est présente, rien n'est certain.