ci(cache,#16099): wire tests/test_evict_orphan_caches.py into PR checks (adjoint gap)
Suivi : défaut de couverture CI identifié par l'adjoint (c.1199)
Constat first-hand (2026-09-16T14:50Z)
Le reviewer adjoint a signalé (comment c.1199 sur PR #16099) que tests/test_evict_orphan_caches.py (16 tests, dernier commit 1299a92a86 du fix ci(cache,#16088)) n'est exécuté par aucun workflow de pull request :
scripts-tests.yml (ligne 270-284, exécution pytest scripts/tests scripts/notebook_tools/tests ...) ne couvre pas la racine tests/.
tests/ (racine) contient uniquement test_batch_reexecute.py, test_scan_slidev_composition.py, et le nouveau test_evict_orphan_caches.py.
- La seule exécution CI prévue pour
test_evict_orphan_caches.py est dans le workflow hebdomadaire evict-orphan-caches.yml lui-même (après merge).
Conséquence : le verdict vert Scripts Tests (CPU) sur la PR ne couvre pas les 16 tests ajoutés — le gate ne sait pas si la suite passe.
Pourquoi c'est isolé en suivi, pas absorbé dans #16099
(a) Scope : la PR #16099 (3 fichiers, +746/-0) est déjà substantielle ; ajouter scripts-tests.yml la ferait sortir du cadre d'une PR CI cache-eviction. Risque de merge conflict avec #16087 (relève plafond Scripts Tests 20→30 min) et #16175 (ML Pipeline Tests CPU), qui touchent le même workflow.
(b) DWELL : #16099 est ouverte depuis 60h ; tout push mute le plancher à zéro (Tell c.15859 — gh pr update-branch reset). Le gate FAIL = Scripts Tests CPU FAILURE = base-imputé (MEMORY rouge-base-impute-picker-pas-gh-run-list.md) ; le fix de wiring CI ne lève pas ce rouge base, il ajoute seulement une suite au gate.
(c) Anti-régression : un fix de wiring CI est un geste indépendant, ré-exécutable en isolation, et autonome (peut être testé via un dry-run pytest tests/test_evict_orphan_caches.py localement avant push). Il mérite son propre suivi.
Périmètre proposé pour la sous-PR
.github/workflows/scripts-tests.yml : ajouter tests (racine) à la liste pytest ligne 272-284.
- Aucun autre fichier touché.
- Vérification : exécution locale
pytest tests/test_evict_orphan_caches.py -q doit rendre 16 passed (mesuré c.1199).
Acceptance
État actuel PR #16099
- HEAD
e80f5149a16d (merge main dans la branche).
- 16 tests verts local (adjoint c.1199).
- Le défaut ne bloque pas le merge techniquement — le code marche, juste la CI gate est aveugle. Mais une CI gate aveugle à un fix qu'elle shippe est une régression silencieuse pour les PRs suivantes.
ci(cache,#16099): wire tests/test_evict_orphan_caches.py into PR checks (adjoint gap)
Suivi : défaut de couverture CI identifié par l'adjoint (c.1199)
Constat first-hand (2026-09-16T14:50Z)
Le reviewer adjoint a signalé (comment c.1199 sur PR #16099) que
tests/test_evict_orphan_caches.py(16 tests, dernier commit1299a92a86du fix ci(cache,#16088)) n'est exécuté par aucun workflow de pull request :scripts-tests.yml(ligne 270-284, exécutionpytest scripts/tests scripts/notebook_tools/tests ...) ne couvre pas la racinetests/.tests/(racine) contient uniquementtest_batch_reexecute.py,test_scan_slidev_composition.py, et le nouveautest_evict_orphan_caches.py.test_evict_orphan_caches.pyest dans le workflow hebdomadaireevict-orphan-caches.ymllui-même (après merge).Conséquence : le verdict vert
Scripts Tests (CPU)sur la PR ne couvre pas les 16 tests ajoutés — le gate ne sait pas si la suite passe.Pourquoi c'est isolé en suivi, pas absorbé dans #16099
(a) Scope : la PR #16099 (3 fichiers, +746/-0) est déjà substantielle ; ajouter
scripts-tests.ymlla ferait sortir du cadre d'une PR CI cache-eviction. Risque de merge conflict avec #16087 (relève plafond Scripts Tests 20→30 min) et #16175 (ML Pipeline Tests CPU), qui touchent le même workflow.(b) DWELL : #16099 est ouverte depuis 60h ; tout push mute le plancher à zéro (Tell c.15859 —
gh pr update-branchreset). Le gate FAIL = Scripts Tests CPU FAILURE = base-imputé (MEMORYrouge-base-impute-picker-pas-gh-run-list.md) ; le fix de wiring CI ne lève pas ce rouge base, il ajoute seulement une suite au gate.(c) Anti-régression : un fix de wiring CI est un geste indépendant, ré-exécutable en isolation, et autonome (peut être testé via un dry-run
pytest tests/test_evict_orphan_caches.pylocalement avant push). Il mérite son propre suivi.Périmètre proposé pour la sous-PR
.github/workflows/scripts-tests.yml: ajoutertests(racine) à la liste pytest ligne 272-284.pytest tests/test_evict_orphan_caches.py -qdoit rendre16 passed(mesuré c.1199).Acceptance
tests/test_evict_orphan_caches.pysur CHAQUE PR qui touchescripts/ci/evict_orphan_caches.pyOUtests/test_evict_orphan_caches.py.État actuel PR #16099
e80f5149a16d(merge main dans la branche).