Skip to content

Fix(#17407): aligner gh du parc natif po-2026 sur l'epingle image (2.99.0) - #19797

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/17407-gh-pin-parity
Oct 8, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/17407-gh-pin-parity

Conversation

@jsboige

@jsboige jsboige commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Grain: MED/tooling — lane myia-po-2026:CoursIA — prev: MED/notebook-python #19738

Ce que la PR fait

Ferme le dernier volet ouvert de l'arc #17407 cote parc : la divergence de version de gh entre le parc natif po-2026 et l'image coursia-linux. Le binaire est aligne sur l'epingle du Dockerfile, et le contrat cesse d'etre muet sur la version.

  1. Parc (geste, deja execute) — ~/.local/bin/gh sur l'hote WSL po-2026 passe de 2.90.0 a 2.99.0, la release Linux officielle, SHA-256 verifiee contre le pin du Dockerfile (l.74, ed4960225d…f3832), posee par mv atomique. Les Runner.Worker vivants ont ~/.local/bin en tete de leur PATH (mesure /proc/<pid>/environ) : leurs execs de gh ulterieurs resolvent 2.99.0 sans redemarrage du pool — un redemarrage aurait tue les jobs en vol des autres lanes.

  2. pool.sh — ensure_host_contract() crie desormais sur toute divergence de version (gh --version != le pin), pas seulement sur l'absence. C'est la lecon exacte du fil : « present » n'est pas « conforme », et l'ecart 2.90.0 etait invisible tant que la sonde se contentait de command -v gh (ci(runners): deux parcs partagent les labels coursia-linux avec deux contrats differents -- les slots natifs po-2026 n'ont ni python nu ni gh, et 2 rouges du jour viennent de la #17407 c. 2026-09-22 11:54Z, l.277 du README). Non bloquant comme le reste du gate, par construction.

  3. README.md du parc — la section divergence passe de « nommee, non corrigee » a « corrigee le 2026-10-08 », avec la discipline appliquee (release + SHA verifiee + mv atomique) et ce que la correction ne pretend pas. La sequence de deploiement gagne la sonde de version a cote de la sonde d'existence, pour que le prochain install ne repose pas un binaire non conforme en silence.

Preuves

Preuve Mesure
SHA-256 du tarball vs pin Dockerfile ed4960225d2833e04a61590d9fa2b5773d147f3aa375459e5466a40c102f3832 /tmp/gh.tar.gz -> OK
Version installee gh version 2.99.0 (2026-09-01)
Resolution par le PATH du pool command -v gh -> /home/jesse/.local/bin/gh sous PATH=~/.local/bin:…
Contexte des jobs vivants 3 Runner.Worker : PATH=/home/jesse/.local/bin:… en tete (/proc/<pid>/environ)
Controle positif du gate ensure_host_contract sur l'hote reel -> ligne OK, rc=0
Controle negatif du gate faux gh 2.90.0 dans un HOME detourne -> le gate crie gh 2.90.0 != 2.99.0, rc=1
Banc du pool test_pool_mint.sh (8 cas, POOL_PROBE=mint-token, sans effet de bord)

Ce que la PR ne pretend pas

  • L'ecart de version n'avait pas d'impact mesure — il est nomme, il n'a jamais ete reproduit comme panne. Le corriger ferme une divergence d'etat, il ne repare pas un rouge observe.
  • Le parc natif reste structurellement different de l'image : il honore le contrat par un PATH exporte + des binaires poses a la main, pas par une image. La divergence est contenue et gardee, pas supprimee — un workflow qui dependrait d'un outil que seule l'image fournit rouvrirait la classe.
  • Aucun redemarrage du pool n'a ete fait : le nouveau gate prend effet au prochain demarrage naturel. Le deploiement des fichiers est un install (mv) atomique, sur le superviseur vivant, sans couper les jobs en vol.

Deployment

Les trois copies (depot, source D:, vivante WSL) sont posees avec le meme contenu, md5 cite dans le rapport de cycle — le mode de defaut que la section « Derive depot <-> vivant » du README documente (trois correctifs deployes en WSL sans redescendre au depot, mesures du 2026-10-07) est precisement ce que ce geste evite.

See #17407 — le volet depot (setup-python sur les 3 jobs) est livre par #18821 ; le volet parc python/gh et le tool-cache sont livres.

🤖 Generated with Claude Code

…99.0)

Le parc natif po-2026 honore le contrat d'image par un PATH exporte, mais `gh` y
etait en 2.90.0 la ou le Dockerfile epingle 2.99.0 + SHA-256 : divergence nommee
dans le README du parc, jamais corrigee, et invisible a `command -v gh` — la sonde
d'existence ne distingue pas "present" de "conforme".

- pool.sh: ensure_host_contract() crie desormais sur toute divergence de version
  (nouveau controle, meme forme non bloquante que le reste du gate) ;
- README: la section divergence passe de "nommee, non corrigee" a "corrigee le
  2026-10-08" (release Linux officielle, SHA-256 du Dockerfile verifiee, mv
  atomique), et la sequence de deploiement gagne la sonde de version ;
- geste parc: ~/.local/bin/gh = 2.99.0, resolu par le PATH des Runner.Worker
  vivants (mesure /proc/<pid>/environ) sans redemarrage du pool.

Preuves: controle positif du gate rc=0 (gh 2.99.0) ; controle negatif rc=1 sur un
faux gh 2.90.0 ; banc test_pool_mint.sh 8 PASS / 0 FAIL.

See #17407

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2026:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-10-07) :

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Bash Syntax Advisory — shebang / executable-bit warnings

See the Shebang + dry-run advisory job log for the per-file ::warning:: lines. Non-blocking.

@jsboige

jsboige commented Oct 8, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 19797
head: 2f5f7f1
complete: true
body: read
comments-reviewed: 2
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: eecb0be668f90f51057704220db83a68676ea9e720c7cbc092e63a07534d35f1
diff-files: 2
diff-additions: 19
diff-deletions: 11
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 19797
organ-rc: 0
[/ADJOINT PREFLIGHT]

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #19797 (Fix(#17407): aligner gh du parc natif po-2026 sur l'epingle image (2.99.0)) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@myia-ai-01
myia-ai-01 merged commit 8e9a066 into main Oct 8, 2026
27 of 28 checks passed
@jsboige
jsboige deleted the fix/17407-gh-pin-parity branch October 16, 2026 12:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants