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:gestionversion [2026/08/01 18:16] – [Dépot] nicolas | certif:procedure:develop:gestionversion [2026/09/30 09:50] (Version actuelle) – [Proc#145 - Procédure de Gestion des Versions] nicolas | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| |{{: | |{{: | ||
| - | |{{: | + | |{{: |
| + | ====== Proc# | ||
| - | ====== Procédure de gestion des versions de LoGeAs (procédure #06) ====== | ||
| ===== Informations qualité ===== | ===== Informations qualité ===== | ||
| + | ^Suivi des modifications majeures^^^ | ||
| + | ^Date^Auteur^Modifications^ | ||
| + | |5 mars 2015|Nicolas MARCHAND|Création du document| | ||
| + | |1 décembre 2015|Nicolas MARCHAND|Modification par rapport aux tests à passer suivant le niveau des mises à jour| | ||
| + | |14 décembre 2015|Guillaume NATALI|Modification des règles de numérotation| | ||
| + | |2 août 2017|Nicolas MARCHAND|Portage sur DokuWiki et évolutions| | ||
| + | |28 août 2020|Nicolas MARCHAND|Évolution des raisons de changement de version| | ||
| + | |Janvier 2026|Nicolas MARCHAND|Refonte suite à l' | ||
| + | |11 août 2026|Nicolas MARCHAND|Fusion de toutes les pages relatives à la gestion de version en un seul document (procédures #30 et #09, « Gestion du dépôt Git », doublon '' | ||
| - | |**Suivi des modifications majeures** |5 mars 2015 - Nicolas Marchand - Création du document \\ 1 décembre 2015 - Nicolas Marchand - Modification par rapport aux tests à passer suivant le niveau des mises à jour \\ 14 décembre 2015 - Guillaume Natali - Modification des règles de numérotation\\ 02 aout 2017 - Nicolas Marchand - Portage sur DoKuWiKi & Evolutions\\ 28 août 2020 - Nicolas Marchand - Evolution raisons changement de version\\ Janvier 2026 - Nicolas Marchand - Refonte du document suite à l' | + | |**Suivi des approbations** |[[https:// |
| - | |**Suivi des approbations** |[[https:// | + | |**Objet** |Définir |
| - | |**Objet** |L' | + | |**Destinataires** |**- Validation des modifications :** Gérant, ou la personne qu'il désigne |
| - | |**Destinataires** |**- Validation des modifications : ** Gérant \\ **- Approbation du document** | + | |**Origine** |Ce document correspond à l' |
| - | \\ | + | ===== Objectif du Versionnage ===== |
| + | Le versionnage constitue le mécanisme qui consiste à conserver la version d'une entité logicielle quelconque, de façon à pouvoir la retrouver facilement. | ||
| - | ===== Objectif du versionnage | + | ===== Système de Numérotation |
| - | Selon le [[http:// | + | Une version |
| - | ===== Définition des types des versions | + | ^ Segment ^ Nom ^ Description ^ |
| + | | 1er | Majeur (X) | Numéro « marketing » et technique ; migration technologique majeure | | ||
| + | | 2e | Mineur (Y) | Nouvelles fonctionnalités ou changements | ||
| + | | 3e | Release (Z) | Change à chaque publication du logiciel (obligatoire) ; ne réutilise jamais un numéro déjà publié | | ||
| + | | 4e | Build (W) | Uniquement pendant une phase beta : numéro d' | ||
| - | Pour LoGeAs, une **version du logiciel** correspond à un état donné de l' | + | ==== Règles fondamentales ==== |
| - | La numérotation utilisée est une série de 4 chiffres séparés de points (LoGeAs v11.0.3.1). Pour permettre une meilleure compréhension, nous nommerons cette suite de chiffres de la manière suivante. | + | - **Immuabilité** : une version publiée ne peut jamais être modifiée ; toute correction, même mineure, nécessite une nouvelle version. |
| + | - **Cascade** : quand le Majeur change, Mineur/ | ||
| - | |**11**|**Majeur**|Logeas Informatique considère le numéro " | + | ==== Signalement |
| - | |**0**|**Mineur**|Le numéro de version « Mineure » est changé quand la version met en place de nouvelles fonctionnalités et/ou des changements sont réalisés dans la structure de la base de données (ajout | + | |
| - | |**3**|**Release**|Le numéro de version | + | |
| - | |**0**|**Build**|Le numéro de version «Build» est utilisé en interne pour le suivi des exécutables, | + | |
| - | **__Règles__** | + | Une version |
| - | - Une fois qu' | + | |
| - | - Quand le segment Majeur est changé, les " | + | |
| + | **Exemple concret :** | ||
| + | * Dernière version publiée : '' | ||
| + | * Un correctif est en préparation, | ||
| + | * Une fois validée, la beta '' | ||
| + | * Une évolution plus importante (nouvelles fonctionnalités) viserait '' | ||
| + | **Pourquoi ce mécanisme plutôt que l' | ||
| + | ==== Critères de Changement de Version ==== | ||
| + | **Majeur (X)** : évolutions substantielles ou migrations technologiques (ex. changement de base de données). | ||
| + | **Mineur (Y)** : nouvelles fonctionnalités, | ||
| + | **Release (Z)** : à chaque publication du logiciel (publication obligatoire) — correctifs, corrections de bugs, ajustements sans changement fonctionnel structurant. | ||
| + | **Build (W)** : uniquement pendant une phase beta, itération de test au sein d'un même cycle. | ||
| - | ==== Allons un peu plus loin ==== | + | ---- |
| - | LoGeAs n'est pas un logiciel monolitique en ce sens qu'il s' | + | |
| - | Si on va plus long la galaxie se compose de | + | |
| - | |Serveurs|LogeasWeb|C' | + | |
| - | |::: | + | |
| - | |::: | + | |
| - | |Interfaces|LoGeAs (ou client lourd)|Il s'agit de l' | + | |
| - | |::: | + | |
| - | |::: | + | |
| - | |::: | + | |
| - | |::: | + | |
| - | |:::|Stat-Union|Il s'agit d'une interface dédié à l' | + | |
| - | * Chaque sous ensemble de la galaxie à **son propre numéro de version** qui évolue en fonction des évolutions, | + | ===== La Galaxie LoGeAs ===== |
| - | * Les **digits Majeur et Mineur** sont commun à toutes les interfaces. Si un élément de la galaxie doit changer un de ces digits, la prochaine mise à jour des autres éléments doit le prendre en compte | + | |
| - | * Le versionning de chaque élément est géré dans son outil de développement et repris au niveau de GIT.\\ **Git ne travaille qu' | + | |
| - | ==== Définition et évolution de la version globale ==== | + | Le système LoGeAs s' |
| - | Dans ce contexte, il est nécessaire de définir une **version " | + | |
| - | === Règle d' | + | |
| - | Afin de respecter globalement les règles de gestion des numéros de version, les règles suivantes sont appliqué pour " | + | |
| - | |Majeur|Le numéro " | + | |
| - | |Mineur|Le numéro " | + | |
| - | |Release|Le numéro " | + | |
| - | |Build|Non utilisé à ce stade| | + | |
| - | * C'est la version globale qui est utilisé dans la partie qualité, assistance... | + | |
| + | ==== Serveurs ==== | ||
| + | * **LogeasWeb** — exécutable Windows (Delphi) donnant accès aux bases clients | ||
| + | * **PGI** — serveur gérant la base de données utilisateurs (Delphi) | ||
| + | * **Nono** — serveur annexe gérant les bases anonymisées (Lazarus) | ||
| + | |||
| + | ==== Interfaces ==== | ||
| + | * **LoGeAs (client lourd)** — interface historique, en cours de portage vers Angular (Delphi) | ||
| + | * **LoGeAs.fr (client full-web)** — interface utilisateur remplaçante, | ||
| + | * **Test.LoGeAs.fr** — interface de test (Angular) | ||
| + | * **Assistance** — interface pour l' | ||
| + | * **Cartographie fonctionnelle** — interface de gestion qualité/ | ||
| + | * **Stat-Union** — interface clients EPUdF pour consolidation comptable | ||
| + | |||
| + | ==== Principes de gestion ==== | ||
| + | * Chaque sous-ensemble possède son propre numéro de version et son propre rythme de publication. | ||
| + | * Les chiffres Majeur et Mineur sont, en pratique, communs à la plupart des composants (alignés historiquement sur la même ligne 11.x), à l' | ||
| + | * Git gère les numéros de version de chaque composant indépendamment ; aucune synchronisation automatique n'est imposée entre dépôts. | ||
| + | |||
| + | ===== Version Globale ===== | ||
| + | |||
| + | Une version « globale » synthétise l' | ||
| + | |||
| + | * **Majeur** : aligné sur le numéro Majeur le plus élevé parmi les sous-composants ; s'il est incrémenté, | ||
| + | * **Mineur** : aligné sur le numéro Mineur le plus élevé parmi les sous-composants ; s'il est incrémenté, | ||
| + | * **Release** : incrémenté à chaque modification d'un sous-composant, | ||
| + | * **Build** : non utilisé actuellement. | ||
| + | |||
| + | **Note pratique :** en l' | ||
| + | |||
| + | |||
| + | |||
| + | ===== Processus de mise en ligne d'une version ===== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Le processus est commun aux 3 niveaux de version (Majeure, Mineure, Release) — seules la portée des tests et de la documentation varient selon le niveau : | ||
| + | |||
| + | - **Développement et intégration** : travail sur branche personnelle (poste développeur, | ||
| + | - **Tests** : portée selon le niveau (fonctionnalités impactées pour une Release, campagne complète pour une Majeure/ | ||
| + | - **Documentation** : évolution et archivage de la documentation technique (et utilisateur si Majeure/ | ||
| + | - **Tag Git = numéro de version** : l' | ||
| + | - **Mise en ligne** : déploiement sur les serveurs applicatifs, | ||
| + | - **Communication** : publication du changelog (à partir de l' | ||
| + | |||
| + | Une fois publiée, une version n'est jamais modifiée : toute évolution repart sur une nouvelle branche / un nouveau numéro de version. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Intégration du code (dépôt Git) ===== | ||
| + | |||
| + | Cette section fusionne l' | ||
| + | |||
| + | - **Travail sur branche personnelle** : chacun développe sur sa propre branche, créée depuis la branche de version en cours (ex. '' | ||
| + | - **Sauvegarde régulière** : commit et push de la branche personnelle au fil de l'eau, sans vérification imposée à ce stade (procédure manuelle). | ||
| + | - **Intégration = validation** : la validation d'une fonction se fait au moment de son intégration dans la branche de version courante, via la procédure outillée ''/ | ||
| + | * met à jour la branche de version depuis le dépôt distant | ||
| + | * fusionne la branche personnelle avec un commit de fusion portant le log complet des commits intégrés | ||
| + | * vérifie compilation, | ||
| + | * publie le résultat vers le dépôt distant | ||
| + | |||
| + | Une version rassemble l' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Gestion des tags Git ===== | ||
| + | |||
| + | ==== Format des tags ==== | ||
| + | |||
| + | * Beta : '' | ||
| + | * Release : '' | ||
| + | |||
| + | Ce format s' | ||
| + | |||
| + | Dans tous les cas, l' | ||
| + | |||
| + | ==== Étapes d' | ||
| + | |||
| + | Outillées via les commandes ''/ | ||
| + | |||
| + | - **Vérification de branche** : la branche de version est propre et à jour avec le dépôt distant | ||
| + | - **Génération du build** : compilation, | ||
| + | - **Commit dédié** : le changement de numéro de version est commité séparément du contenu fonctionnel | ||
| + | - **Étiquetage** : tag Git annoté créé sur ce commit | ||
| + | - **Publication** : push du commit et du tag vers le dépôt distant | ||
| + | - **Relevé d' | ||
| + | - **Archivage** : conservation de la référence du tag dans le suivi de version (cartographie fonctionnelle) | ||
| + | |||
| + | ==== Cas d'un tag posé manuellement ==== | ||
| + | |||
| + | Respecter impérativement le format défini ci-dessus et ne jamais réutiliser un numéro X.Y.Z déjà présent dans un tag '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Dépôt légal des codes sources (coffre-fort numérique) ===== | ||
| + | |||
| + | Cette section fusionne l' | ||
| + | |||
| + | Les codes sont historisés via GitLab, répartis en plusieurs groupes : | ||
| + | * **Logeas Informatique / Divers** : AutoVideo, Composants, SFTPLogeasSync | ||
| + | * **Logeas Informatique / Logeas-projets-obsoletes** : BibliothequeAngular, | ||
| + | * **Logeas Informatique / Logeas-web** : Logeas-projet-IA, | ||
| + | * **NewInterfaces-group** : exemples, logeas-assistance, | ||
| + | |||
| + | **Historique :** avant 2024, le dépôt légal se faisait sur e-coffrefort.fr (fermé à l' | ||
| + | |||
| + | ---- | ||
| - | ===== Changement de version et actions à faire ===== | ||
| - | Le processus de mise en ligne est commun aux trois niveaux de version (Majeure, Mineure, Release) ; seule la portée des tests et de la documentation varie selon le niveau, ainsi que deux étapes spécifiques (voir schéma). | ||
| - | {{ : | ||
| - | NB : SVG stocké sur le wiki éditable par exemple avec Inkscape | ||
| - | ==== Dépot ==== | ||
| - | Le dépôt des sources est réalisé de façon systématique sur **chaque version** publiée, directement via **GitLab**. | ||
| - | Lors de la mise en ligne, un tag Git correspondant au numéro de version (Majeur.Mineur.Release.Build) est créé sur la branche concernée. | ||
| - | L' | ||
| - | Cette empreinte, conservée dans l' | ||