Couverture : mesurer les scripts que leurs bancs lancent en sous-processus, et couvrir ce qui restait #1699
Loading…
Reference in a new issue
No description provided.
Delete branch "hermes/cliquet-coeur-decoupage"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Carte t_bad78dbb (remplace t_6ccf34c4). Branche
hermes/cliquet-coeur-decoupage, tetedde7ba23, basemaina3575e4d(rebased sur la fusion de #1653).La panne, mesuree sur un arbre neuf de
mainComptes bruts : cœur 3076/3103 (99,1299 %), ensemble 12916/13357 (96,6984 %). Sur
main, le cœur vaut 2894/2921 (99,08 %) : les 182 lignes d'ecart sont les modules du decoupage deserveur.py, deja comptes sur la branche.Cause :
_tableau/deploiement-issue.py(134 lignes) et_tableau/verifier-onglets.py(172) etaient a 0 %. Leurs bancs les lancent pourtant pour de vrai parsubprocess.run([sys.executable, SCRIPT, …]);coverage runne mesure que le processus qu'il lance, etCOVERAGE_PROCESS_STARTn'etait pose nulle part (aucun.coveragerc). 306 lignes reelles comptees comme du code mort : la cause etait la metrique, pas le code.Apres (jeu complet
--tout --complet)_tableau/test_accueil_parite.py, rouge d'environnement reproduit tel quel sur un arbre vierge demain(git archive a3575e4d) :AssertionError: complet : le JSON doré n'est plus la sortie de Python. 169 bancs verts, aucun LENT,git statuspropre hors le cliquet.Ce que la PR apporte
_tableau/sous_processus.py(module neuf :lancer-tests.pyest au plafond de 600 lignes du gardetest_garde_plafond.py, mesure a 642 lignes avec le bloc en place → decoupage, le fichier repasse a 582). Il ecrit la configuration des enfants (parallel = True,sourceen absolu) et lesitecustomize.pyqui appellecoverage.process_startup();lancer()ajouteCOVERAGE_PROCESS_STARTetPYTHONPATH,COVERAGE_FILEetant deja pose et herite.~/.git-credentialsdont la valeur ne s'affiche jamais, heure de secours sans base de fuseaux ; HTML sans script, script absent ou tronque, page sans conteneur,/api/processusabsent ou illisible, navigateur non executable, tunnel ssh impossible puis tunnel ouvert et referme).test_retours_attente.pycouvre 13 des 27 lignes manquantes du cœur._tableau/test_lanceur_sous_processus.py: la garde de la mesure. Un script lance en sous-processus entre dans le chiffre, la meme chose sans l'amorce retombe a 0 ligne couverte (la panne, rejouee), et le vraideploiement-issue.pyest mesure.test_choix_vignette.pyprendTMPDIRau lieu de/tmpen dur.Aucun champ d'API
/api/...n'est touche : le front n'a rien a reprendre.Non mesure
lancer-tests.py --toutsort 1 a cause du seul rouge d'environnementtest_accueil_parite.py; hors ce banc, la porte ne refuse plus rien (aucune phrase du cliquet).Preuves
/home/atelier/atelier-hermes/preuves-t_bad78dbb/:avant-tout.log,apres2-tout.log,vierge-accueil-parite.log,rendu/(cmpidentique octet pour octet, 474398 octets).Preuves, mesurees le 2026-10-15 sur un arbre de travail dedie.
Carte t_bad78dbb (remplace t_6ccf34c4). Branche
hermes/cliquet-coeur-decoupage, tetedde7ba23, basemaina3575e4d(rebased sur la fusion de #1653).La panne, mesuree sur un arbre neuf de
mainComptes bruts : cœur 3076/3103 (99,1299 %), ensemble 12916/13357 (96,6984 %). Sur
main, le cœur vaut 2894/2921 (99,08 %) : les 182 lignes d'ecart sont les modules du decoupage deserveur.py, deja comptes sur la branche.Cause :
_tableau/deploiement-issue.py(134 lignes) et_tableau/verifier-onglets.py(172) etaient a 0 %. Leurs bancs les lancent pourtant pour de vrai parsubprocess.run([sys.executable, SCRIPT, …]);coverage runne mesure que le processus qu'il lance, etCOVERAGE_PROCESS_STARTn'etait pose nulle part (aucun.coveragerc). 306 lignes reelles comptees comme du code mort : la cause etait la metrique, pas le code.Apres (jeu complet
--tout --complet)_tableau/test_accueil_parite.py, rouge d'environnement reproduit tel quel sur un arbre vierge demain(git archive a3575e4d) :AssertionError: complet : le JSON doré n'est plus la sortie de Python. 169 bancs verts, aucun LENT,git statuspropre hors le cliquet.Ce que la PR apporte
_tableau/sous_processus.py(module neuf :lancer-tests.pyest au plafond de 600 lignes du gardetest_garde_plafond.py, mesure a 642 lignes avec le bloc en place → decoupage, le fichier repasse a 582). Il ecrit la configuration des enfants (parallel = True,sourceen absolu) et lesitecustomize.pyqui appellecoverage.process_startup();lancer()ajouteCOVERAGE_PROCESS_STARTetPYTHONPATH,COVERAGE_FILEetant deja pose et herite.~/.git-credentialsdont la valeur ne s'affiche jamais, heure de secours sans base de fuseaux ; HTML sans script, script absent ou tronque, page sans conteneur,/api/processusabsent ou illisible, navigateur non executable, tunnel ssh impossible puis tunnel ouvert et referme).test_retours_attente.pycouvre 13 des 27 lignes manquantes du cœur._tableau/test_lanceur_sous_processus.py: la garde de la mesure. Un script lance en sous-processus entre dans le chiffre, la meme chose sans l'amorce retombe a 0 ligne couverte (la panne, rejouee), et le vraideploiement-issue.pyest mesure.test_choix_vignette.pyprendTMPDIRau lieu de/tmpen dur.Aucun champ d'API
/api/...n'est touche : le front n'a rien a reprendre.Non mesure
lancer-tests.py --toutsort 1 a cause du seul rouge d'environnementtest_accueil_parite.py; hors ce banc, la porte ne refuse plus rien (aucune phrase du cliquet).Preuves
/home/atelier/atelier-hermes/preuves-t_bad78dbb/:avant-tout.log,apres2-tout.log,vierge-accueil-parite.log,rendu/(cmpidentique octet pour octet, 474398 octets).dde7ba234d2b0ad288f1Rebasage sur
mainb613cad4(la PR #1694 est entree entre-temps ; elle ne touche aucun de mes fichiers). Tete2b0ad288, CI relancee.Nouvelle mesure sur l'arbre fusionne, jeu complet
--tout --complet:deploiement-issue.py134/134,verifier-onglets.py172/172,sous_processus.py14/14 ;_tableau/test_accueil_parite.py, deja reproduit tel quel sur un arbre vierge ;git statusvide apres la mesure (le cliquet ne se reecrit pas quand la mesure ne bouge pas).Le rebasage n'a pas change une ligne de mes fichiers ; c'est la meme mesure, sur la base a jour.
Fusionnée automatiquement par
fusion-auto(forge) : CI verte (Rust et Front Svelte), PR relue (étiquetterelu), sans conflit.