Skip to content

Le compteur de debordement Slidev n'est pas opposable d'une machine a l'autre (fonts systeme) #24171

Open

Description

@jsboige

Part of #11508

Constat

Le compteur n_hors_canvas de scripts/notebook_tools/scan_slidev_composition.py
n'est pas opposable d'une machine à l'autre : deux mesures du même deck, au
même canvas (980 × 552), sur deux machines différentes, donnent des écarts
qu'aucune modification du dépôt n'explique.

Mesuré lors de #24156 (lane myia-po-2028), deck S8-semantic-web :

Source Machine Diapositives HORS canvas
#22318 (2026-10-25) myia-ai-01 2
#24156 (2026-11-02) myia-po-2028 1

Écart non content-expliqué : slides/S8-semantic-web/slides.md est inchangé
depuis ad8b546e (2026-08-28), slides/S8-semantic-web/style.css depuis
f1f9e29a (2026-08-25), le thème slides/theme-ia101/styles/index.css depuis
3f95ed405 (2026-10-25, #22318 lui-même), et l'instrument
scripts/notebook_tools/scan_slidev_composition.py depuis 77e987e17
(2026-09-15). Le scan rejoué sur la machine de #24156 redonne 1 (diapositive
16), identique au scan archivé dans docs/captures/22286/manifest.json.

Côté #22318, le « 2 » n'est ni reproductible ni décomposable : la PR ne
commite aucun relevé de scan, et son corps ne nomme, pour S8, que la
diapositive 22 — qu'il déclare à zéro élément hors canvas au relevé DOM.

Cause probable (mesurée)

Le rendu Slidev ne dépend que des polices système :
font-family: 'Segoe UI', 'Calibri', Arial, sans-serif, et il n'y a aucune
@font-face dans slides/. Les métriques de texte — donc la hauteur des
blocs de texte — varient donc d'une machine à l'autre, et avec elles le
compteur de débordement.

Ce qui est demandé

  1. Rendre la mesure opposable : soit embarquer les polices dans le dépôt
    (@font-face) pour que le rendu soit déterministe d'une machine à l'autre,
    soit faire porter le relevé par un artefact versionné (le scan archivé et
    son hash) plutôt que par un compteur rejoué sur la machine de chacun.
  2. Documenter la dépendance dans la sortie du scanner lui-même (une ligne
    « les métriques dépendent des polices système résolues ») et dans le README
    de docs/captures/22286/, pour qu'une future comparaison n'oppose plus deux
    relevés de machines différentes.
  3. Trancher le résidu de débordements : huit diapositives débordent
    réellement au canvas du scanner (02/48, 06/34, 06/40, 06/42, 06/53, 06/103,
    06/112, S8/16) — la correction de composition appartient à cet EPIC.

Références

Activity

  1. jsboige commented on Nov 3, 2026

    @jsboige
    OwnerAuthor

    Grain: MED/guard -- lane myia-po-2028:CoursIA-2 -- prev: DEEP/lean #24028

    [CLAIMED] lane myia-po-2028:CoursIA-2 -- paths: scripts/notebook_tools/scan_slidev_composition.py, scripts/tests/test_scan_slidev_composition.py -- 2026-11-03T18:13:29Z

    Tranche servie : les demandes 1 (option « artefact versionné ») et 2 de #24171.

    Pre-verification de collision (avant edition) : #24171 porte 0 commentaire -- aucun [CLAIMED] d'une autre lane ; 0 PR ouverte ne mentionne scan_slidev_composition. Le garde check_lane_claim.py rend UNKNOWN, et la seule cause est l'exhaustion du quota REST (5000/h, user jsboige) qui empeche l'enumeration complete des fichiers des PRs ouvertes : ce n'est pas un constat de collision, c'est une mesure indisponible.

    Perimetre : le scanner (present sur main) et son test. La moitie « README de docs/captures/22286/ » de la demande 2 est deja livree par la PR #24156 (lane myia-po-2028:CoursIA-2, ouverte) : son dossier documente deja la dependance aux polices systeme et la non-comparabilite des releves de machines differentes. Aucune edition de ce README n'est reprise ici -- la reponse est apportee au niveau de l'instrument, la ou elle vaut pour tous les usages futurs.

    Fait mesure : le rendu Slidev ne depend que des polices systeme (font-family: 'Segoe UI', 'Calibri', Arial, sans-serif, aucune @font-face dans slides/). Les metriques de texte -- donc la hauteur des blocs de texte, donc le compteur n_hors_canvas -- varient d'une machine a l'autre. Deux mesures du meme deck, au meme canvas 980x552, donnent 2 (ai-01, #22318) et 1 (po-2028, #24156) sans qu'aucune modification du depot l'explique.

    Geste : le rapport du scanner porte desormais son environnement de polices -- les polices systemes effectivement resolues au rendu, mesurees, pas supposees -- et une borne explicite de non-comparabilite. Un rapprochement ulterieur peut alors verifier que les deux releves ont le meme environnement de polices, au lieu d'opposer deux compteurs nus. C'est l'instrument qui nomme ce qu'il a mesure, principe deja porte par le scanner (BORNE, name-what-measured).

  2. jsboige commented on Nov 3, 2026

    @jsboige
    OwnerAuthor

    [DELIVERED] lane myia-po-2028:CoursIA-2 -- PR #24495 (moitie instrument : le scanner porte son environnement de polices + une signature de comparabilite) + PR #24156 (moitie captures : README de docs/captures/22286/). Les deux moities de la demande sont portees par ces deux PRs ouvertes ; la cloture revient au coordinateur/adjoint au merge des deux. See #24171

  3. added a commit that references this issue on Nov 4, 2026
  4. added a commit that references this issue on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions