[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)

 

Tags

About: Chikori

Hi there! Welcome to my personal website. I’m Chokri, a musician, webdesigner and programmer.
The Web is my passion. Followed by a graduate studies in Multimedia & technology it gave me the opportunity to make rich internet applications.
Beyond web development, I am also interested in the graphic side of web interfaces to make use of GUI more attractive and more ergonomic.

You may also like...

My Github Profile