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/08/11 17:57] – [Vue d'ensemble] 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: | + | ====== Proc#170 - Guide pratique — Gestion des versions LoGeAs Web ====== |
| - | ===== Où se lancent ces commandes | + | ===== Informations qualité |
| - | ''/ | + | ^Suivi |
| + | ^Date^Auteur^Modifications^ | ||
| + | |11 août 2026|Nicolas MARCHAND|Création du document| | ||
| + | |30 septembre 2026|Nicolas MARCHAND|Alignement | ||
| - | | + | |**Suivi des approbations** |[[https:// |
| - | * **Dossier de travail :** toujours | + | |**Objet** |Ce guide décrit les opérations à effectuer |
| - | * **Branche active au moment de lancer la commande :** | + | |**Destinataires** |**- Validation des modifications |
| - | | + | |
| - | | + | |
| - | ===== Qui fait quoi ===== | + | \\ |
| - | ^ Étape ^ Qui décide de lancer ^ Qui exécute ^ | + | ===== 1. Objet ===== |
| - | | 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 | + | Ce guide décrit |
| - | ---- | + | Il complète les documents suivants : |
| - | ===== Vue d' | + | * [[certif: |
| + | * [[certif: | ||
| + | * [[certif: | ||
| - | {{:certif: | + | **Répartition |
| - | ^ Étape ^ Décision ^ Où ^ Commande ^ | + | ===== 2. Environnement |
| - | | 1. Travail personnel | Développeur | Poste dev, branche perso | (aucune — voir détail plus bas) | | + | |
| - | | 2. Intégration | Développeur | Claude Code, ``logeas-web`` | ''/ | + | |
| - | | 3. Beta | Chef de projet | Claude Code, ``logeas-web``, | + | |
| - | | 4. Release client | Chef de projet | Claude Code, ``logeas-web`` puis ``logeas-cartographie`` | ''/ | + | |
| - | ---- | + | ==== 2.1 Outils ==== |
| - | ===== Étape 1 — Travail personnel (manuel) ===== | + | Les opérations sont réalisées depuis le poste de développement, |
| - | **Déclencheur :** en continu, dès qu'on commence | + | |
| + | | ||
| + | | ||
| + | | ||
| + | * les accès aux dépôts '' | ||
| + | * un accès connecté | ||
| - | **Qui :** le développeur, seul. | + | Les commandes ''/ |
| - | **Où :** son poste, terminal ou client Git, dans ``logeas-web``, | + | ==== 2.2 Répertoires ==== |
| - | **Ce qu'on fait, à la main :** | + | ^ Répertoire ^ Usage ^ |
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| - | - '' | + | Les commandes Claude Code et les scripts se lancent |
| - | | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | **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é. | + | ===== 3. Vue d' |
| - | **À vérifier soi-même avant de committer :** | + | ^ Étape ^ Commande ou opération ^ Qui ^ Décrit dans ^ |
| - | * Rien de sensible n'est ajouté (secrets, fichiers de config locale, '' | + | | 1. Travail personnel | Git, commits et sauvegardes | Développeur | ce guide, section 4 | |
| - | * Si le changement touche en réalité un comportement partagé (``DGService``, composants génériques), | + | | 2. Intégration | ''/ |
| + | | 3. Qualification | '' | ||
| + | | 4. Validation du rapport qualité | carto, écran « Rapports de version » | Valideur | Proc#168 | | ||
| + | | 5. Beta | '' | ||
| + | | 6. Déploiement sur le serveur de test | copie manuelle | Personne habilitée | Proc#168 | | ||
| + | | 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 | | ||
| - | ---- | + | ===== 4. Étape 1 — Travail personnel ===== |
| - | ===== Étape 2 — Intégration (''/ | + | ==== 4.1 Création de la branche |
| - | **Déclencheur :** le travail sur la branche personnelle | + | Dans le dépôt '' |
| - | **Qui :** le développeur qui a fait le travail (ou toute personne de l' | + | Exemple |
| - | **Où :** Claude Code, dans ``logeas-web``. | + | <code bash> |
| + | git checkout 11.2.0 | ||
| + | git pull | ||
| + | git checkout -b feature/ | ||
| + | </ | ||
| - | **Ce que la commande fait, dans l'ordre :** | + | Le nom de la branche doit permettre d'identifier le travail effectué. |
| - | - '' | + | ==== 4.2 Développement et sauvegarde ==== |
| - | - '' | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - Si tout est vert : '' | + | |
| - | **À vérifier après coup :** | + | Le développeur réalise ses modifications |
| - | * 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 | + | Exemple |
| - | ---- | + | <code bash> |
| + | git status | ||
| + | git add src/app/mon-composant | ||
| + | git commit | ||
| + | git push -u origin feature/nom-fonctionnalite | ||
| + | </ | ||
| - | ===== Étape 3 — Beta (''/ | + | Avant chaque commit, vérifier les fichiers sélectionnés. |
| - | **Déclencheur :** la branche | + | Ne pas ajouter |
| - | **Qui décide :** chef de projet ou développeur senior. **Qui exécute :** développeur ou chef de projet. | + | 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 |
| - | **Où :** Claude Code, dans ``logeas-web``, | + | ==== 4.3 Fin du travail personnel ==== |
| - | **Ce que la commande fait, dans l' | + | Lorsque le travail est prêt à être intégré |
| - | | + | |
| - | | + | * sauvegarder les derniers commits ; |
| - | | + | * s'assurer que la branche personnelle est disponible |
| - | * régénération de la licence DevExtreme | + | |
| - | * '' | + | |
| - | | + | |
| - | | + | |
| - | * relance '' | + | |
| - | * lit la version des 4 composants de la Galaxie LoGeAs directement | + | |
| - | * écrit '' | + | |
| - | - Commit dédié « Preparation version X.Y.Z.W » (``package.json`` + ``version.ts`` + le rapport généré) | + | |
| - | | + | |
| - | - '' | + | |
| - | **À vérifier après coup :** | + | La branche |
| - | * Le numéro de version généré est bien celui attendu (cohérent avec le nom de la branche). | + | |
| - | * Le rapport de release | + | |
| - | * Le build est bien présent dans '' | + | |
| - | * Le rapport est consultable dans l' | + | |
| - | **Ce qui reste manuel :** copier '' | + | ===== 5. Étape 2 — Intégration ===== |
| - | ---- | + | ==== 5.1 Préparation ==== |
| - | ===== Étape 4 — Release client (''/ | + | L'intégration est réalisée avec la commande : |
| - | **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 | + | La commande se lance dans '' |
| - | **Où :** Claude Code, dans ``logeas-web`` (étapes 1 à 6), puis dans ``logeas-cartographie`` pour la relecture/ | + | Avant de poursuivre, vérifier que : |
| - | **Ce que la commande fait, dans l' | + | |
| + | | ||
| + | | ||
| + | | ||
| - | - '' | + | ==== 5.2 Contrôles ==== |
| - | - Si cette release fait suite à une beta : vérifie que rien d' | + | |
| - | - '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | - '' | + | |
| - | - Commit dédié « Preparation version X.Y.Z » (``package.json`` + ``version.ts`` + le rapport) | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - **''/ | + | |
| - | **À vérifier | + | La procédure réalise les contrôles techniques |
| - | * Le build est bien présent dans '' | + | |
| - | * Le tag ne rentre pas en collision avec un tag '' | + | |
| - | * Le rapport qualité NF (``logeas-cartographie``) a bien été régénéré, | + | |
| - | **Ce qui reste manuel :** copie vers le serveur client (bureau à distance). | + | |
| + | | ||
| + | | ||
| - | ---- | + | Le développeur vérifie le résultat global, notamment les avertissements et les échecs. |
| - | ===== Aide-mémoire : qui fait quoi, sous le capot ===== | + | En cas de conflit concernant |
| - | {{: | + | En cas d' |
| - | ---- | + | ==== 5.3 Résultat attendu ==== |
| - | ===== Équivalences SourceTree des commandes Git ===== | + | L' |
| - | Toutes | + | * la fusion est effectuée ; |
| + | * les contrôles prévus ont été réalisés ; | ||
| + | * les éventuels problèmes ont été résolus ; | ||
| + | * la branche commune a été publiée sur le dépôt distant. | ||
| - | ^ Commande Git ^ Équivalent dans SourceTree ^ | + | Le commit de fusion permet |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | **Point d' | + | ===== 6. De la qualification à la livraison ===== |
| - | ---- | + | La qualification, |
| - | ===== Erreurs fréquentes à connaître ===== | + | À retenir une fois l' |
| - | * **Confondre « beta » et « alpha »** : il n'y a que deux étapes outillées de génération, beta et release. Pas de troisième étape intermédiaire. | + | * la suite commence par '' |
| - | | + | * **ne rien commiter ni pousser pendant la qualification**, ni entre une beta et sa release ; |
| - | * **Oublier que le rapport qualité NF ne se met à jour qu'en release**, pas en beta — si besoin | + | * tout correctif après une beta repart |
| - | * **Croire que le déploiement est automatique** : à aucune étape le contenu n'est copié sur un vrai serveur — c'est toujours | + | * il n'y a pas de release sans beta recettée conforme. |
| - | * **Pousser un commit sans pousser le tag associé (SourceTree)** : voir l' | + | |
| - | ---- | + | ===== 7. Cas particulier — Démarrer une nouvelle version ===== |
| - | //Document généré le 11 août 2026, à mettre | + | Lorsqu' |
| + | |||
| + | Exemple : | ||
| + | |||
| + | <code bash> | ||
| + | git checkout 11.2.0 | ||
| + | git pull | ||
| + | git checkout -b 11.3.0 | ||
| + | git push -u origin 11.3.0 | ||
| + | </code> | ||
| + | |||
| + | La branche doit être **poussée** : une branche sans branche amont est refusée par la qualification. | ||
| + | |||
| + | L' | ||
| + | |||
| + | Informer l' | ||
| + | |||
| + | La version candidate est tirée du nom de la branche : la première beta de '' | ||
| + | |||
| + | ===== 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 : il faut les y intégrer (Proc#168, cas 7). | ||
| + | |||
| + | ==== 8.1 Bascule entre versions ==== | ||
| + | |||
| + | '' | ||
| + | |||
| + | Le script suivant bascule | ||
| + | |||
| + | < | ||
| + | scripts/ | ||
| + | </ | ||
| + | |||
| + | Les profils sont définis dans : | ||
| + | |||
| + | < | ||
| + | scripts/ | ||
| + | </ | ||
| + | |||
| + | Exemples : | ||
| + | |||
| + | <code powershell> | ||
| + | .\scripts\switch-lib-version.ps1 -Profile hotfix | ||
| + | </ | ||
| + | |||
| + | <code powershell> | ||
| + | .\scripts\switch-lib-version.ps1 -Profile next | ||
| + | </ | ||
| + | |||
| + | <code powershell> | ||
| + | .\scripts\switch-lib-version.ps1 -LibBranch 11.3.0 -WebBranch 11.3.0 | ||
| + | </ | ||
| + | |||
| + | 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. '' | ||
| + | |||
| + | 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 : | ||
| + | |||
| + | * 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. | ||
| + | |||
| + | En cas de doute sur la branche cible, le numéro de version ou la validité d'une publication, | ||
| + | |||
| + | ===== 10. Aide-mémoire Git et SourceTree ===== | ||
| + | |||
| + | Les scripts exécutent automatiquement les opérations Git prévues. Le tableau ci-dessous sert au dépannage et aux vérifications manuelles. | ||
| + | |||
| + | ^ Commande Git ^ Équivalent SourceTree ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | Un tag créé localement mais non publié ne constitue pas une preuve de publication partagée. | ||
| + | |||
| + | ===== 11. Révision du guide ===== | ||
| + | |||
| + | Ce guide doit être actualisé lorsque les commandes, les scripts, les branches de version ou les modalités de publication évoluent. | ||
| + | |||
| + | Les modifications doivent rester cohérentes avec Proc#168 et Proc#169. | ||