Schéma de développement

https://incubateur-ademe.github.io/nosgestesclimat-doc/assets/ideal-img/website-dev-workflow.189b99b.1030.png

Branches

2 branches permanentes

Une branche temporaire

Process

Cycle de vie d’une feature/fix

  1. Création d’une branche de travail à partir de preprod. Vous pouvez nommer cette branche comme vous le souhaitez (je prends personnellement le numéro de ticket Notion, mais “certains” ne sont pas fan).
  2. Création d’une PR de cette branche vers preprod. La PR se nomme “nom_du_ticket_notion_[NGC-numero-notion]”. Demande de review lorsque l’on estime le travail fait et que les tests e2e passent.
  3. Si validation de la PR, plus aucune feature ne doit être ajoutée à la branche (sauf petit fix à la marge demandé dans les commentaires de la review). Elle peut être mergée directement (essayons de ne pas trop trainer pour ne pas avoir 15 merge à faire ensuite)
  4. Si demande de modifications revenir à l’étape 2.
  5. Recette fonctionnelle dans preprod. Si tout va bien, on oublie. Sinon ça retourne dans le sprint backlog, on réouvre la branche et on retourne à l’étape 2.

Cycle de vie d’une release

  1. Validation de notre PO ⇒ on met à jour le numéro de release dans package.json sur preprod puis on crée une branche de release. Cette branche se nomme release-X-Y-Z (et pas releaseX.Y.Z ou releaseXYZ)
  2. On crée une PR de la branche de release vers main. On pense bien à fixer la version du modèle sur cette branche.
  3. Notre PO fait une recette approfondie sur l’url de cette PR.
  4. Chaque bug repéré par notre PO donne lieu à un fix (reprendre Cycle de vie d’une feature/fix en remplaçant preprod par release-X-Y-Z)