Gestion des anomalies en production
===================================

Les anomalies empêchant le bon fonctionnement de la solution :term:`VITAM` déjà déployée dans un système en production sont gérées par le programme VITAM selon un processus dédié. Il reprend la terminologie du "Contrat de Service VITAM".

Numérotation des versions
-------------------------

A partir de la version 1 de la solution VITAM, la numérotation des versions du logiciel est du type *X.Y.Z(-P)* selon les principes suivants :

* X : version majeure de la solution VITAM. Elle suit le calendrier des versions majeures, construit de concert avec les partenaires.


* Y : version mineure de la solution VITAM. Elle suit le calendrier des itérations, typiquement une itération dure trois semaines.


* Z : version *bugfix* de la solution VITAM. Elle suit le calendrier des itérations, typiquement une itération à chaque trois semaines.

 * Seules les versions maintenues continuent de bénéficier de nouvelles versions *bugfix*.


* P : patch de la solution VITAM. Un patch correspond à la mise à disposition, entre deux releases, de binaires et/ou fichiers de configuration et de déploiement, pour corriger des bugs bloquants.

 * Seules les versions maintenues continuent de bénéficier de patchs.

Mise à disposition du logiciel
------------------------------

La solution VITAM est mise à disposition des partenaires selon le calendrier suivant :

* Des *releases* sont mises à disposition des partenaires et du grand public régulièrement, typiquement une release pour cinq itérations de développement. Il s'agit alors de la version mineure courante. Pour rappel, la version 1.0.0 correspond à la release 6 (*R6*).
* Les versions *bugfix* de chaque version maintenue sont mises à disposition des partenaires et du grand public régulièrement, à chaque itération (s'il y a eu des anomalies corrigées dans la période).
* Les patchs de chaque version maintenue sont mis à disposition des partenaires à chaque fois qu'une anomalie de production critique est identifiée et corrigée. Les correctifs correspondant aux patchs sont ensuite inclus dans une version *bugfix* ultérieure.

Gestion des patchs
------------------

L'objectif d'un patch est de rétablir au plus vite le fonctionnement en production des systèmes partenaires. La livraison se limite ainsi aux packages (RPM / DEB) concernés par la correction, avec les fichiers de déploiement et de configuration nécessaires. Les instructions pour "patcher" l'applicatif sont également mises à disposition, en fonction du périmètre impacté (simple arrêt / relance ; purges ; scripts de déploiement...).

Les patchs sont mis à disposition des partenaires sur un dépôt en ligne. L'objectif est d'offrir la possibilité pour les partenaires d'automatiser la récupération des packages mis à jour, et éventuellement de pouvoir reconstituer un packaging complet de Vitam.

.. note:: Ce choix de gestion de patchs implique des numéros de version qui pourront être différents entre chaque paquet. Le réalignement se fait au niveau des versions *bugfix* ou mineures.

La mise à disposition du code source du patch est considérée comme moins critique et se réalise dans un second temps, sur Github.