| Cartographie fonctionnelle de LoGeAs Procédure de Gestion des Versions Informations sur la version en cours |
|
Document complémentaire à Procédure de Gestion des Versions — celui-ci répond à la question « qu'est-ce que je fais, concrètement, à chaque étape, qui le fait, et où ? ». Destiné au développeur et au chef de projet, pas à un usage certification.
/fusion-dev, /release-beta, /release-client et /rapport-tests-qualite sont des commandes Claude Code (l'assistant IA installé sur le poste de développement), pas des commandes shell classiques. Elles se tapent directement dans l'interface Claude Code (CLI ou extension), pas dans un terminal Git Bash / PowerShell nu.
logeas-web et accès au dossier D:\Developpements\VersionPublic\ExecutablesWindows\ (pour les versions des composants Galaxie LoGeAs dans le rapport de release).logeas-web (ou logeas-cartographie pour la dernière étape de /release-client)./fusion-dev : peu importe la branche de départ, la commande fait elle-même le checkout vers la branche de version./release-beta et /release-client : doivent être lancées sur la branche de version (ex. 11.0.25), pas sur une branche personnelle.| Étape | Qui décide de lancer | Qui exécute |
|---|---|---|
| 1. Travail personnel | Développeur (son propre rythme) | Développeur |
2. /fusion-dev | Développeur (son travail est prêt) | Développeur |
3. /release-beta | Chef de projet ou développeur senior (juge la branche stable) | Développeur ou chef de projet — l'un ou l'autre peut techniquement lancer la commande |
4. /release-client | Chef de projet (validation métier que la beta est bonne à livrer) | Développeur ou chef de projet |
| Copie manuelle vers le serveur (test ou client) | — | Personne ayant accès au bureau à distance du serveur concerné |
En résumé : le développeur porte les étapes 1 et 2 seul. À partir de l'étape 3, c'est une décision d'équipe/de chef de projet de passer à l'étape suivante — l'exécution technique de la commande peut rester déléguée au développeur, mais le feu vert est côté chef de projet, en particulier pour l'étape 4 (on livre au client).
| Étape | Décision | Où | Commande |
|---|---|---|---|
| 1. Travail personnel | Développeur | Poste dev, branche perso | (aucune — voir détail plus bas) |
| 2. Intégration | Développeur | Claude Code, logeas-web | /fusion-dev |
| 3. Beta | Chef de projet | Claude Code, logeas-web, branche de version | /release-beta |
| 4. Release client | Chef de projet | Claude Code, logeas-web puis logeas-cartographie | /release-client |
| Contexte | Commande | Explication |
|---|---|---|
| logeas-Web.fr “D:\Developpements\Sources\NewInterfaces\logeas-web” | ng build --configuration "production,beta" | Génère une version de test de l'interface dans “D:\Developpements\VersionPublic\LogeasWeb-Test\browser” sans passer par les test, la publication, les tags… sauvage quoi !! |
| logeas-Web.fr “D:\Developpements\Sources\NewInterfaces\logeas-web” | ng build --configuration production | Génère une version de l'interface release dans “D:\Developpements\VersionPublic\LogeasWeb\browser” Ne bump pas la version (package.json reste à la version courante) Ne régénère pas version.ts (donc l'écran “info version” affichera des infos obsolètes/incohérentes) Ne tague pas la branche git (donc aucune traçabilité de ce qui a été déployé) Écrase directement ce que voient les vrais utilisateurs de production |
—-
Déclencheur : en continu, dès qu'on commence à développer quelque chose.
Qui : le développeur, seul.
Où : son poste, terminal ou client Git, dans logeas-web, sur sa branche personnelle.
Ce qu'on fait, à la main :
git checkout -b <nom-de-branche> depuis la branche de version en cours (ex. 11.0.25) — pas de convention de nom imposée.git add <fichiers> — jamais git add -A à l'aveugle, on relit ce qu'on ajoute.git commit -m “…” — message en français, court, orienté fonctionnel.git push -u origin <branche> — sauvegarde régulière, au fil de l'eau.Volontairement aucune vérification ici (pas de build, pas de tests) : c'est une sauvegarde de travail potentiellement inachevé, pas encore un contrôle qualité.
À vérifier soi-même avant de committer :
dist/, coverage/).DGService, composants génériques), le code doit vivre dans logeas-lib, pas ici.Déclencheur : le travail sur la branche personnelle est prêt à rejoindre le tronc commun.
Qui : le développeur qui a fait le travail (ou toute personne de l'équipe).
Où : Claude Code, dans logeas-web.
Ce que la commande fait, dans l'ordre :
git fetchgit checkout <branche-de-version> puis git pullgit log <branche-de-version>..<branche-perso> –pretty=… — récupère la liste complète des commits qui vont être intégrésgit merge –no-ff <branche-perso> — le message de fusion embarque cette liste de commits, pas juste un titre génériqueng build — vérifie que ça compilenpm test — tests unitaires (Jest)npm run lint — seulement les nouvelles erreurs introduites par le diff comptent, pas la dette préexistantegit push de la branche de versionÀ vérifier après coup :
Si ça échoue : la procédure corrige sur place si c'est trivial, sinon elle s'arrête et explique — jamais de push –force, jamais de fusion poussée avec des tests rouges.
Déclencheur : la branche de version est jugée stable, prête pour un tour de validation interne.
Qui décide : chef de projet ou développeur senior. Qui exécute : développeur ou chef de projet.
Où : Claude Code, dans logeas-web, sur la branche de version (pas sur une branche perso).
Ce que la commande fait, dans l'ordre :
git status — vérifie que la branche est propre et à jour avec originnpm run build:beta, qui enchaîne :node scripts/version.js beta — calcule le numéro X.Y.Z.W (voir règle de numérotation dans la procédure de référence)ng build –configuration production,beta — sortie vers LogeasWeb-Testnode scripts/release-report.js beta, qui :_release (jamais depuis le dernier beta — le rapport cumule tout le cycle)npx jest –coverage –json pour un résumé de tests à jour (pass/fail, couverture)D:\Developpements\VersionPublic\ExecutablesWindows\)src/assets/releases/X.Y.Z.W.html + met à jour manifest.jsonpackage.json + version.ts + le rapport généré)git tag -a X.Y.Z.W_betagit push + git push origin <tag>À vérifier après coup :
D:\Developpements\VersionPublic\LogeasWeb-Test\browser\./RapportsRelease, accessible sans connexion).
Ce qui reste manuel : copier LogeasWeb-Test\browser\ vers le serveur de test — accessible uniquement en bureau à distance, aucune procédure ne le fait à votre place.
Déclencheur : la beta a été validée (ou directement si aucune beta n'est jugée nécessaire pour ce cycle).
Qui décide : chef de projet — c'est la décision de livrer au client. Qui exécute : développeur ou chef de projet.
Où : Claude Code, dans logeas-web (étapes 1 à 6), puis dans logeas-cartographie pour la relecture/le commit du rapport qualité (étape 7).
Ce que la commande fait, dans l'ordre :
git status — branche propre et à jourgit log <tag_beta>..HEAD) — sinon ça mérite peut-être un nouveau tour de beta.npm run build, qui enchaîne :node scripts/version.js release — repasse en 3 chiffres, reprend le même X.Y.Z que les betas du cycle (jamais de numéro « orphelin »)ng build –configuration production — sortie vers LogeasWebnode scripts/release-report.js release — même mécanique qu'en betapackage.json + version.ts + le rapport)git tag -a X.Y.Z_releasegit push + push du tag/rapport-tests-qualite — uniquement à cette étape, jamais en beta : régénère le rapport qualité NF dans logeas-cartographie (dépôt frère, pas logeas-web), à partir d'une exécution réelle des tests de logeas-web et logeas-libÀ vérifier après coup :
D:\Developpements\VersionPublic\LogeasWeb\browser\._release déjà existant.logeas-cartographie) a bien été régénéré, relu, et proposé au commit — jamais commité automatiquement, dans aucun des deux dépôts.Ce qui reste manuel : copie vers le serveur client (bureau à distance).
Quand : la branche de version en cours (ex. 11.0.25) a accumulé plus que de simples correctifs — nouvelles fonctionnalités, évolution de structure de base, ou tout ce qui correspond à la définition du chiffre Minor dans la procédure de référence. On veut alors que la prochaine version publiée porte un numéro mineur (X.Y+1.0) plutôt qu'un simple correctif (X.Y.Z+1).
Aucun script à modifier : scripts/version.js détermine le numéro cible en comparant le nom de la branche au X.Y.Z actuel de package.json — peu importe si c'est le 2ᵉ ou le 3ᵉ chiffre qui change, dès que le nom de branche est « supérieur », c'est traité comme un nouveau cycle et le saut est automatique.
Procédure :
git checkout 11.0.25 && git pull
git checkout -b 11.1.0 git push -u origin 11.1.0
11.0.25) : elle garde son historique et ses tags beta déjà publiés (ex. 11.0.25.1_beta). C'est une exception volontaire à la règle « pas de X.Y.Z orphelin » de la procédure de référence — cette branche ne débouchera jamais sur un tag _release, ce qui vaut la peine d'être noté quelque part pour ne pas s'interroger plus tard./fusion-dev cible 11.1.0, pas 11.0.25. Quiconque a encore du travail en cours vers l'ancienne branche doit basculer dessus.package.json : au prochain /release-beta sur 11.1.0, le script constate que package.json est encore à l'ancien numéro (ex. 11.0.25.1) et que la branche 11.1.0 lui est supérieure → nouveau cycle détecté automatiquement → saut direct à 11.1.0.1.Toutes les commandes Git listées ci-dessus sont exécutées automatiquement par les commandes Claude Code — vous n'avez normalement rien à taper à la main. Ce tableau sert pour les cas où on doit reproduire une étape manuellement (dépannage, vérification, ou si on préfère l'interface graphique) :
| Commande Git | Équivalent dans SourceTree |
|---|---|
git fetch | Bouton Fetch (barre d'outils du haut) |
git checkout <branche> | Onglet Branches (panneau de gauche) → double-clic sur la branche |
git pull | Bouton Pull |
git status | Onglet File status — visible en permanence, pas besoin de le lancer |
git add <fichiers> | Onglet File status → cocher les fichiers à inclure dans le prochain commit |
git commit -m “…” | Bouton Commit → saisir le message dans la zone de texte |
git merge –no-ff <branche> | Clic droit sur la branche à fusionner (dans le graphe ou l'onglet Branches) → Merge [branche] into [branche courante] → cocher « Create a commit even if merge resolved via fast-forward » |
git tag -a X.Y.Z_release -m “…” | Clic droit sur le commit dans le graphe → Tag… → cocher Annotated tag, saisir le nom et le message |
git push | Bouton Push → dans la boîte de dialogue, cocher aussi les tags à pousser (case « Push all tags » ou sélection du tag spécifique) — sinon le tag reste local |
git log <a>..<b> | Sélectionner la branche dans le graphe et lire l'historique visuellement ; le format exact utilisé par /fusion-dev (un séparateur technique par commit) est interne au script, pas à reproduire à la main |
Point d'attention SourceTree spécifique aux tags : SourceTree ne pousse pas les tags automatiquement avec un push classique — il faut explicitement cocher le tag dans la fenêtre de push, ou faire un push dédié sur le tag après coup. C'est une source d'erreur fréquente (tag créé localement mais jamais visible sur origin).
npm run build à la main pour un simple test de compilation : ça déclenche le bump de version (prebuild). Pour juste vérifier que ça compile sans effet de bord, utiliser ng build directement (c'est ce que fait /fusion-dev)./rapport-tests-qualite manuellement.origin ne sert à rien pour l'équipe.
Document généré le 11 août 2026, mis à jour le 12 août 2026 (ajout du cas particulier de bascule vers une version mineure) — à mettre à jour si le contenu des commandes /fusion-dev, /release-beta, /release-client ou /rapport-tests-qualite évolue.