You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
CI(tests): test_check_lean_orphans écrit ses fixtures en cp1252 — 5 tests rouges sur runner Windows #24554
Constat (mesuré le 2026-11-04, myia-po-2027:CoursIA, Windows, git 2.56, Python 3.13)
scripts/lean/tests/test_check_lean_orphans.py écrit ses fixtures avec Path.write_text(...)sans encoding=. Sur une locale Windows (cp1252), les caractères « / » des lakefiles de test sortent en 0xAB / 0xBB. L'organe scripts/lean/check_lean_orphans.py relit ces fichiers en encoding="utf-8" et rend alors :
ERROR (scp_pre_fix): cannot read ...\scp\lakefile.lean: 'utf-8' codec can't decode byte 0xab in position 28: invalid start byte
donc main() retourne 2 là où les tests attendent 0 ou 1.
python -m pytest scripts/lean/tests/test_check_lean_orphans.py -q
# 5 failed, 9 passed (sur la base 709dfb9d85, arbre principal)
La jambe Scripts Tests (CPU) est rouge sur toutes les PRs de la flotte (constaté sur #24505, #24535, #24542, #24551 — 30 min de jambe à chaque tête), y compris sur la base : le rouge n'est imputable à aucune PR, mais il masque les vrais échecs de cette jambe et bloque les merges qui l'exigent.
Cause exacte
Les fixtures du fichier contiennent des guillemets français (lean_lib «Foo» where) et les tests écrivent en encodage par défaut du processus (cp1252 sous Windows), alors que l'organe lit en UTF-8 explicite — check_lean_orphans.py:354. Deux encodages, un seul fichier : la divergence n'est visible que sur un siège non-UTF-8, ce qui explique qu'elle n'ait pas été vue là où les tests ont été écrits.
Correctif attendu
Écrire et relire les fixtures en UTF-8 explicite dans ce fichier de tests. Aucun changement de l'organe : c'est bien la fixture qui doit être déterministe, indépendamment de la locale.
Scan de la classe sur scripts/**/*.py (AST, write_text sans encoding dont le source porte du non-ASCII) : cette occurrence est la seule — aucun autre fichier à traiter.
Sans parent : constat local d'un rouge de base sur les tests, non rattachable à une série de carnets.
Grain: MED/guard — lane myia-po-2027:CoursIA — prev: MED/guard #24551
[CLAIMED] lane myia-po-2027:CoursIA — paths: scripts/lean/tests/test_check_lean_orphans.py -- 2026-11-04T02:4xZ
Rouge de base mesuré sur la tête 709dfb9d85 (arbre principal, Python 3.13, locale Windows) : 5 failed, 9 passed sur scripts/lean/tests/test_check_lean_orphans.py. Cause : les fixtures écrivent lean_lib «Foo» where avec Path.write_text(...)sans encoding= (cp1252 → 0xAB), alors que l'organe relit en encoding="utf-8" (check_lean_orphans.py:354) → UnicodeDecodeError, main() rend 2 au lieu de 0/1.
Correctif : encoding="utf-8" explicite sur les 42 appels write_text/read_text du fichier. Aucun changement de l'organe, aucun autre fichier concerné (scan AST de scripts/**/*.py : cette occurrence est la seule write_text non-ASCII sans encoding).
après (branche fix/orphan-test-utf8, commit 693c1f70f4) : 14 passed in 0.33s ;
scan AST de scripts/**/*.py (write_text sans encoding= dont le source porte du non-ASCII) : cette occurrence était la seule, donc pas de fichier frère à traiter.
C'est le rouge qui faisait tomber la jambe Scripts Tests (CPU) sur toutes les PRs de la flotte. La suite complète scripts/lean/tests tournait encore à l'ouverture de la PR ; son compte sera ajouté au corps de #24555 dès qu'il tombe.
Activity
jsboige commentedon Nov 4, 2026
Grain: MED/guard — lane myia-po-2027:CoursIA — prev: MED/guard #24551
[CLAIMED] lane myia-po-2027:CoursIA — paths: scripts/lean/tests/test_check_lean_orphans.py -- 2026-11-04T02:4xZ
Rouge de base mesuré sur la tête
709dfb9d85(arbre principal, Python 3.13, locale Windows) :5 failed, 9 passedsurscripts/lean/tests/test_check_lean_orphans.py. Cause : les fixtures écriventlean_lib «Foo» whereavecPath.write_text(...)sansencoding=(cp1252 → 0xAB), alors que l'organe relit enencoding="utf-8"(check_lean_orphans.py:354) →UnicodeDecodeError,main()rend 2 au lieu de 0/1.Correctif :
encoding="utf-8"explicite sur les 42 appelswrite_text/read_textdu fichier. Aucun changement de l'organe, aucun autre fichier concerné (scan AST descripts/**/*.py: cette occurrence est la seulewrite_textnon-ASCII sansencoding).jsboige commentedon Nov 4, 2026
[DELIVERED] lane myia-po-2027:CoursIA -- PR #24555 -- paths: scripts/lean/tests/test_check_lean_orphans.py
Correctif livré :
encoding="utf-8"explicite sur les 42 appelswrite_text/read_textdu fichier de tests. Aucun changement de l'organe.Mesures :
709dfb9d85, arbre principal) :5 failed, 9 passed;fix/orphan-test-utf8, commit693c1f70f4) :14 passed in 0.33s;scripts/**/*.py(write_textsansencoding=dont le source porte du non-ASCII) : cette occurrence était la seule, donc pas de fichier frère à traiter.C'est le rouge qui faisait tomber la jambe
Scripts Tests (CPU)sur toutes les PRs de la flotte. La suite complètescripts/lean/teststournait encore à l'ouverture de la PR ; son compte sera ajouté au corps de #24555 dès qu'il tombe.Review/merge = ai-01.