diff --git a/AGENTS.md b/AGENTS.md index a43d3f9..ca0946b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -24,29 +24,29 @@ amont. ## Branches et canaux ``` -feature/* ──► landing-silo ──► experimental-silo ──► main - (nightly) (testing) (stable) +feature/* ──► experimental-silo ──► landing-silo ──► main + (testing) (nightly) (stable) ``` Vers la droite on promeut, vers la gauche on redescend un correctif. Une correction ne saute jamais un cran. Les trois branches existent sur le remote depuis le 2026-08-02. Les deux silos ont été créés -vides depuis `main` ; `landing-silo` a ensuite reçu `feature/fronius-sunspec` comme premier -contenu, `experimental-silo` est encore au niveau de `main`. Avant cette date le modèle -ci-dessus était une intention, pas un état du dépôt. +vides depuis `main` ; `experimental-silo` a ensuite reçu le travail Fronius comme premier +contenu, `landing-silo` est encore au niveau de `main`. Avant cette date le modèle ci-dessus +était une intention, pas un état du dépôt. -`experimental-silo` n'est pas une branche de travail : elle ne reçoit que ce qui a déjà survécu au -nightly. Le travail se fait dans `feature/*`. +Aucun silo n'est une branche de travail : `landing-silo` ne reçoit que ce qui a déjà survécu à +`experimental-silo`. Le travail se fait dans `feature/*`. ### Critères de promotion | Passage | Critère | |---|---| | commits dans `feature/*` | `verify` en local, l'agent boucle seul | -| `feature/*` → `landing-silo` | PR, `verify` vert sur le runner, AC de la spec couverts par des tests | -| `landing-silo` → `experimental-silo` | build complet propre, banc nocturne vert | -| `experimental-silo` → `main` | validation matérielle nommée : appareil, firmware, configuration | +| `feature/*` → `experimental-silo` | PR, `verify` vert sur le runner, AC de la spec couverts par des tests | +| `experimental-silo` → `landing-silo` | build complet propre, banc nocturne vert | +| `landing-silo` → `main` | validation matérielle nommée : appareil, firmware, configuration | Le dernier critère n'est pas automatisable et ne doit pas l'être. @@ -57,9 +57,9 @@ Le dernier critère n'est pas automatisable et ne doit pas l'être. | Le bug se reproduit… | Départ | Ensuite | |---|---|---| -| jusque dans `main` | `hotfix/*` depuis `main` | fusion dans `main`, puis redescente dans `experimental-silo`, puis dans `landing-silo` | -| dans `experimental-silo`, pas dans `main` | `fix/*` depuis `experimental-silo` | redescente dans `landing-silo` | -| seulement dans `landing-silo` | `fix/*` depuis `landing-silo` | rien, il remonte par la promotion normale | +| jusque dans `main` | `hotfix/*` depuis `main` | fusion dans `main`, puis redescente dans `landing-silo`, puis dans `experimental-silo` | +| dans `landing-silo`, pas dans `main` | `fix/*` depuis `landing-silo` | redescente dans `experimental-silo` | +| seulement dans `experimental-silo` | `fix/*` depuis `experimental-silo` | rien, il remonte par la promotion normale | Ne jamais corriger en aval un bug présent en amont : le correctif remontera un jour, mais la branche amont reste cassée entre-temps et la promotion suivante réintroduit l'ancien code par @@ -74,8 +74,8 @@ Trois préfixes, pas davantage : `feature/*`, `fix/*`, `hotfix/*`. ### Versionnement des paquets Tout paquet issu d'un dépôt produit ETM porte un suffixe `+etmN` sur la version amont qu'il modifie -ou remplace (ex. `1.15.2+etm1`), à tous les canaux de promotion (`landing-silo`/nightly, -`experimental-silo`/testing, `main`/stable). Ce suffixe garantit la préséance apt/dpkg sur le paquet +ou remplace (ex. `1.15.2+etm1`), à tous les canaux de promotion (`experimental-silo`/testing, +`landing-silo`/nightly, `main`/stable). Ce suffixe garantit la préséance apt/dpkg sur le paquet upstream identique. Ne jamais le remplacer par un tiret (`-etmN`) : `-` a un sens réservé en version Debian (champ @@ -83,8 +83,8 @@ Ne jamais le remplacer par un tiret (`-etmN`) : `-` a un sens réservé en versi ## Agents -Les agents travaillent dans `feature/*` et `fix/*`. Jamais de commit direct dans `landing-silo`, -`experimental-silo` ou `main` : ces branches ne reçoivent que des fusions. +Les agents travaillent dans `feature/*` et `fix/*`. Jamais de commit direct dans `experimental-silo`, +`landing-silo` ou `main` : ces branches ne reçoivent que des fusions. Une spec, une branche, un jeu de critères d'acceptation.