meta données pour cette page
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| certif:procedure:develop:gestionversionpratique [2026/09/28 12:54] – nicolas | certif:procedure:develop:gestionversionpratique [2026/09/30 10:38] (Version actuelle) – nicolas | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | |{{: | + | |{{: |
| - | |{{: | + | |{{: |
| - | ====== Guide pratique — Cycle de release, étape par étape | + | ====== |
| - | //Document complémentaire à [[certif: | + | ===== Informations qualité ===== |
| - | ===== Où se lancent ces commandes ===== | + | ^Suivi des modifications majeures^^^ |
| + | ^Date^Auteur^Modifications^ | ||
| + | |11 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) : le guide se limite au travail personnel, à l' | ||
| - | '' | + | |**Suivi des approbations** |[[https:// |
| + | |**Objet** |Ce guide décrit les opérations à effectuer pour gérer les versions de LoGeAs Web, depuis le développement individuel jusqu'à la publication d'une version destinée aux utilisateurs.| | ||
| + | |**Destinataires** |**- Validation | ||
| - | * **Poste concerné :** celui qui a un checkout local de '' | + | \\ |
| - | * **Dossier de travail :** toujours la racine du dépôt '' | + | |
| - | * **Branche active au moment de lancer la commande :** | + | |
| - | * ''/ | + | |
| - | * ''/ | + | |
| - | ===== Qui fait quoi ===== | + | ===== 1. Objet ===== |
| - | ^ Étape ^ Qui décide | + | Ce guide décrit les opérations pratiques |
| - | | 1. Travail personnel | Développeur (son propre rythme) | Développeur | | + | |
| - | | 2. ''/ | + | |
| - | | 3. ''/ | + | |
| - | | 4. ''/ | + | |
| - | | 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' | + | Il complète |
| - | ---- | + | * [[certif: |
| + | * [[certif: | ||
| + | * [[certif: | ||
| - | ===== Vue d' | + | **Répartition :** ce guide détaille le travail quotidien du développeur (branches, commits, intégration, |
| - | {{: | + | ===== 2. Environnement |
| - | ^ Étape ^ Décision ^ Où ^ Commande ^ | + | ==== 2.1 Outils ==== |
| - | | 1. Travail personnel | Développeur | Poste dev, branche perso | (aucune — voir détail plus bas) | | + | |
| - | | 2. Intégration | Développeur | Claude Code, '' | + | |
| - | | 3. Beta | Chef de projet | Claude Code, '' | + | |
| - | | 4. Release client | Chef de projet | Claude Code, '' | + | |
| - | ==== Autres commandes " | + | Les opérations sont réalisées depuis le poste de développement, avec : |
| - | ^Contexte^Commande^Explication^ | + | |
| - | |logeas-Web.fr\\ " | + | |
| - | |logeas-Web.fr\\ "D:\Developpements\Sources\NewInterfaces\logeas-web" | + | |
| - | ---- | + | |
| - | ===== Étape 1 — Travail personnel (manuel) ===== | + | * Git et l' |
| + | * Node.js et npm ; | ||
| + | * Angular CLI ; | ||
| + | * Claude Code, pour les commandes d' | ||
| + | * les accès aux dépôts '' | ||
| + | * un accès connecté à la cartographie fonctionnelle, | ||
| - | **Déclencheur :** en continu, dès qu'on commence à développer quelque chose. | + | Les commandes ''/ |
| - | **Qui :** le développeur, | + | ==== 2.2 Répertoires ==== |
| - | **Où :** son poste, terminal ou client Git, dans '' | + | ^ Répertoire ^ Usage ^ |
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| - | **Ce qu'on fait, à la main :** | + | Les commandes Claude Code et les scripts se lancent depuis |
| - | - '' | + | ===== 3. Vue d'ensemble ===== |
| - | - On développe, on teste localement si besoin. | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | **Volontairement aucune vérification ici** (pas de build, pas de tests) : c'est une sauvegarde | + | ^ Étape ^ Commande ou opération ^ Qui ^ Décrit dans ^ |
| + | | 1. Travail personnel | Git, commits et sauvegardes | Développeur | ce guide, section 4 | | ||
| + | | 2. Intégration | ''/ | ||
| + | | 3. Qualification | '' | ||
| + | | 4. Validation du rapport qualité | carto, écran « Rapports | ||
| + | | 5. Beta | '' | ||
| + | | 6. Déploiement sur le serveur | ||
| + | | 7. Recette de la beta | carto, écran « Rapports de version » | Valideur | Proc#168 | | ||
| + | | 8. Release client | '' | ||
| + | | 9. Déploiement en production | copie manuelle | Personne habilitée | Proc#168 | | ||
| - | **À vérifier soi-même avant de committer :** | + | ===== 4. Étape 1 — Travail personnel ===== |
| - | * Rien de sensible n'est ajouté (secrets, fichiers de config locale, '' | + | |
| - | * Si le changement touche en réalité un comportement partagé ('' | + | |
| - | ---- | + | ==== 4.1 Création de la branche ==== |
| - | ===== Étape 2 — Intégration ('' | + | Dans le dépôt |
| - | **Déclencheur | + | Exemple |
| - | **Qui :** le développeur qui a fait le travail (ou toute personne de l' | + | <code bash> |
| + | git checkout 11.2.0 | ||
| + | git pull | ||
| + | git checkout -b feature/ | ||
| + | </ | ||
| - | **Où :** Claude Code, dans '' | + | Le nom de la branche doit permettre d'identifier le travail effectué. |
| - | **Ce que la commande fait, dans l' | + | ==== 4.2 Développement et sauvegarde ==== |
| - | - '' | + | Le développeur réalise ses modifications et les sauvegarde régulièrement. |
| - | - '' | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - Si tout est vert : '' | + | |
| - | **À vérifier après coup :** | + | Exemple |
| - | * Le commit de fusion contient bien la liste des commits intégrés (pas juste « Merge branch X into Y »). | + | |
| - | * Aucun conflit n'a été résolu à l' | + | |
| - | * Build/ | + | |
| - | **Si ça échoue :** la procédure corrige sur place si c'est trivial, sinon elle s' | + | <code bash> |
| + | git status | ||
| + | git add src/ | ||
| + | git commit -m " | ||
| + | git push -u origin feature/nom-fonctionnalite | ||
| + | </ | ||
| - | ---- | + | Avant chaque commit, vérifier les fichiers sélectionnés. |
| - | ===== Étape 3 — Beta (''/ | + | Ne pas ajouter de fichiers contenant des secrets, des paramètres locaux ou des fichiers de compilation qui ne sont pas destinés au dépôt. |
| - | **Déclencheur :** la branche | + | Les tests peuvent être exécutés pendant le développement selon les besoins. Cette étape constitue une sauvegarde du travail personnel et non une validation |
| - | **Qui décide :** chef de projet ou développeur senior. **Qui exécute :** développeur ou chef de projet. | + | ==== 4.3 Fin du travail personnel ==== |
| - | **Où :** Claude Code, dans '' | + | Lorsque le travail est prêt à être intégré |
| - | **Ce que la commande fait, dans l'ordre :** | + | |
| + | | ||
| + | * s' | ||
| + | * lancer | ||
| - | - '' | + | La branche |
| - | - '' | + | |
| - | * '' | + | |
| - | * régénération de la licence DevExtreme | + | |
| - | * ''ng build --configuration production, | + | |
| - | - '' | + | |
| - | * calcule le diff Git depuis le **dernier tag '' | + | |
| - | * relance '' | + | |
| - | * lit la version des 4 composants de la Galaxie LoGeAs directement sur les exécutables compilés ('' | + | |
| - | * écrit '' | + | |
| - | - Commit dédié « Preparation version X.Y.Z.W » ('' | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | **À vérifier après coup :** | + | ===== 5. Étape 2 — Intégration ===== |
| - | * Le numéro de version généré est bien celui attendu (cohérent avec le nom de la branche). | + | |
| - | * Le rapport de release ne signale pas d' | + | |
| - | * Le build est bien présent dans '' | + | |
| - | * Le rapport est consultable dans l' | + | |
| - | **Ce qui reste manuel :** copier '' | + | ==== 5.1 Préparation ==== |
| - | ---- | + | L' |
| - | ===== Étape 4 — Release client ('' | + | < |
| + | /fusion-dev | ||
| + | </ | ||
| - | **Déclencheur :** la beta a été validée (ou directement si aucune beta n'est jugée nécessaire pour ce cycle). | + | La commande se lance dans '' |
| - | **Qui décide :** **chef | + | Avant de poursuivre, vérifier que : |
| - | **Où :** Claude Code, dans '' | + | |
| + | | ||
| + | | ||
| + | | ||
| - | **Ce que la commande fait, dans l' | + | ==== 5.2 Contrôles ==== |
| - | - '' | + | La procédure réalise |
| - | - Si cette release fait suite à une beta : vérifie que rien d' | + | |
| - | - '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | - '' | + | |
| - | - Commit dédié « Preparation version X.Y.Z » ('' | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - **''/ | + | |
| - | **À vérifier après coup :** | + | |
| - | * Le build est bien présent dans '' | + | * tests unitaires ; |
| - | * Le tag ne rentre pas en collision avec un tag '' | + | * lint. |
| - | * Le rapport qualité NF ('' | + | |
| - | **Ce qui reste manuel :** copie vers le serveur client (bureau à distance). | + | Le développeur vérifie |
| - | ---- | + | En cas de conflit concernant le fonctionnement métier, ne pas accepter une résolution automatique sans vérification. |
| - | ===== Cas particulier — Basculer vers une version mineure en cours de cycle ===== | + | En cas d' |
| - | **Quand :** la branche de version en cours (ex. '' | + | ==== 5.3 Résultat attendu ==== |
| - | **Aucun script à modifier :** '' | + | L'intégration |
| - | **Procédure :** | + | |
| + | | ||
| + | | ||
| + | | ||
| - | - Se mettre à jour sur la branche | + | Le commit |
| - | < | + | |
| - | git checkout 11.0.25 && git pull | + | |
| - | </ | + | |
| - | - Créer la nouvelle branche mineure **depuis sa pointe** (conserve tout le travail déjà accumulé, betas comprises) : | + | |
| - | < | + | |
| - | git checkout -b 11.1.0 | + | |
| - | git push -u origin 11.1.0 | + | |
| - | </ | + | |
| - | - **Ne pas supprimer ni réécrire l' | + | |
| - | - **Prévenir l' | + | |
| - | - Rien à changer côté '' | + | |
| - | ---- | + | ===== 6. De la qualification à la livraison ===== |
| - | ===== Cas particulier — Travailler en parallèle sur deux versions (correctifs | + | La qualification, |
| - | **Quand :** en permanence, deux pistes de travail coexistent — corriger des bugs sur ce qui tourne déjà chez les clients, et développer les évolutions de la prochaine version. Ce cas concerne | + | À retenir une fois l'intégration terminée : |
| - | ^ Piste ^ Usage ^ Limite ^ Branche | + | * la suite commence par '' |
| - | | **Release en ligne** | Corriger des bugs sur ce qui tourne actuellement chez les clients. | Correctifs uniquement — pas de nouvelle fonctionnalité, pas de changement de structure de base. | 11.1.0 | 11.0.8 | | + | * **ne rien commiter ni pousser pendant la qualification**, ni entre une beta et sa release ; |
| - | | **Prochaine version** | Développer les évolutions | + | * tout correctif après une beta repart d'une branche personnelle, |
| + | * il n'y a pas de release sans beta recettée conforme. | ||
| - | < | + | ===== 7. Cas particulier — Démarrer une nouvelle version ===== |
| - | PROD (clients) | + | |
| - | | | + | Lorsqu' |
| - | [ web 11.1.0 / lib 11.0.8 ] <- correctifs urgents | + | |
| - | | | + | Exemple : |
| - | | + | |
| - | v | + | <code bash> |
| - | [ web 11.2.0 / lib 11.2.0 ] <- evolutions en cours | + | git checkout |
| - | | | + | git pull |
| - | v | + | git checkout |
| - | | + | git push -u origin |
| </ | </ | ||
| - | **Piège fréquent :** un correctif commité uniquement sur la branche | + | La branche doit être **poussée** : une branche |
| - | **Pourquoi ce n' | + | L'ancienne branche |
| - | **Outil : '' | + | Informer l'équipe de ce changement afin que les développements en cours soient correctement réorientés. |
| - | <code json> | + | La version candidate est tirée du nom de la branche |
| - | { | + | |
| - | " | + | ===== 8. Cas particulier — Correctifs et évolutions en parallèle ===== |
| - | " | + | |
| - | } | + | Deux pistes de développement peuvent être maintenues simultanément |
| + | |||
| + | ^ Piste ^ Usage ^ | ||
| + | | Version en production | Correctifs de la version utilisée par les clients | | ||
| + | | Version suivante | Nouvelles fonctionnalités et évolutions | | ||
| + | |||
| + | Les corrections apportées à la version de production ne sont pas automatiquement reportées sur la version suivante | ||
| + | |||
| + | ==== 8.1 Bascule entre versions ==== | ||
| + | |||
| + | '' | ||
| + | |||
| + | Le script suivant bascule le poste sur une paire de branches web / lib, reconstruit la bibliothèque et la réinstalle : | ||
| + | |||
| + | < | ||
| + | scripts/ | ||
| </ | </ | ||
| + | |||
| + | Les profils sont définis dans : | ||
| + | |||
| + | < | ||
| + | scripts/ | ||
| + | </ | ||
| + | |||
| + | Exemples : | ||
| <code powershell> | <code powershell> | ||
| - | # Basculer en mode correctifs (release en ligne) | ||
| .\scripts\switch-lib-version.ps1 -Profile hotfix | .\scripts\switch-lib-version.ps1 -Profile hotfix | ||
| + | </ | ||
| - | # Basculer en mode évolutions (prochaine version) | + | <code powershell> |
| .\scripts\switch-lib-version.ps1 -Profile next | .\scripts\switch-lib-version.ps1 -Profile next | ||
| </ | </ | ||
| - | Le script : | + | <code powershell> |
| - | * refuse de démarrer si l'un des deux dépôts ('' | + | .\scripts\switch-lib-version.ps1 -LibBranch 11.3.0 -WebBranch 11.3.0 |
| - | * **compare l' | + | </ |
| - | * checkout les branches, rebuild et repackage les 3 librairies '' | + | |
| - | **À faire à chaque nouvelle release :** quand une nouvelle | + | Avant d' |
| + | |||
| + | Le script signale les correctifs d'une version antérieure pas encore reportés sur l' | ||
| + | |||
| + | Les profils doivent être actualisés lorsqu' | ||
| + | |||
| + | ===== 9. Commandes et précautions ===== | ||
| + | |||
| + | ==== 9.1 Commandes Claude Code ==== | ||
| + | |||
| + | ^ Commande ^ Utilisation ^ | ||
| + | | ''/ | ||
| + | | ''/ | ||
| + | | ''/ | ||
| + | | ''/ | ||
| + | | ''/ | ||
| + | |||
| + | Seule ''/ | ||
| + | |||
| + | ==== 9.2 Génération manuelle d'un build ==== | ||
| + | |||
| + | Les commandes suivantes génèrent un build **hors chaîne** : | ||
| + | |||
| + | <code bash> | ||
| + | ng build --configuration " | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | ng build --configuration production | ||
| + | </ | ||
| - | ---- | + | Elles ne passent pas les portes et ne créent ni rapport, ni tag. '' |
| - | ===== Aide-mémoire : qui fait quoi, sous le capot ===== | + | Elles ne doivent pas être utilisées pour une livraison normale. Leur usage en urgence est décrit dans Proc#168, cas 8. |
| - | {{: | + | ==== 9.3 Précautions générales ==== |
| - | ---- | + | Avant toute opération : |
| - | ===== Équivalences SourceTree | + | * vérifier le dépôt et la branche active ; |
| + | * vérifier l' | ||
| + | * ne jamais utiliser '' | ||
| + | * ne pas supprimer ou réécrire les tags d'une version publiée ; | ||
| + | * **ne jamais contourner une porte** : si le blocage est injustifié, | ||
| + | * ne pas confondre génération d'un build et déploiement d'une version. | ||
| - | 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, | + | En cas de doute sur la branche cible, le numéro de version |
| - | ^ Commande Git ^ Équivalent dans SourceTree ^ | + | ===== 10. Aide-mémoire Git et SourceTree ===== |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | **Point d' | + | Les scripts exécutent |
| - | ---- | + | ^ Commande Git ^ Équivalent SourceTree ^ |
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| - | ===== Erreurs fréquentes à connaître ===== | + | Un tag créé localement mais non publié ne constitue pas une preuve de publication partagée. |
| - | * **Confondre « beta » et « alpha »** : il n'y a que deux étapes outillées de génération, | + | ===== 11. Révision du guide ===== |
| - | * **Lancer '' | + | |
| - | * **Oublier que le rapport qualité NF ne se met à jour qu'en release**, pas en beta — si besoin d'un état des lieux ponctuel entre deux releases, relancer ''/ | + | |
| - | * **Croire que le déploiement est automatique** : à aucune étape le contenu n'est copié sur un vrai serveur — c'est toujours une action manuelle, via bureau à distance. | + | |
| - | * **Pousser un commit sans pousser le tag associé (SourceTree)** : voir l' | + | |
| - | * **Corriger un bug sur la branche « release en ligne » sans le reporter sur la branche d' | + | |
| - | ---- | + | Ce guide doit être actualisé lorsque les commandes, les scripts, les branches de version ou les modalités de publication évoluent. |
| - | //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), mis à jour le 18 août 2026 (ajout du cas particulier de travail en parallèle sur deux versions | + | Les modifications doivent rester cohérentes avec Proc# |