URL: https://linuxfr.org/news/gestion-semantique-de-version Title: Gestion sémantique de version Authors: Oliver Pierre Jarillon, Benoît Sibaud, ZeroHeure et palm123 Date: 2015年01月08日T10:20:27+01:00 License: CC By-SA Tags: sémantique et ingénierie Score: 27 Les développeurs, intégrateurs et mainteneurs s'arrachent les cheveux quand ils ont à mettre à jour les versions des logiciels. L'éternelle question *La nouvelle version, est elle rétro-compatible ?* pourrait se résoudre en se basant sur le nouveau numéro de version, mais chaque auteur de logiciel fait un peu comme il le sent. C'est pour uniformiser ces règles, que Tom Preston-Werner (Gravatars et GitHub) a proposé la **gestion sémantique de version** (adoptée par de plus en plus de logiciels). Dans la suite de la dépêche, ces règles sont résumées en 9 points. ---- [Site officiel SemVer](http://semver.org/lang/fr/) [Blog de Tom Preston-Werner home ](http://tom.preston-werner.com/) ---- Exemple: **`2.15.4`**`-rc.1+build.13` 1. Trois numéros: `majeur.mineur.patch` 2. Et optionnellement un *label de pré-livraison* et un *label de compilation* pour plus de liberté 3. Le `majeur` est zéro (**`0`**`.1.0`) => n'importe quoi peut changer 4. Le `majeur` est un (**`1`**`.0.0`) => La première livraison officielle 5. Le `majeur` est incrémenté (**`2`**`.0.0`) => Changement incompatible de l'API 6. Le `mineur` est incrémenté (`2.`**`1`**`.0`) => Une nouvelle fonctionnalité 7. Le `patch` est incrémenté (`2.1.`**`1`**) => Correction de bug sans toucher l'API 8. Pour trier les versions dans l'ordre, les labels sont décomposés en identifiants séparés par des points 9. Chaque identifiant utilise des caractères parmi `[0-9A-Za-z-]` Tous les détails sont sur le site officiel. Il est possible de proposer des évolutions en clonant le projet Git, puis en soumettant un *pull request*. Mais les règles sont maintenant bien abouties et stables. Néanmoins nombreux sont ceux qui souhaiteraient avoir la possibilité de ne pas indiquer le numéro de patch (quand ce n'est pas une version patchée) ou d'ajouter un quatrième numéro... **Et à quoi reconnaît-on qu'un logiciel respecte cette règle ?** Pas d'indication particulière dans la version à part la présence des trois nombres et le respect des conventions. Il est donc nécessaire de lire au moins de temps en temps la documentation des logiciels. Comme par exemple, C'est vers la fin du [readme.md de TinyXML-2](https://github.com/leethomason/tinyxml2/blob/master/readme.md#versioning) qu'est mentionné cette gestion de version. **Une proposition de préfixe ?** Personnellement, je préfixe souvent les versions par la lettre **`v`** (**`v`**`2.15.4`). Nous pourrions peut être proposer de préfixer par **`sv`** (**`sv`**`2.15.4`) quand les règles de *"Semantic Versioning"* sont appliquées... Bof... * **Et vous qu'en pensez-vous ?** * **Séduit, convaincu, adopté ?** * **L'utilisez vous déjà dans vos logiciels ?** (libres ou internes à vos entreprise)