Repository navigation
fix(ci,#18629): prose-counts-guard -- base du diff en HEAD^1, plus de fetch de base - #18633
Conversation
… fetch de base Course measuree sur la meme mecanique dans docs-transients-guard (run 110043387149, PR #18595) : checkout@v4 pose refs/pull/N/merge avec fetch-depth: 2 ; si main bouge entre la construction du merge ref et le fetch depth=1 de la base, les deux bornes shallow n'ont aucun ancetre commun -- git diff origin/<base>...HEAD meurt en 'no merge base' (exit 128), faux rouge bloquant (--strict) sur des PRs sans defaut de prose. Fix (pattern #18595, tete 41af837) : HEAD^1 -- le premier parent du merge commit est le cote base, present par construction, merge-base resolu en parent direct ; le diff rend exactement le plateau GitHub. Le fetch depth=1 de la base devient inutile, retire dans le meme geste. Comments de checkout et step mis en coherence. Validation scratch (topologie fidele : merge ref construit par commit-tree -p A -p C, fetch depth=2, base avancee puis fetchee depth=1) : - ancienne forme : fatal 'origin/main...HEAD: no merge base', RC=128, merge-base RC=1 (aucun ancetre commun) - nouvelle forme : rend exactement les fichiers de la PR, RC=0 Perimetre non-regressif verifie firsthand : les 3 autres workflows three-dot (check-resync-only, regression-guard, translation-guard) sont fetch-depth: 0 -- historique complet, merge-base toujours resoluble. Closes #18629 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
G-VAR-2 light cap reached (advisory, non bloquant). |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
myia-ai-01
left a comment
There was a problem hiding this comment.
Relecture ai-01 a la tete 29eb4a2. Le workflow ne se declenche que sur pull_request, donc HEAD est bien le commit de merge et HEAD^1 son cote base ; le diff three-dot rend le plateau exact, et le fetch de base devenu inutile est retire. Meme forme que docs-transients-guard (#18595).
Le rouge perimeter venait de la ligne « workflow uniquement » du body, une affirmation d'exclusivite qui ne nommait pas le fichier touche. J'ai corrige le body pour enumerer .github/workflows/prose-counts-guard.yml et relance la jambe.
|
[ADJOINT PREFLIGHT] Dossier tiers ai-01 : APPROVED ai-01 a 29eb4a2 (tete inchangee), B.0 rc=0, check_run_state sans rouge. |
|
Merge par ai-01 hors budget LIGHT du jour de la lane (sa LIGHT du 01/10 est #18504) : la PR corrige une course du garde bloquant prose-counts (« no merge base » quand main bouge entre le merge ref et le fetch), course que la série de merges de ce matin rend probable. Lecture et APPROVE ai-01 à 29eb4a2, tête inchangée. |
… fetch de base (#18633) Course measuree sur la meme mecanique dans docs-transients-guard (run 110043387149, PR #18595) : checkout@v4 pose refs/pull/N/merge avec fetch-depth: 2 ; si main bouge entre la construction du merge ref et le fetch depth=1 de la base, les deux bornes shallow n'ont aucun ancetre commun -- git diff origin/<base>...HEAD meurt en 'no merge base' (exit 128), faux rouge bloquant (--strict) sur des PRs sans defaut de prose. Fix (pattern #18595, tete 41af837) : HEAD^1 -- le premier parent du merge commit est le cote base, present par construction, merge-base resolu en parent direct ; le diff rend exactement le plateau GitHub. Le fetch depth=1 de la base devient inutile, retire dans le meme geste. Comments de checkout et step mis en coherence. Validation scratch (topologie fidele : merge ref construit par commit-tree -p A -p C, fetch depth=2, base avancee puis fetchee depth=1) : - ancienne forme : fatal 'origin/main...HEAD: no merge base', RC=128, merge-base RC=1 (aucun ancetre commun) - nouvelle forme : rend exactement les fichiers de la PR, RC=0 Perimetre non-regressif verifie firsthand : les 3 autres workflows three-dot (check-resync-only, regression-guard, translation-guard) sont fetch-depth: 0 -- historique complet, merge-base toujours resoluble. Closes #18629 Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Grain: LIGHT/ci -- lane myia-po-2026:CoursIA -- prev: #18632
Summary
Supprime la course « no merge base » du
prose-counts-guard.yml: le diff three-dot basculait surHEAD^1...HEAD(premier parent du merge commit pose parcheckout@v4— present par construction, merge-base resolu en parent direct, diff = plateau exact de la PR), et legit fetch --depth=1 origin <base_ref>devenu inutile est retire dans le meme geste. Pattern exact du fix livree et verifiee pourdocs-transients-guard(#18595, tete 41af837). Comments (checkout + step) mis en coherence avec le nouveau mecanisme.La course (mesuree sur la jumelle, run 110043387149)
pull_request→checkout@v4poserefs/pull/N/mergeenfetch-depth: 2; simainbouge entre la construction du merge ref et le fetch depth=1 de la base, les deux bornes shallow n'ont aucun ancetre commun →git diff origin/main...HEADmeurt enfatal: no merge base(exit 128) → faux rouge bloquant (--strict) sur une PR sans defaut de prose.prose-countsetait encore vert uniquement parce que la course n'avait pas encore tire.Validation
Repro scratch fidele (merge ref construit par
commit-tree -p <base> -p <feature>, fetche depth=2, base avancee puis fetchee depth=1) :fatal: origin/main...HEAD: no merge base, RC=128,git merge-baseRC=1 (aucun ancetre commun)Perimetre non-regressif verifie firsthand (grep
fetch-depth+origin/...sur.github/workflows/) : les 3 autres workflows three-dot (check-resync-only,regression-guard,translation-guard) sontfetch-depth: 0— historique complet, merge-base toujours resoluble.prose-counts-guardetait le seul expose.Note sur l'acceptance « repro sur une vraie PR avec push main dans la fenetre » : la course ne peut pas etre declenchee deterministement depuis l'exterieur (il faut que main bouge dans une fenetre de secondes) ; la repro scratch ci-dessus reproduit la topologie exacte (meme standard de preuve que le constat fondateur de l'issue) et le pattern est celui deja verifie en production sur #18595.
Perimetre
1 fichier, +14/-10 :
.github/workflows/prose-counts-guard.yml.Closes #18629
🤖 Generated with Claude Code