Table des matières

Retour au Dossier Organisationnel
Sujets connexesCartographie fonctionnelle de LoGeAs
Guide pratique — Cycle de release, étape par étape

Procédure de Gestion des Versions

Informations qualité

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 suite à l'automatisation (Galaxie LoGeAs, version globale, schéma du processus de mise en ligne)
11 août 2026 - Nicolas Marchand - Fusion de toutes les pages relatives à la gestion de version en un seul document, dont le doublon questionnaire:procedure:develop:gestionversion (voir « Documents fusionnés » en bas de page) ; nouveau mécanisme de signalement des versions beta (4ᵉ chiffre porteur de la version visée, remplace le signal Y=99) ; alignement du client lourd et des serveurs sur cette même règle
Suivi des approbations Ce document correspond à l'élément ProjeQtor Document #06 - Gestion des versions de LoGeAs (PROC-NFlog-5), fusionné le 11 août 2026 avec les procédures #30, #09, « Gestion du dépôt Git » et le doublon questionnaire:procedure:develop:gestionversion
Objet Définir les types de versions mises à disposition, leurs différences, les actions à faire lors de la sortie d'une nouvelle version, les modalités d'intégration du code dans le dépôt Git, et le dépôt légal des codes sources — pour l'ensemble des composants de la Galaxie LoGeAs.
Destinataires - Validation des modifications : Gérant
- Approbation du document : Equipe dev & Equipe Ass


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.

Système de Numérotation

Une version LoGeAs représente un état donné d'un produit fourni aux clients. Le numéro comporte 3 chiffres pour une version publiée, 4 pendant sa phase de test beta — ex. 11.0.3.1.

Segment Nom Description
1er Majeur (X) Numéro « marketing » et technique ; migration technologique majeure
2e Mineur (Y) Nouvelles fonctionnalités ou changements de structure de base de données, changement de réglementation, nouvelle certification
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'itération de la beta en cours de test. N'apparaît jamais sur une version publiée

Règles fondamentales

  1. Immuabilité : une version publiée ne peut jamais être modifiée ; toute correction, même mineure, nécessite une nouvelle version.
  2. Cascade : quand le Majeur change, Mineur/Release/Build reviennent à 0. Quand le Mineur change, Release/Build reviennent à 0.

Signalement d'une version beta (X.Y.Z.W)

Une version en cours de test beta porte directement le numéro X.Y.Z que cette beta vise à publier, suivi d'un 4ᵉ chiffre W qui numérote les itérations successives de cette beta (1, 2, 3…), remis à 1 à chaque nouveau cycle.

Exemple concret :

Pourquoi ce mécanisme plutôt que l'ancien signal Y=99 (utilisé auparavant, y compris dans le code du client lourd) : avec un flag générique, deux cycles beta consécutifs qui ne changent pas le mineur — le cas le plus fréquent — produisent le même numéro de beta, sans moyen de savoir à quelle version future chacun correspond. En faisant porter directement le numéro visé, l'ambiguïté disparaît et la progression reste strictement croissante, sans trou ni collision possible.

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, modifications de structure de données (ajout de champs), changements de réglementation pris en compte, ou nouvelle certification.

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.


La Galaxie LoGeAs

Le système LoGeAs s'appuie sur plusieurs composants, chacun avec un versioning indépendant, mais suivant tous la même règle de numérotation ci-dessus.

Serveurs

Interfaces

Principes de gestion

Version Globale

Une version « globale » synthétise l'état général du logiciel à des fins de qualité et d'assistance :

Note pratique : en l'état actuel de la Galaxie (voir matrice ci-dessous), LoGeAs Web est le composant le plus avancé et le plus fréquemment publié — la version globale calculée suit donc, dans les faits, de très près la version de LoGeAs Web, qui sert de repère de référence au quotidien pour l'équipe.

Processus de mise en ligne d'une version

Processus de mise en ligne d'une version — commun aux versions Majeure, Mineure et Release

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 :

  1. Développement et intégration : travail sur branche personnelle (poste développeur, pas de nommage imposé), intégrée vers la branche de version (nommée Majeur.Mineur.Release) via /fusion-dev — voir section « Intégration du code » ci-dessous.
  2. Tests : portée selon le niveau (fonctionnalités impactées pour une Release, campagne complète pour une Majeure/Mineure). Compilation, tests automatiques et style vérifiés automatiquement par /fusion-dev à l'intégration, puis à nouveau lors de la génération beta/release.
  3. Documentation : évolution et archivage de la documentation technique (et utilisateur si Majeure/Mineure).
  4. Tag Git = numéro de version : l'empreinte (hash SHA) du commit tagué constitue la preuve d'authenticité de la version. Posé automatiquement par /release-beta ou /release-client — voir « Gestion des tags Git » ci-dessous.
  5. Mise en ligne : déploiement sur les serveurs applicatifs, mise à jour de l'URL de mise à jour si Majeure. Reste manuel pour LoGeAs Web (copie des dossiers LogeasWeb/LogeasWeb-Test vers le serveur, accessible uniquement en bureau à distance).
  6. Communication : publication du changelog (à partir de l'historique Git) et envoi d'un mail aux utilisateurs concernés. Non outillé actuellement côté LoGeAs Web.

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'ancienne procédure « gestion du dépôt Git » (Kevin Kopinski, 10/11/2025). Sa version originale décrivait un flux par ticket GitLab et relecture systématique par un second développeur — ce flux n'a jamais correspondu à la pratique réelle et n'est plus d'actualité (confirmé en 2026-08, suite au départ de Kevin Kopinski) : pas de ticket, pas de merge request, travail réalisé directement sur le poste du développeur.

  1. Travail sur branche personnelle : chacun développe sur sa propre branche, créée depuis la branche de version en cours (ex. 11.0.25). Pas de ticket GitLab ni de merge request requis.
  2. 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).
  3. 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 /fusion-dev (assistant Claude Code, dépôt logeas-web), qui :
    • 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, tests automatiques et style après fusion — c'est ce contrôle technique qui fait office de validation, il n'y a pas de relecture séparée par un second développeur
    • publie le résultat vers le dépôt distant

Une version rassemble l'ensemble des changements intégrés sur la branche de version depuis la dernière publication.


Gestion des tags Git

Format des tags

Ce format s'applique au dépôt LoGeAs Web (logeas-web). Les dépôts du client lourd et des serveurs (groupe Delphi) utilisent une convention de tag distincte, héritée de leur propre historique (ex. NonoVersion11.0.1.0, LoGeAsVersion11.0.2.3Pré-release) — non harmonisée avec le format ci-dessus pour l'instant.

Dans tous les cas, l'empreinte (hash SHA) du commit tagué constitue la preuve d'authenticité de la version, et peut être communiquée directement aux organismes certificateurs sans dépôt auprès de tiers.

Étapes d'exécution — LoGeAs Web

Outillées via les commandes /release-beta et /release-client (assistant Claude Code, dépôt logeas-web) :

  1. Vérification de branche : la branche de version est propre et à jour avec le dépôt distant
  2. Génération du build : compilation, incrémentation automatique du numéro (4ᵉ chiffre pour une beta, 3ᵉ chiffre pour une release)
  3. Commit dédié : le changement de numéro de version est commité séparément du contenu fonctionnel
  4. Étiquetage : tag Git annoté créé sur ce commit
  5. Publication : push du commit et du tag vers le dépôt distant
  6. Relevé d'empreinte : le hash de commit court est embarqué automatiquement dans src/assets/version.ts, consultable directement dans le logiciel livré
  7. 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 _release existant.


Cette section fusionne l'ancienne procédure #09 « Dépôt des Codes Sources ». Le dépôt légal intervient après la pose du tag _release (donc après exécution de /release-client), à chaque publication d'une version.

Les codes sont historisés via GitLab, répartis en plusieurs groupes :

Historique : avant 2024, le dépôt légal se faisait sur e-coffrefort.fr (fermé à l'automne 2024). Depuis, les dépôts se font directement sur GitLab.


Documents fusionnés dans cette page

Cette page (procedure:develop:gestionversion) est la version à jour de la procédure #06, enrichie de la refonte de janvier 2026 (Galaxie LoGeAs, version globale, schéma du processus de mise en ligne) et fusionnée avec :