Skip to content

fix(env,#17654): parcours d'installation Linux sur clone vierge — .NET, doc Lean, dépendances Sudoku/RL - #17691

Merged
myia-ai-01 merged 5 commits into
mainfrom
claude/affectionate-mccarthy-6dvuea
Sep 26, 2026
Merged

myia-ai-01 merged 5 commits into
mainfrom
claude/affectionate-mccarthy-6dvuea

Conversation

@jsboige

@jsboige jsboige commented Sep 24, 2026

Copy link
Copy Markdown
Owner

Hors flotte : PR ouverte depuis une session Claude Code cloud du user, pas par une lane po-* / ai-01. Pas de tag Grain: ni de lane à déclarer (CLAUDE.md, « À qui ce fichier s'adresse »).

Summary

Changes

  • .NET — installation (docs/reference/setup-linux-macos.md) : sudo apt install -y dotnet-sdk-9.0 est absent des dépôts d'Ubuntu 24.04 LTS (E: Couldn't find any package by glob 'dotnet-sdk-9.0', seul dotnet-sdk-8.0 y est) → script officiel dotnet-install.sh --channel 9.0 et --channel 10.0, plus DOTNET_ROOT / PATH.
  • .NET — prérequis (README.md, docs/reference/kernels-runtime.md) : dotnet restore MyIA.CoursIA.sln (étape 4 de l'installation rapide) échoue avec le seul SDK 9 — NETSDK1045 sur cinq projets net10.0 (quatre sous GenAI/Integrations-DotNet/Aspire/, GenAI/Vibe-Coding/docs/csharprepl-demo/LiveOrderApp.csproj). Le SDK 10 n'est plus présenté comme optionnel. La ligne WSL des prérequis précise « sous Windows uniquement » et renvoie vers la doc Linux/macOS.
  • .NET — version épinglée (scripts/environment/{setup,audit}_environment.{sh,ps1}, Probas/Infer/scripts/setup_environment.{sh,ps1}) : dotnet tool install -g Microsoft.dotnet-interactive sans --version installait le dernier build, contre le pin 1.0.617701 du README et de kernels-runtime.md. Ajout de --version 1.0.617701 (installation et chaîne de recommandation des scripts d'audit).
  • Lean — doc Linux (setup-linux-macos.md) : source $HOME/.cargo/env → source $HOME/.elan/env (elan s'installe dans ~/.elan) ; python -m lean4_jupyter.kernel install (ne fait rien, rc 0) → python -m lean4_jupyter.install --user ; note de limite : les notebooks déclarent lean4-wsl, le kernel natif reste à porter (Parcours Linux sur clone vierge (Ubuntu 24.04) : le critère 1 de #10643 n'est pas tenu — mesure et 6 défauts #17654, D1).
  • Note #!import (setup-linux-macos.md) : « 1.0.712001 casse #!import partout » est contredit par la mesure sous Linux (comme sur po-2024) ; nuancé, le pin reste le standard.
  • Dépendances : regex, dd dans Sudoku/requirements.txt (Sudoku-13) ; trl, transformers, datasets, tokenizers dans RL/requirements.txt (rlpt_0d, rlpt_0e, rlpt_0f), bornes basses prises sur les versions des sorties committées.

Review Checklist

  • 1. Scope — uniquement les défauts D4, D5, D6 et la partie doc de D1 de Parcours Linux sur clone vierge (Ubuntu 24.04) : le critère 1 de #10643 n'est pas tenu — mesure et 6 défauts #17654 ; D1 (kernel), D2 (PyMC), D3 (Sudoku C#) restent ouverts dans l'issue.
  • 2. Post-fix validation — voir Test plan ; relancé après le dernier commit : check_docs_links.py --check --base origin/main → No new broken links ; scan_md_table_syntax.py → 0 défaut ; check_prose_quantitative_claims.py --diff origin/main...HEAD → OK ; bash -n sur les trois .sh modifiés.
  • 3. Pedagogical coherence — N/A (aucun notebook ni exercice touché).
  • 4. Real execution — les notebooks débloqués ont été exécutés de bout en bout sur l'environnement installé depuis les requirements.txt corrigés (Test plan) ; aucune sortie committée.
  • 5. Regression check — les modifications de scripts ne changent qu'un argument de dotnet tool install ; setup_environment.sh --auto-fix relancé en entier (rc 0). Les .ps1 n'ont pas pu être exécutés ici (pas de PowerShell dans le conteneur) : même changement d'argument que les .sh, à relire.

Anti-regression

  • No sorry introduced — N/A, aucun .lean.
  • No @pytest.skip / assert True added.
  • Deletions justified — 15 lignes supprimées, toutes remplacées par leur version corrigée.

Notebook-specific

N/A — aucun .ipynb dans le diff.

Test plan

Environnement : conteneur Ubuntu 24.04.4, Python 3.11 (venv), .NET SDK 9.0.318 + 10.0.401, dotnet-interactive 1.0.617701 ; exécution par python scripts/notebook_tools/notebook_tools.py execute <nb> --json, dans un worktree jetable.

Correction Avant Après
setup_environment.sh épinglé installe le dernier build dotnet-interactive désinstallé, script relancé depuis un dossier vierge → 1.0.617701 installé, kernels .net-* enregistrés
SDK 10 dans les prérequis dotnet restore MyIA.CoursIA.sln : 5 × NETSDK1045 avec SDK 10 : 0 erreur
Sudoku/requirements.txt Sudoku-13-SymbolicAutomata-Python : ModuleNotFoundError: No module named 'regex' rc 0, de bout en bout
RL/requirements.txt trl, transformers, datasets, tokenizers non installés par pip install -r rlpt_0e_trl_DPO_SOTA : 19/19 cellules, 0 erreur, 564 s (trl 1.13.0, transformers 5.17.0 ; aucune mise à jour de torch/numpy au --dry-run)
~/.elan/env ~/.cargo/env n'ajoute pas elan au PATH après source ~/.elan/env : elan 4.2.4 résolu
lean4_jupyter.install lean4_jupyter.kernel install : rc 0, aucun kernel kernel lean4 enregistré (limite lean4-wsl documentée)

Hors périmètre, signalé pour traitement séparé : check_docs_links.py relève 2 liens déjà cassés sur main dans docs/grothendieckian-lens.md (l. 93 et 97) — la cible Probas/DecisionTheory/Causal-Bridges/Do-Calculus-Bridge.ipynb a été renommée CausalBridges-01-Do-Calculus.ipynb. Non touché ici.

See #17654, See #10643

🤖 Generated with Claude Code

https://claude.ai/code/session_01VuVMY5fhzd5cQhzHiyvjka


Generated by Claude Code

….04)

Corrige trois defauts constates en rejouant l'installation documentee sur un
clone vierge (See #10643, critere 1) :

- setup/audit_environment et Probas/Infer/scripts/setup_environment (.sh et
  .ps1) installaient dotnet-interactive sans --version, donc le dernier build,
  alors que README et kernels-runtime.md imposent 1.0.617701.
- setup-linux-macos.md prescrivait `apt install dotnet-sdk-9.0`, absent des
  depots Ubuntu 24.04 LTS (seul dotnet-sdk-8.0 y figure) ; remplace par le
  script officiel dotnet-install.sh, teste ici pour les canaux 9.0 et 10.0.
- README et kernels-runtime.md donnaient .NET 10 pour optionnel, alors que
  `dotnet restore MyIA.CoursIA.sln` echoue sans lui (NETSDK1045 sur cinq
  projets net10.0) ; verifie : 0 erreur une fois le SDK 10 installe.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VuVMY5fhzd5cQhzHiyvjka
Sudoku-13-SymbolicAutomata-Python importe `regex` (recursion (?&rec)) et
`dd.autoref` (BDD) sans garde, mais aucun des deux n'etait declare : sur un
environnement neuf installe depuis requirements.txt, le notebook s'arrete en
ModuleNotFoundError a la cellule 8cd6348c. Verifie : apres ajout,
`notebook_tools.py execute` passe de bout en bout (rc 0). See #10643.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VuVMY5fhzd5cQhzHiyvjka
…/0f (RL)

Les notebooks rlpt_0d_reward_trainer_sota, rlpt_0e_trl_DPO_SOTA et
rlpt_0f_comparaison_GRPO_TRL_et_PPO_maison (kernel python3, CPU) importent sans
garde trl, transformers, datasets et tokenizers, absents de
RL/requirements.txt et sans cellule d'installation. Bornes basses prises sur
les versions de leurs sorties committees (trl 1.10.0, transformers 5.12.1,
datasets 5.0.0) ; trl >= 1.10 car rlpt_0f documente le retrait de PPOTrainer
dans cette version.

Validation a ce commit : pip install -r sur un venv neuf, imports resolus
(trl 1.13.0, transformers 5.17.0, datasets 5.0.1, tokenizers 0.23.2), sans
mise a jour de torch ni numpy. Execution complete de rlpt_0e en cours.
See #10643.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VuVMY5fhzd5cQhzHiyvjka
- `source $HOME/.cargo/env` apres elan-init : elan s'installe dans ~/.elan ;
  sur une machine sans Rust le fichier n'existe pas, et avec Rust il ne met
  pas elan dans le PATH. Remplace par `source $HOME/.elan/env` (verifie :
  elan 4.2.4 resolu apres ce source).
- `python -m lean4_jupyter.kernel install` ne fait rien (pas de __main__ dans
  kernel.py, rc 0, aucun kernel enregistre). Remplace par
  `python -m lean4_jupyter.install --user`, qui enregistre `lean4`, avec la
  limite connue : les notebooks declarent `lean4-wsl` (#17654, D1).
- « 1.0.712001 casse #!import partout » : contredit par la mesure sous Linux
  (#!import execute sous 617701 et 712001) comme sur po-2024 ; nuance, le pin
  reste le standard.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VuVMY5fhzd5cQhzHiyvjka
@github-actions github-actions Bot added paragraph-length Paragraph > 2000 chars (wall-of-text, #15405). Resorb before merge. variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) labels Sep 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Grain tag obligatoire (#10045, bloquant).

Grain tag absent (no Grain: / in body).

Pour passer ce gate, le body doit porter en tete une ligne de la forme :

Grain: <DEEP|MED|LIGHT>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<GENRE> #<PR>

Le <genre> doit figurer dans l'enumeration §1 de variation-protocol.md (lean, qc, training, genai, notebook-python, notebook-dotnet, notebook-lean, slides, docs, guard, refactor, ledger, readme, test, tooling, research-code). Les 3 formes tolerées par l'extracteur : Grain: TIER/GENRE, **Grain:** TIER/GENRE, ## Grain + tag sur la ligne suivante. La lane doit suivre le format <machine>:<workspace> (cf. lane-claim-protocol.md).

@github-actions

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.

@github-actions

github-actions Bot commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #17691 (fix(env,#17654): parcours d'installation Linux sur clone vierge — .NET, doc Lean, dépendances Sudoku/RL) 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.

myia-ai-01 pushed a commit that referenced this pull request Sep 25, 2026
…Grain-tag (#17715)

Le garde variation_tag_required bloquait #17691 (session cloud du mainteneur)
alors que CLAUDE.md exempte explicitement ces PRs du protocole de variation.
L'exemption tient par la conjonction des DEUX conditions (un renommage de
branche seul ne suffit pas, et un marqueur body sans prefixe claude/* non
plus -- une lane de la flotte ne peut pas usurper l'exemption).

- scripts/ci/variation_tag_required.py : ajout --head-ref, exemption
  dans check() avant le parse du tag
- scripts/tests/test_variation_tag_required.py : 5 tests
  (claude+Hors flotte / claude seul / flotte+Hors flotte /
  no head_ref / CLI end-to-end)
- .github/workflows/always-on-guards.yml : export HEAD_REF du
  github.event.pull_request.head.ref, propagation via --head-ref

Verif locale : 24/24 tests verts en 1.04s (19 anciens + 5 nouveaux).
Aucun paths: filter ajoute (cf test_13232_metadata_dependent_guard).

Grain: LIGHT/guard — lane myia-po-2026:CoursIA-2 — prev: MED/readme #17639

Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
@myia-ai-01 myia-ai-01 closed this Sep 25, 2026
@myia-ai-01 myia-ai-01 reopened this Sep 25, 2026
@github-actions

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.

@github-actions

Copy link
Copy Markdown
Contributor

Grain tag obligatoire (#10045, bloquant).

Grain tag absent (no Grain: / in body).

Pour passer ce gate, le body doit porter en tete une ligne de la forme :

Grain: <DEEP|MED|LIGHT>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<GENRE> #<PR>

Le <genre> doit figurer dans l'enumeration §1 de variation-protocol.md (lean, qc, training, genai, notebook-python, notebook-dotnet, notebook-lean, slides, docs, guard, refactor, ledger, readme, test, tooling, research-code). Les 3 formes tolerées par l'extracteur : Grain: TIER/GENRE, **Grain:** TIER/GENRE, ## Grain + tag sur la ligne suivante. La lane doit suivre le format <machine>:<workspace> (cf. lane-claim-protocol.md).

@myia-ai-01 myia-ai-01 closed this Sep 25, 2026
@myia-ai-01 myia-ai-01 reopened this Sep 25, 2026
@github-actions

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.

@github-actions

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 Sep 25, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2023:CoursIA
pr: 17691
head: 050b650
complete: true
body: read
comments-reviewed: 7
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 5a9fea5eff398bf12e390a61bb10bb28d076fa11d150ec9ee4a18b1472cedc17
diff-files: 11
diff-additions: 34
diff-deletions: 15
checks: latest-wins-green
b0: clear
scope: pass
domain: not-applicable
verdict: READY
[/ADJOINT PREFLIGHT]

Verification tierce (lane myia-po-2023:CoursIA) :

  • B.0 : organe check_unaddressed_nits.py 17691 → rc=0, aucune review, aucun thread non resolu. Les 7 commentaires sont posterieurs au dernier commit mais aucun ne porte de marqueur de reserve (annotations CI + updates de branche).
  • Checks : 33 jambes / 33 noms a la nouvelle tete 050b650031 (rafraichie par update-branch ai-01 pour chasser le rouge zombie sous l'ancien nom de job) — re-agregees et toutes vertes au fold latest-wins. mergeStateStatus CLEAN, MERGEABLE.
  • Scope : fix env Linux sur clone vierge (Parcours Linux sur clone vierge (Ubuntu 24.04) : le critère 1 de #10643 n'est pas tenu — mesure et 6 défauts #17654) — scripts setup/audit env, requirements Sudoku/RL, docs kernels/setup, README ; 11 fichiers, +34/-15, conforme au titre, pas de rider.
  • Particularite : PR de session cloud du user, marquee « Hors flotte » — attestation tierce demandee par ai-01, aucun conflit de lane.

myia-ai-01 pushed a commit that referenced this pull request Sep 25, 2026
…#17726)

L'exemption hors flotte (tete claude/* + marqueur « Hors flotte ») livree par
#17715 couvre le gate tag_required mais pas le routage d'orphelines : le sweep
quotidien (#13086) proposait encore #17691 a une lane. Meme predicat applique
a l'entree de `unattributed_blocked_prs`, donc partage avec `red_backlog`.

Mesure A/B sur l'instance vivante : pre-fix 2 orphelines (dont #17691),
post-fix 1. 4 tests ajoutes (unitaire + routage + 2 controles negatifs),
169/169 verts dans le fichier.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
myia-ai-01 pushed a commit that referenced this pull request Sep 26, 2026
…al (#17798)

A maintainer cloud session (claude/* branch + « Hors flotte » body
marker) carries no fleet lane, so validate_dossier's third-party check
had no carrier to compare against and refused every dossier by
construction -- the impasse measured on #17691. Both conditions mirror
the tag_required exemption (#17713/#17715, variation_tag_required.py);
either alone changes nothing. The gate names the exemption in its
output and json (out_of_fleet), merge_ready consumes rc+ready and needs
no change (verified: 41 tests pass).

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
@myia-ai-01
myia-ai-01 merged commit d35bac7 into main Sep 26, 2026
33 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

paragraph-length Paragraph > 2000 chars (wall-of-text, #15405). Resorb before merge. variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants