Constat
#17428 a merge le 26/09 a 10:46Z. Elle cable hr-substitution-guard comme garde bloquante (scripts/ci/fast_lane_registry.py, blocking=True) pour tous les .ipynb. Mon commentaire [DECISION] du 24/09 (point 3) demandait de trancher dans le body le cas d'un echec de gh. Le body ne le traite pas, et je l'ai mergee sans le verifier : c'est un reste a solder.
Deux faits, mesures sur main a 9d6b408789 :
scripts/ci/check_hr_substitution.py sort en code 2 quand gh pr diff, gh pr view ou le troisieme appel gh echouent (lignes 59-60, 74-75 et 85).
- Le commentaire du registre (
fast_lane_registry.py, autour de la ligne 220) affirme le contraire : « Le script ne sort que rc=0/1 (pas de rc=2 reserve) », puis « un incident gh (rate-limit, timeout) remonte en rc=1 et fait rougir la PR -- c'est l'intention ».
Consequence : une panne reseau ou un quota gh epuise rend rouge et bloquante n'importe quelle PR qui touche un carnet, alors que le garde n'a rien analyse. C'est la classe que #14849 ecarte pour d'autres organes (UNKNOWN sur incident reseau, jamais un rouge qui ressemble a une faute de la PR).
Ce qui est demande
Une decision ecrite, puis le geste qui la suit :
- (a) echec
gh = verdict inconnu, pas une faute : le garde rend un etat distinct (via warn_rc ou un equivalent du runner) et le dit dans le check-run ; la PR n'est pas accusee ;
- (b) fermeture stricte assumee : on garde le rouge, mais le commentaire du registre dit la verite (le script sort bien en 2), et le titre du check-run nomme l'incident
gh pour qu'on ne le lise pas comme une substitution trouvee.
Recommandation ai-01 : (a), parce que c'est la ligne deja tenue ailleurs dans le depot. Dans les deux cas, le commentaire du registre doit etre corrige.
Critere de sortie
- le comportement sur echec
gh est teste (controle positif : gh simule en echec) ;
- le commentaire du registre decrit ce que le script fait reellement.
See #14683, see #17428.
Constat
#17428 a merge le 26/09 a 10:46Z. Elle cable
hr-substitution-guardcomme garde bloquante (scripts/ci/fast_lane_registry.py,blocking=True) pour tous les.ipynb. Mon commentaire[DECISION]du 24/09 (point 3) demandait de trancher dans le body le cas d'un echec degh. Le body ne le traite pas, et je l'ai mergee sans le verifier : c'est un reste a solder.Deux faits, mesures sur
maina9d6b408789:scripts/ci/check_hr_substitution.pysort en code 2 quandgh pr diff,gh pr viewou le troisieme appelghechouent (lignes 59-60, 74-75 et 85).fast_lane_registry.py, autour de la ligne 220) affirme le contraire : « Le script ne sort que rc=0/1 (pas de rc=2 reserve) », puis « un incidentgh(rate-limit, timeout) remonte en rc=1 et fait rougir la PR -- c'est l'intention ».Consequence : une panne reseau ou un quota
ghepuise rend rouge et bloquante n'importe quelle PR qui touche un carnet, alors que le garde n'a rien analyse. C'est la classe que #14849 ecarte pour d'autres organes (UNKNOWNsur incident reseau, jamais un rouge qui ressemble a une faute de la PR).Ce qui est demande
Une decision ecrite, puis le geste qui la suit :
gh= verdict inconnu, pas une faute : le garde rend un etat distinct (viawarn_rcou un equivalent du runner) et le dit dans le check-run ; la PR n'est pas accusee ;ghpour qu'on ne le lise pas comme une substitution trouvee.Recommandation ai-01 : (a), parce que c'est la ligne deja tenue ailleurs dans le depot. Dans les deux cas, le commentaire du registre doit etre corrige.
Critere de sortie
ghest teste (controle positif :ghsimule en echec) ;See #14683, see #17428.