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)