03-comment-je-travaille/guides/releases.md

Releases

Ce document décrit le workflow de release pour les projets Codexia.

Référence externe (GitFlow) :

Principes

  • develop est la branche d’intĂ©gration.
  • master est figĂ©e et ne reçoit que les releases.
  • Les releases sont taguĂ©es sur master (format vX.Y.Z, ex. : v1.2.0).
  • En dĂ©veloppement, Composer peut pointer vers dev-develop.
  • En production, Composer doit pointer vers un tag de release.
  • Mode solo + IA : le report develop → master se fait en merge direct fast-forward (--ff-only), sans PR (choix assumĂ© — voir github.md). master n'est pas protĂ©gĂ©e ; l'historique reste linĂ©aire.
  • Tags immuables : un tag publiĂ© n'est jamais redĂ©placĂ© ni réécrit. Si un numĂ©ro est dĂ©jĂ  pris (mĂŞme par un tag « fantĂ´me »), prendre le suivant (ex. : v0.3.0 occupĂ© → v0.4.0).

Numérotation des versions

  • Majeure : modification majeure (feature majeure ou changement technologique significatif).
  • Mineure : ajout ou modification de features, et/ou bugfixs.
  • RĂ©vision : corrections mineures (bugfixs, typos, ajustements lĂ©gers).

Nommage des branches

  • features/<id>-<slug> pour les nouvelles fonctionnalitĂ©s.
  • hotfix/<id>-<slug> pour les correctifs urgents.
  • <id> correspond Ă  un identifiant de ticket quand il existe (sinon Ă  dĂ©finir).

Procédure

  1. Fusionner les branches de travail dans develop.
  2. Pousser develop (historique public Ă  jour).
  3. Vérifier develop (tests, revue, documentation).
  4. Mettre Ă  jour CHANGELOG.md.
  5. Reporter develop vers master.
  6. Créer un tag de version sur master.
  7. Nettoyage des branches : Supprimer les branches de tickets fusionnées qui sont liées à une version mineure inférieure à N-1 (ex: à la sortie de la 0.3, on supprime les branches de la 0.1).
  8. Back-merge master vers develop si nécessaire.
  9. Rituel inter-instances (cf. § dédié ci-dessous).

Rituel inter-instances (Ă  chaque tag)

S'applique à tout dépôt de l'écosystème (telaria, telaria-doc, tlr-embeddings, tlr-rag). Source de vérité de la topologie : pilotage/ecosystem.md. Skill associé : /sync.

Ă€ la sortie d'un tag, avant de clore la session :

  1. Mettre à jour la cartographie quand la version publiée touche un contrat ou un composant cité :
    • pilotage/coordination.md — journal des dĂ©cisions et jalons.
    • pilotage/ecosystem.md — colonne « Version courante » des dĂ©pĂ´ts concernĂ©s.
    • specs/architecture.md — uniquement si l'architecture publique Ă©volue.
  2. Notifier les autres instances via leurs inboxes : <autre-dépôt>/memory/.../inbox-from-<moi>.md. Message bref, daté, numéroté #N, structuré ✅/🚀/🔔 (cf. gabarit du skill /sync).
  3. Mettre Ă  jour sync-state.json (last_pushed_sha_to.<destinataire> = SHA du tag).

Déclencheurs typiques : changement de contrat d'interface, nouvelle release de bundle/microservice, modification d'un fichier publié (specs/**, bundles/**, releases.md).

Did you know ?

Un merge "fast-forward" se produit quand master n'a aucun commit propre depuis le dernier point commun avec develop. Dans ce cas, Git avance simplement master au dernier commit de develop, sans créer de commit de merge.

GitHub Releases (optionnel)

Avantages :

  • Page dĂ©diĂ©e par version, facile Ă  partager.
  • Notes de version lisibles, avec possibilitĂ© d'attacher des assets.
  • Notifications automatiques aux abonnĂ©s du dĂ©pĂ´t.
  • IntĂ©grations simples avec CI/CD pour publier des artefacts.
  • VisibilitĂ© claire des versions taguĂ©es.

Inconvénients / risques :

  • DĂ©pendance Ă  GitHub (UI, permissions, disponibilitĂ©, politique).
  • Les assets sont hĂ©bergĂ©s chez GitHub (verrouillage potentiel).
  • Processus couplĂ© Ă  une fonctionnalitĂ© propriĂ©taire.
  • Migration hors GitHub peut faire perdre l'historique des Releases.

Recommandations (si on utilise GitHub Releases) :

  • Le tag git et le CHANGELOG.md restent la source de vĂ©ritĂ©.
  • GĂ©nĂ©rer les notes de release Ă  partir du CHANGELOG.md.
  • Conserver les artefacts importants dans un stockage indĂ©pendant si nĂ©cessaire.
  • Garder un workflow de release qui fonctionne sans GitHub (tag + changelog suffisent).

Prérequis (avant release)

  • Un README.md est prĂ©sent Ă  la racine, avec un minimum de contexte sur le dĂ©pĂ´t.
  • Un CHANGELOG.md est prĂ©sent Ă  la racine, Ă  jour.
  • develop est propre (pas de modifications locales).
  • Les tests/validations attendus sont passĂ©s.
  • Protection de master : non requise en mode solo (merge direct assumĂ©, cf. github.md) ; Ă  activer si une Ă©quipe ou une CI rejoint.

Checklist (IA autonome)

  1. Vérifier la branche courante (develop) et l'état Git (clean).
  2. Valider que README.md et CHANGELOG.md existent.
  3. Mettre Ă  jour CHANGELOG.md pour la release.
  4. Pousser develop.
  5. Merger develop vers master (git merge --ff-only develop).
  6. Vérifier que le numéro n'est pas déjà pris (git tag et git ls-remote --tags origin) ; sinon prendre le suivant. Puis créer un tag annoté sur master (format vX.Y.Z, ex. : v0.4.0).
  7. Pousser master et le tag.
  8. Revenir sur develop.

Assistant documentaire

Posez une question sur la documentation. Les réponses citent leurs sources — un clic ouvre le document à gauche.

Loading…
Loading the web debug toolbar…
Attempt #