⏱ Time to read: 1 min 25 secs

[Angular] Le semantic Versioning

Lorsqu’on parle du principe du versionning on pense gĂ©nĂ©ralement Ă  un tag de trois chiffres qui prĂ©sente les mises Ă  jours MAJOR.MINOR.PATCH. Ce nombre s’incrĂ©mente Ă  chaque push/commit Ă©laborĂ© par l’Ă©quipe de dĂ©veloppement du projet. Cela peut ĂȘtre un patch d’un bug, une nouvelle fonction ou bien des nouvelles fonctionnalitĂ©s.


Mais cette méthode de versioning devient un enfer si le systÚme évolue à une grande vitesse ou que le systÚme possÚde des packages qui évoluent de point de vue leur nombre et leurs propres mises à jours.
Le systĂšme de versionning peut ainsi devenir bloquant s’il devient serrĂ© avec l’ajout des packages/dĂ©pendances. Pour rĂ©soudre ce problĂšme, la communautĂ© de SemVer propose un ensemble de rĂšgles simples.
Elle adopte un systĂšme appelĂ© “Semantic Versioning”. On doit avoir une API publique prĂ©cise avec une documentation complĂšte pour utiliser cette mĂ©thode.
L’API doit interagir avec des mots clĂšs comme “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, et “OPTIONAL”. Ces mot clĂšs sont dĂ©clarĂ©s ici RFC 2119.
On dĂ©couvre plusieurs projets qui ont adoptĂ© cette mĂ©thode principalement “ANGULAR” qui a laissĂ© tombĂ© l’ancienne mĂ©thode de versioning d’oĂč ils ont choisi de nommer simplement Angular au lieu de Angular 1, 1.9, 2 ou bien 4.0beta.


Le noyau de Angular est hébergé sur github ici https://github.com/angular/angular mais les dépendance sont évolué séparément dont le package @angular/core qui surpasse la version 2.0.
Je vous laisse voir l’annonce de Igor Minar vous mĂȘme: (video)