Banc des doublons inter-onglets : un libellé de bloc n'appartient qu'à un onglet #1620
Loading…
Reference in a new issue
No description provided.
Delete branch "hermes/test-onglets-doublons"
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?
Le filet des doublons inter-onglets, posé avant le retrait des doublons (qui est la carte de front à venir, hors périmètre ici). Carte
t_d9f927d9.Ce qui entre
_tableau/test_onglets_doublons.py: refuse qu'un libellé de bloc — le texte d'un<h2>ou d'un<h3>rendu par un onglet — soit affiché dans deux onglets. Deux surfaces, parce que les onglets ne se lisent pas au même endroit :rendu-fige.py(heure passée en argument, aucun réseau) pour les onglets encore rendus par Python ; le découpage est exact, la page porte unrole="tabpanel" id="p-<onglet>"par onglet, rien n'est deviné ;front/src/*.sveltepour les onglets passés au front : la page figée ne contient que leur squelette de chargement (le texte est monté par le navigateur), et c'est le fichier que la carte de front modifiera._tableau/ONGLETS.md, section 6 : où vit le banc, ce qu'il ne voit pas, et qu'un banc vert ne dit pas que la section 5 est réglée.Preuve — vert, et rouge quand on duplique exprès
Vert sur la branche (banc lancé seul, puis par
lancer-tests.py) :Rouge sur deux fautes fabriquées — un libellé recopié dans le composant du front, un autre recopié dans le rendu Python :
Après retrait des deux fautes :
code=0, 68 libellés, aucun partagé. Le banc se vérifie lui-même à chaque passage sur des onglets fabriqués qui se partagent un libellé (aire de jeu), donc un futur passage ne peut pas devenir vert sans mesurer.Ce que le banc ne mesure pas (écrit aussi dans son en-tête)
{chiffre}rend. Les lignes correspondantes de la section 5 deONGLETS.mdrestent à vérifier dans le navigateur.<h2>Pour %s</h2>) : Sujets, Projection, Instagram et TikTok n'apportent aujourd'hui aucun libellé au filet (0 pour chacun, mesuré dans la sortie ci-dessus).ONGLETS.mdrestent à faire (_tableau/captures-charte.py, Chromium est présent, mais il capture à 1600 et 390 px).État des tests
python3 _tableau/garde_fous.py:garde-fous : rien à redire, code 0.python3 _tableau/lancer-tests.py --toutsur cette branche : 148 bancs verts, 3 rouges, code 1 — et le même passage sur un worktree détaché d'origin/main(f6595fc4) donne 147 verts, les 3 mêmes rouges, code 1. Cette branche ajoute donc un banc vert et ne change rien d'autre.Les 3 rouges sont dans l'environnement des agents, pas dans le dépôt :
_tableau/test_deploy_132.pysshexécute localement la commande du déploiement, qui écrit2>/tmp/rendu-deploy.err; le fichier appartient àstephaneen 644 →Permission non accordée_tableau/test_retours_attente.pyPermissionError: [Errno 13] Permission denied: '/tmp/reception-desc.md'(même cause)_tableau/test_retours_validation.pyFileNotFoundError: [Errno 2] No such file or directory: 'multica'La couverture est refusée en conséquence, des deux côtés, avec les mêmes chiffres :
CLIQUET — la couverture a BAISSÉ : cœur 97.9 % < 99.4 % ; ensemble 98.6 % < 99.0 %(les deux bancsretourscoupés ne couvrent pas leurs lignes).CI Forgejo : verte sur
2e2e0fbf(4 tâches : Rust et Front Svelte,pushetpull_request). Elle ne lance paslancer-tests.py(le workflow ne couvre que Rust et Svelte).Dépendance
La branche part du commit
9800bee2de la carte inventaire (hermes/inventaire-onglets-md, PR #1607), qui n'est pas encore fusionnée et qui apporte_tableau/ONGLETS.md. Le contenu d'ONGLETS.mdde la #1607 est inclus tel quel, plus la section 6 : les deux PR peuvent être fusionnées dans n'importe quel ordre.À REPRENDRE — le banc est rouge dès qu'on le pose sur
main.Mesuré par moi, dans un arbre de travail dédié (
git worktree add, jamais la copie principale).1. Le banc de cette PR, lancé sur
origin/main(e7886778) (le fichier copié dans un arbre demain, rien d'autre) :Ce premier point réglé, le suivant apparaît :
Cause mesurée : la branche part de
f6595fc4(base commune), 107 commits en retard surmain. Depuis,STUD-1187a ajouté le panneaup-atelier-neuf(_tableau/tableau-bord.py) et le composant_tableau/front/src/Atelier.svelte; la tableONGLETSdu banc ne les connaît pas, et sa garde de couverture refuse — à raison.2. Il ne manque que ces deux classements. En les ajoutant seuls (
"atelier-neuf"dans les panneaux de l'ongletatelier,"Atelier.svelte"dans ses composants), le même banc surorigin/maindonne :Donc pas de vrai doublon sur
main: le filet fonctionne, il est seulement périmé.3. Ce qui tient, rejoué par moi. Sur sa propre base, le banc est vert (68 libellés, 12 onglets), et il refuse bien un libellé partagé — deux fautes fabriquées (un
<h2>recopié dansCalendrier.svelte, un autre dans lep-atelierdu rendu Python) :Ce qu'il faut faire : rebaser sur
mainà jour, classerp-atelier-neufetAtelier.svelte, relancerpython3 _tableau/test_onglets_doublons.py(vert attendu, 12 onglets / 70 libellés), puis redemander la relecture.Second point, à savoir (pas bloquant à lui seul) : la PR porte aussi
_tableau/ONGLETS.md, dont 102 des 109 lignes viennent de la PR #1607 (encore ouverte, têtea0f87273). Fusionner #1620 avant #1607 donne un conflit ajout/ajout sur ce fichier — mesuré pargit merge-tree --write-tree 2e2e0fbf a0f87273:CONFLIT (ajout/ajout) : Conflit de fusion dans _tableau/ONGLETS.md.Aucune étiquette
relun'est posée : ce filet ne peut pas entrer rouge dansmain. La CI Forgejo est verte sur2e2e0fbf(runs 10172-10175), mais le workflowpc-studione lance que Rust et Svelte — il ne lance paslancer-tests.py, donc il ne voit pas ce banc.2e2e0fbf748a2e998875fusion-auto: pas de fusion, la PR est en conflit avec main : à rebaser. Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.fusion-auto: pas de fusion, la CI est rouge (Front Svelte). Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.8a2e99887596820bdfb4Rebasage et classement livrés (tête
96820bdf, basemainae760c38).Cause reproduite avant le correctif, banc posé sur
origin/main:panneaux de la page non classés (un onglet est sorti du filet) : atelier-neuf, puiscomposants du front non classés : Atelier.svelte.Remède : une ligne,
"atelier": {"panneaux": ("atelier", "atelier-neuf"), "composants": ("Atelier.svelte",)}—p-atelierest le pont « Atelier (ancien) »,aria-controls="p-atelier-neuf"porte l'onglet courant (tableau-bord.pyligne 315).Banc sur main à jour : 12 onglets, 70 libellés de bloc, aucun libellé partagé, code 0. Le filet refuse toujours une faute fabriquée (
en danger dans les 48 h : atelier, calendrier, code 1).CI Forgejo sur la tête : Rust (push + pull_request) success, Front Svelte (push + pull_request) success. Le workflow pc-studio ne lance pas ce banc Python ; mesuré à la main, plus
npx vitest run(27 fichiers / 200 tests) etnpx vite buildverts en local.Hors sujet mais à l'ordre de fusion :
ONGLETS.mdici fait 109 lignes dont 102 venant de la PR #1607 encore ouverte — conflit ajout/ajout mesuré si #1620 passe avant #1607.96820bdfb4e9bd2c7c2eNouvelle tête
e9bd2c7c, rebasée surmaina3575e4d. Le commit d'inventaireONGLETS.mda été retiré (git rebase --onto) puisque #1607 est désormais fusionnée : le conflit ajout/ajout annoncé n'existe plus, la PR se fusionne sans conflit. Il reste 2 fichiers, 260 insertions, 0 suppression — le banc et les 7 lignes de la section 6 d'ONGLETS.mdqui disent où il vit.Banc sur main à jour : 12 onglets, 70 libellés de bloc, aucun libellé partagé, code 0.
lancer-tests.py --tout: 168 bancs ok, seul_tableau/test_accueil_parite.pyrouge (préexistant, mesuré aussi sur main sans cette branche ; carte de suivi ouverte).CI Forgejo sur la tête : Rust (push + pull_request) success, Front Svelte (push + pull_request) success.
Relu, conforme — étiquette
reluposée (relecture t_3272a6dc), têtee9bd2c7c, basemaina3575e4d.Mesuré par le relecteur, arbres de travail dédiés :
ONGLETS.md+7,test_onglets_doublons.py+253) ;git merge-tree --write-tree origin/main <branche>: code 0, aucun conflit ; aucune fonction visible retirée, aucun.sveltetouché ;page figée : 12 onglets, 70 libellés de bloc,aucun libellé de bloc n'est affiché dans deux onglets,code=0;72a099cc) surmain→panneaux de la page non classés : atelier-neuf,code=1; puis faute fabriquée indépendamment (<h2>En danger dans les 48 h</h2>dansp-atelier-neuf) →libellés affichés dans deux onglets : en danger dans les 48 h : atelier, calendrier,code=1;lancer-tests.py --tout: 168ok, un seul rougetest_accueil_parite.py, préexistant (mesuré identique surorigin/mainsans la branche) ; refus du cliquet de couverture identique des deux côtés ; seul écart entre les deux listes :+ ok _tableau/test_onglets_doublons.py;npx vitest run27 fichiers / 200 tests verts,npx vite buildcode 0 ;e9bd2c7c: Rust et Front Svelte, push et pull_request, toussuccess;Point de route :
maina avancé (a3575e4d→b613cad4, #1694) pendant la relecture ; remesuré sur cemain, le banc posé dessus reste vert et lemerge-treereste sans conflit.Fusionnée automatiquement par
fusion-auto(forge) : CI verte (Rust et Front Svelte), PR relue (étiquetterelu), sans conflit.