Un ticket = une branche = deux MR (
main+staging). Les MEP regroupent plusieurs tickets mergés dansmain.
Nomenclature
Branches
- Sous-projets liés à un ticket Jira (
dema1n,inspire-v2,article1-connect) :{PROJET_JIRA}-{description-courte-en-kebab-case}(ex:INSP-688-email-profil-ee-cache-car-non-maj,DEM-1019-ajouter-bouton-de-renvoi-des-mails-de-mi) - Ce repo racine (infra, docs, config globale, sans ticket) :
{type}/{description-courte}, types utilisés :feature,code-qual
Commits
Convention gitmoji : {EMOJI} [{Scope}] {Description}, description à l'infinitif ou au présent, Scope = module/fonctionnalité concernée.
Exemple : 🐛 [Migrations] Remove api_schema from mig # En Français ou en Anglais, pas de consigne
Développement d'un ticket
- Nouvelle branche créée depuis
main, nommée d'après le ticket Jira - Dev en local, commits, push
- Ouverture de deux MR depuis la branche :
- Nomenclature de nommage
{PROJET_JIRA}-US {DESCRIPTION_FEATURE}(ex: INSP-688 ✨ [EE Incomplets] Envoi d'email aux EE quand leur profil passe en 'caché') - Une vers
main, nom de la MR préfixé de[MAIN] - Une vers
staging - Lien vers la MR
stagingenvoyé sur Slack - Retours de review en commentaires directement sur la MR GitLab, correctifs poussés sur la branche
- Merge de la MR
staging→ déploiement automatique en environnement staging - Ticket passé au statut Jira "To test in demo"
- Recette fonctionnelle par les PO
- Une fois la recette validée, merge de la MR
[MAIN]versmain
MEP (mise en production)
Une MEP regroupe tous les tickets mergés dans main depuis la dernière mise en production.
- Définition de la date de MEP avec les PO (créneau dans l'agenda)
- Création d'une MR
main→prod, nommée avec le numéro de version (nomenclature semver) - Description de la MR : compte-rendu (CR) des tickets inclus, généré par une task Claude (/release-notes) à partir des messages de commit
- Relecture de la MR si possible (vérifier notamment les sujets conflits, migrations, infra, config globale)
- Merge de la MR
- Création d'un tag git avec le numéro de version → déclenche le déploiement automatique en production
- Création d'une release GitLab avec le numéro de version, release notes identiques au CR de la MR
- Merge back :
prod→main, puismain→staging
Point d’attention : rabbitmq-defs.json
Si la MEP (ou un ticket inclus) modifie article1-connect/rabbitmq-defs.json (queues, exchanges, bindings) :
- le tag / déploiement applicatif ne réplique pas ces defs sur le RabbitMQ K8s de prod ;
- après le déploiement (ou en même temps que la MEP), appliquer manuellement les nouveaux bindings/queues sur le Management UI RabbitMQ prod (ou réimporter les defs sur le cluster) ;
- le mentionner dans le CR de MEP / release notes.
Détail : rabbitmq-definitions.md.