| Suivi des modifications majeures | ||
|---|---|---|
| Date | Auteur | Modifications |
| 3 août 2026 | Nicolas MARCHAND | Création du document |
| 30 septembre 2026 | Nicolas MARCHAND | Alignement sur la chaîne de qualification et de livraison (Proc#168) : la livraison est faite par les scripts livrer-beta et livrer-release derrière les portes bloquantes, ajout de la qualification et de la recette, suppression de la release sans beta ; mise au format de la maîtrise documentaire |
| Suivi des approbations | Cartographie fonctionnelle – fiche de la procédure |
| Objet | Décrire le dispositif technique de gestion des versions et de publication de LoGeAs Web, depuis l'intégration des développements jusqu'à la production des versions destinées aux utilisateurs, pour les dépôts logeas-web et, lorsque nécessaire, logeas-lib. |
| Destinataires | - Validation des modifications : Gérant - Approbation du document : Équipe développement |
Ce document décrit le dispositif technique de gestion des versions et de publication de LoGeAs Web : les scripts, les fichiers produits, le calcul des numéros de version et les éléments de preuve.
Il complète les documents suivants :
En cas de divergence entre ce document et Proc#168 sur le déroulé d'une livraison, Proc#168 fait foi. Le présent document explique comment le dispositif fonctionne ; il ne remplace ni les décisions de validation ni les contrôles de qualification.
Le dispositif de release a pour objectifs :
Le cycle de publication suit les huit étapes de la chaîne de qualification et de livraison (Proc#168) :
| Étape | Opération | Outil | Résultat |
|---|---|---|---|
| 1 | Travail personnel puis intégration | /fusion-dev | Code intégré et contrôlé sur la branche de version |
| 2 | Qualification | scripts\qualifier-version.bat | Rapport qualité de la version candidate, en brouillon |
| 3 | Validation du rapport qualité | carto, écran « Rapports de version » | Rapport validé (avec ou sans réserves) et publié |
| 4 | Beta | scripts\livrer-beta.bat | Version de test construite, taguée, avec son rapport de release |
| 5 | Déploiement sur le serveur de test | copie manuelle | Beta disponible pour la recette |
| 6 | Recette de la beta | carto, écran « Rapports de version » | Recette conforme ou non conforme |
| 7 | Release client | scripts\livrer-release.bat | Version de production construite et taguée |
| 8 | Déploiement client | copie manuelle | Version en ligne |
Deux portes bloquantes encadrent les livraisons : la porte beta (avant l'étape 4) et la porte release (avant l'étape 7). Elles sont décrites dans Proc#168.
Le passage d'une étape à l'autre reste une décision humaine. L'automatisation réalise les opérations et les contrôles prévus, mais ne décide pas de la pertinence fonctionnelle d'une livraison.
Rôle des commandes de l'assistant Claude Code. /fusion-dev réalise l'intégration. /qualifier-version, /release-beta et /release-client ne livrent rien elles-mêmes : elles vérifient les préconditions ou la porte, expliquent ce qui bloque, puis renvoient vers les scripts ci-dessus, lancés par le développeur.
Il n'y a pas de release client sans beta recettée : la porte release l'exige. La seule exception est la procédure d'urgence (Proc#168, cas 8), qui produit une version affichée « Version non qualifiée » et doit être régularisée.
Le cycle concerne principalement les dépôts suivants :
| Dépôt | Rôle |
|---|---|
logeas-web | Interface Angular LoGeAs Web et scripts de qualification et de livraison |
logeas-lib | Bibliothèques Angular partagées utilisées par les interfaces |
logeas-cartographie | Cartographie fonctionnelle : écran « Rapports de version » (validation des rapports qualité, recette) |
Les bibliothèques de logeas-lib sont utilisées par logeas-web sous forme de paquets construits. Le changement de branche ne suffit donc pas à garantir la cohérence des dépendances : les paquets installés doivent correspondre au code de la bibliothèque. C'est pourquoi la qualification reconstruit et réinstalle logeas-lib, et pourquoi les portes vérifient que les paquets installés sont toujours ceux du run qualifié.
Les builds sont générés localement sur le poste de développement.
| Destination | Usage |
|---|---|
D:\Developpements\VersionPublic\LogeasWeb-Test\browser\ | Version beta destinée aux tests |
D:\Developpements\VersionPublic\LogeasWeb\browser\ | Version destinée à la production |
La séparation des destinations est assurée par les configurations Angular :
production,beta pour la génération beta ;production pour la génération client.Cette séparation évite qu'une génération de test écrase directement les fichiers de production.
La génération des fichiers et leur déploiement sur les serveurs sont deux opérations distinctes.
Le transfert vers les serveurs de test et de production est réalisé manuellement, par une personne disposant des accès nécessaires au bureau à distance.
Les scripts de livraison ne réalisent pas eux-mêmes ce transfert.
Chaque développeur travaille sur une branche personnelle issue de la branche de version concernée.
Les commits et les sauvegardes de cette branche restent libres, afin de ne pas imposer les contrôles de publication à chaque sauvegarde intermédiaire.
Cette étape ne constitue pas une intégration validée et ne garantit pas que le code compile ou que les tests passent.
Le premier contrôle technique obligatoire du cycle intervient lors de l'intégration.
La commande /fusion-dev intègre les développements personnels à la branche de version commune.
Elle réalise les opérations suivantes :
Les contrôles techniques portent sur :
Les résultats sont examinés avant la publication de la branche commune.
En cas d'échec, la procédure ne doit pas publier une intégration non validée. En cas de conflit métier ambigu, une décision humaine est nécessaire.
La procédure n'utilise pas de push –force sur la branche commune.
Résultat attendu : une branche de version intégrée, contrôlée et accompagnée d'un historique de fusion exploitable.
Le script scripts\qualifier-version.bat produit le rapport qualité de la prochaine version, sur un code identifié sans ambiguïté.
Il réalise les opérations suivantes :
logeas-web et logeas-lib : branche de version, aucune modification locale, branche à jour et poussée ;logeas-lib depuis son dernier commit et réinstallation dans logeas-web ;
Le rapport est nommé run-<version>-<AAAAMMJJ-HHMM>.html et porte la clé du code testé (commits des deux dépôts, empreinte des paquets logeas-lib).
Le rapport est ensuite validé, validé avec réserves ou refusé dans la carto (Proc#168, « Validation du rapport qualité »).
Le script scripts\livrer-beta.bat produit la version destinée à la recette. Il s'arrête au premier échec.
Les opérations techniques sont les suivantes :
scripts/porte-livraison.js beta) : les deux dépôts sont propres, à jour et poussés, et un rapport de qualification de la version candidate, validé, porte exactement le dernier commit des deux dépôts et les mêmes paquets logeas-lib ;npm run prebuild:beta, qui exécute scripts/version.js beta) ;scripts/release-report.js beta –qualification) : les tests unitaires et le résumé des tests d'interface y sont repris de la qualification, rien n'est rejoué ;ng build –configuration production,beta, vers D:\Developpements\VersionPublic\LogeasWeb-Test\ ;X.Y.Z.W_beta et, si besoin, tag web-X.Y.Z.W_beta dans logeas-lib ;Si le rapport de release ou le build échoue, la mise à jour du numéro de version est annulée : rien n'est commité ni tagué.
La beta ne vaut pas validation fonctionnelle : elle fournit l'artefact et les éléments de traçabilité destinés à la recette.
Le script scripts\livrer-release.bat produit la version destinée aux utilisateurs. Son déroulé est le même que celui de la beta, derrière la porte release.
scripts/porte-livraison.js release) : le tag de la beta est le dernier commit de logeas-web (aucun commit depuis la beta), logeas-lib est toujours au commit qualifié, le rapport qualité est toujours validé et la recette de cette beta est « Conforme » ;npm run prebuild, qui exécute scripts/version.js release) ;ng build –configuration production, vers D:\Developpements\VersionPublic\LogeasWeb\ ;X.Y.Z_release ;Le rapport qualité, publié lors de sa validation, est la pièce qualité de la release.
Tout correctif après une beta impose une nouvelle qualification et une nouvelle beta (Proc#168, cas 3) : aucune modification n'est admise entre la beta recettée et la release.
Les commandes npm run build:beta et npm run build restent utilisables, mais elles produisent une version hors chaîne, affichée « Version non qualifiée » dans « À propos > Logiciel » et dans son rapport de release. Elles ne doivent pas être utilisées pour une livraison normale ; leur usage en urgence est décrit dans Proc#168, cas 8.
Les versions de LoGeAs Web utilisent trois ou quatre composantes numériques :
X.Y.Z pour une release ;X.Y.Z.W pour une beta.Le suffixe du tag identifie la nature de la publication :
_beta pour une version de test ;_release pour une version destinée aux utilisateurs.Les règles générales de numérotation sont définies dans la procédure de gestion des versions.
Le calcul est centralisé dans :
scripts/version.js
La fonction resolveNextVersion détermine le numéro à utiliser en fonction :
package.json ;Pour une beta, le quatrième chiffre est incrémenté à chaque nouvelle génération du même cycle.
Lorsqu'une nouvelle branche numérotée correspond à un cycle ultérieur, le script utilise son numéro comme nouvelle base de version.
Pour une release, le quatrième chiffre est supprimé. Le numéro X.Y.Z utilisé par les betas est repris s'il n'a pas déjà été publié. Si une release portant ce numéro existe déjà, le script avance vers un nouveau numéro conformément à la règle implémentée.
La commande node scripts/version.js beta –simuler affiche la version candidate sans rien modifier.
Le fichier src/assets/version.ts est régénéré lors de la préparation d'un build.
Il contient notamment les informations permettant d'identifier :
Ces données permettent de rapprocher une version exécutée de son état source.
Les cas de changement de version mineure, de correction d'une version déjà livrée et de travail parallèle sur plusieurs versions sont décrits dans Proc#168 (cas 6 et 7) et dans le guide pratique.
Ils ne doivent pas conduire à réécrire l'historique d'une version déjà publiée.
Les procédures outillées appliquent des contrôles destinés à éviter les publications incohérentes ou non traçables.
| Contrôle | Étape concernée | Objectif |
|---|---|---|
| État des dépôts (propres, à jour, poussés) | Intégration, qualification, beta, release | Éviter de publier à partir d'un état local non maîtrisé |
| Branche de version | Toutes les étapes outillées | Garantir que l'opération concerne la branche attendue |
| Compilation, tests unitaires, lint | Intégration | Détecter les erreurs avant l'intégration |
| Tests unitaires et tests d'interface | Qualification | Produire le rapport qualité de la version candidate |
| Porte beta | Beta | N'ouvrir une beta que sur un code qualifié, avec un rapport validé |
| Porte release | Release | N'ouvrir une release que sur la beta recettée conforme, sans commit depuis |
Paquets logeas-lib installés | Beta, release | Garantir que la bibliothèque livrée est celle qui a été qualifiée |
| Numéro de version et tags | Beta, release | Éviter les collisions et préserver la traçabilité |
| Séparation des répertoires de sortie | Beta, release | Empêcher la confusion entre test et production |
| Liste des commits intégrés | Intégration | Conserver la traçabilité des changements |
| Rapport de release | Beta, release | Documenter les changements et renvoyer au rapport qualité |
En cas d'échec d'un contrôle bloquant, la procédure s'arrête et signale l'anomalie. Une porte ne se contourne jamais : si le blocage est injustifié, c'est un défaut des scripts, à signaler et corriger.
Aucune procédure ne doit résoudre silencieusement un conflit métier ou écraser des modifications non validées.
Les opérations de publication n'utilisent pas push –force et ne suppriment pas automatiquement des branches ou des tags.
Les échecs de tests déjà connus doivent être identifiés et distingués des régressions introduites par le changement en cours : c'est l'objet de la décision « Validé avec réserves » (Proc#168).
Les éléments suivants permettent de reconstituer une publication :
web-* de logeas-lib) ;version.ts ;run-<version>-<date>.html), sa décision de validation et la recette de la beta ;src/assets/releases/ et référencé dans manifest.json.| Élément | Où le consulter |
|---|---|
| Rapports qualité, décisions, recettes, rapports de release | carto, écran « Rapports de version » (https://cartographie-fonctionnelle.logeas-web.fr/RapportsVersion) |
| Historique d'un rapport (validation, publication, beta, recette, release) | table ApprobDoc du serveur Nono, trace du rapport |
| Qualification d'une version livrée | son rapport de release et « À propos > Logiciel » |
Les modalités de validation et de conservation de ces preuves relèvent de la chaîne de qualification et de livraison.
Les opérations suivantes restent sous la responsabilité des personnes habilitées :
La séparation entre génération, validation et déploiement permet de conserver un contrôle humain sur les étapes engageant la mise à disposition du logiciel.
Les scripts et configurations qui mettent en œuvre le cycle de release font partie du dispositif de développement de LoGeAs Web.
Toute modification significative de ces éléments doit être contrôlée et testée avant d'être utilisée pour une publication.
Les évolutions du dispositif doivent préserver :
La présente procédure doit être révisée lorsque le fonctionnement effectif du cycle de release évolue.