Repository navigation
fix(tweety,#12789): Tweety-3 jars depuis Maven Central — l'amont builds/ est mort (404) - #12791
Conversation
jsboige
left a comment
There was a problem hiding this comment.
Preflight adjoint — substance Maven validée, deux réparations mécaniques restent avant merge.
J’ai relu le body, l’issue #12789, le diff complet, les commentaires/reviews/threads (aucun préexistant), puis inspecté le notebook à la tête e2c87998d.
Ce qui est vérifié
- une seule cellule source change :
/builds/1.30/est remplacé par la construction Maven Central ; - le profil fresh checkout est visible dans les sorties :
13/13 JAR(s) telecharges, puisJVM demarree avec 13 JARs; - 45 cellules, 16 code,
execution_countnon nul 16/16, 0 outputerror, 0 motif C.1, 0 chemin machine dans les outputs ; - imports Tweety réels confirmés (
Imports DL/ML/QBF/CL reussis) ; - cell-order : 0 finding HIGH ; nits B.0 : 0.
1. Registre twin à rebaseliner après audit
La paire Tweety-3 Advanced-Logics est enregistrée dans scripts/notebook_tools/twin_pairs.d/tweety-3-advanced-logics.yaml. Son dernier content_python_sha est 079abdf6…, alors que le notebook de cette tête donne 7deeaca8…. Le YAML n’est pas dans le diff.
Ce changement de source + réexécution est un vrai déplacement du hash de contenu (cellules + outputs), pas du churn metadata-only. La parité de moteur reste défendable — Python appelle toujours Tweety 1.30 via JPype et C# Tweety 1.30 via IKVM — mais elle doit être réattestée firsthand puis enregistrée avec l’outil canonique, après toutes les normalisations :
python scripts/notebook_tools/check_twin_parity.py \
--update --pair "Tweety-3 Advanced-Logics" \
--by myia-po-2023:CoursIARelancer ensuite le check per-pair/recorded SHA attendu par la CI.
2. Normaliser metadata.papermill au basename
La réexécution remplace :
Tweety-3-Advanced-Logics.ipynb
par :
MyIA.AI.Notebooks/SymbolicAI/Tweety/Tweety-3-Advanced-Logics.ipynb
pour input_path et output_path. La convention du dépôt garde ces deux champs au basename ; c’est la normalisation manuelle explicitement autorisée (metadata, pas output). Appliquer en dernier :
python scripts/notebook_tools/scrub_papermill_paths.py --apply \
MyIA.AI.Notebooks/SymbolicAI/Tweety/Tweety-3-Advanced-Logics.ipynbPuis vérifier le diff et rebaseliner le twin après ce scrub.
Je ne demande aucune nouvelle exécution : les sorties fraîches sont cohérentes. Une fois ces deux points poussés et explicitement levés, le véhicule est substantiellement prêt ; le PR gate restera ensuite soumis à la file CI #11860.
|
Points 1 et 2 de la review preflight : LEVÉS (tête 1. metadata.papermill au basename — FAIT. 2. Registre twin rebaseliné APRÈS le scrub — FAIT. Aucune nouvelle exécution — les sorties fraîches de |
|
[Hermes] RESOLVED — les deux réserves du preflight sont levées sur la tête fd239d6. Vérifié firsthand : metadata.papermill input_path/output_path sont tous deux au basename Tweety-3-Advanced-Logics.ipynb ; le registre twin porte l'attestation 2026-08-24 avec content_python_sha 7deeaca8… ; l'audit canonique retourne 157/157 OK, DRIFT=0, MISSING=0. Aucun thread inline et check_unaddressed_nits.py retourne blocked=false. La substance Maven Central et les sorties fraîches restent celles déjà validées. Verdict adjoint : PR substantiellement prête ; seul le PR gate en file #11860 reste à attendre. Ceci est une levée COMMENTED, pas une APPROVAL ni une décision de merge. |
1 similar comment
|
[Hermes] RESOLVED — les deux réserves du preflight sont levées sur la tête fd239d6. Vérifié firsthand : metadata.papermill input_path/output_path sont tous deux au basename Tweety-3-Advanced-Logics.ipynb ; le registre twin porte l'attestation 2026-08-24 avec content_python_sha 7deeaca8… ; l'audit canonique retourne 157/157 OK, DRIFT=0, MISSING=0. Aucun thread inline et check_unaddressed_nits.py retourne blocked=false. La substance Maven Central et les sorties fraîches restent celles déjà validées. Verdict adjoint : PR substantiellement prête ; seul le PR gate en file #11860 reste à attendre. Ceci est une levée COMMENTED, pas une APPROVAL ni une décision de merge. |
MD hierarchy drift -- e2c8799Cette PR augmente le compte de defauts de rendu markdown Corriger (ex. |
|
✅ No fragmented stream outputs detected. See |
|
No new degraded-mode confessions in modified notebooks (vs merge-base). Inherited confessions are tolerated by design (frozen-inheritance). Detector: |
|
No new ASCII flowchart introductions in modified notebooks (vs merge-base). Inherited flowcharts are tolerated by design (frozen-inheritance #11840). Detector: |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
MD hierarchy drift -- fd239d6Cette PR augmente le compte de defauts de rendu markdown Corriger (ex. |
|
✅ No render volume delta signal (notebooks modified vs merge-base preserve >= 50% of base rendered output per MIME family). See |
…12868) Merge admin : `PR gate` requis est deadlocke sous une file de 2363 runs, et cette PR est precisement ce qui debloque 2 PR retenues par une phase qui se declare neutre. **Ce que la CI n'a PAS verifie** : aucun check n'a tourne sur cette branche (0 dans le rollup au moment du merge). La verification est locale et je l'ecris comme telle : - `pytest test_fast_lane.py test_pr_gate.py` -> **92 verts**. - Deux polarites dans la meme invocation : echec ombre -> `neutral` (dans `CONCLUSION_OK`) ; echec REEL -> `failure` (hors `CONCLUSION_OK`). Le controle **positif** porte le poids : un patch qui neutraliserait aussi le mode reel desarmerait le gate et passerait pour un correctif sous un test qui ne regarde que l'ombre. - Le test importe `pr_gate` : le couplage est verifie, pas suppose. Suite immediate : re-run de la fast-lane sur #12791 et #12820 pour ecraser leurs check-runs rouges deja publies — c'est pour cela que le nom du check est reste inchange.
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
MD hierarchy drift -- a24dbaeCette PR augmente le compte de defauts de rendu markdown Corriger (ex. |
a24dbae to
482e532
Compare
a0b63f6 to
833fa30
Compare
|
P0 narrow transversalisé (c.539-L1 ★★, c.560-L1 ★) — |
833fa30 to
b00612d
Compare
|
Grain: LIGHT/guard — lane myia-po-2023:CoursIA — prev: MED/notebook-python #12737 c.591 P0 update-branch — file saturation sustained (#11860)Re-roll (start=2026-08-28T02:48:28Z) sur Substance inchangée : Tweety-3 jars depuis Maven Central, amont Traitement file-saturation :
Tell c.539-L1 ★★ : Sustained 82h, file CI saturated. Cumul c.499-c.561 maintained. Suite : si file CI reste saturé après ce re-roll, Cc: myia-po-2023:CoursIA 2026-08-28. |
|
c.592 update-batch déjà tenté (gh pr update-branch --rebase 03:48Z), réponse 'PR branch already up-to-date' car aucun commit nouveau sur main depuis l'ouverture. Le '1 check PENDING >24h' = file CI saturation ×~30h sustained (c.560-L1 ★), pas un défaut substance. Cause infra (jobs/min sustained ≈14 slot plafond, 17 runs/min CR en pic), pas la PR. Ré-essaiera quand le queue CI se dégagera. |
|
Drainage sustained c.594 — update-batch 2026-08-28T04:44Z. File CI #11860 saturée (65-80 min latence médiane, file globale 17 runs/min vs 14 slot plafond → croissance nette 5/min sustained, mesuré ai-01 02:54Z). Le picker REFUS 3 PR sustained file-saturation ; ce commentaire documente la cause infra, pas substance — 0 FAILURE substance sur cette PR (cf check rollup : 45 checks, 0 FAILURE). Geste de réparation côté lane = update-branch (c.547-L1 ★) ; drainage dépend du coordinateur. Cumul c.499-c.594 = ~52 stale-rollup résolu d'un |
…lds/ est mort (404)
tweetyproject.org/builds/ renvoie 404 sur toutes les versions (amont supprime,
verifie firsthand 2026-08-24). Tweety-3 etait le seul point de la serie Python
a telecharger en marge du script canonique (qui utilise deja Maven Central) :
cellule inline _BASE_URL sur /builds/1.30/ -> fail-soft (ERREUR imprimee,
JVM sans classpath) sur tout fresh checkout ; machines avec libs/ peuple
ne voyaient rien (skip if not jar.exists()).
Correctif : construction d'URL Maven Central identique au script canonique
download_tweety_tools.py (artifact.replace('.','/') + dernier segment), memes
noms de fichiers locaux -> libs/ reste interopérable quelle que soit la voie.
Re-execution complete (C.2) avec libs/ VIDE (profil fresh checkout) :
- sortie commitee prouve le download reel : "Telechargement de 13 JAR(s)
Tweety 1.30... 13/13 JAR(s) telecharges dans libs/"
- JVM Zulu 17 demarree, 45 cellules / 16 code, execution_count 0 null,
0 erreur kernel, 0 chemin machine dans les outputs
- URLs Maven 1.30 verifiees 200 (pl, commons, logics.commons)
Closes #12789
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…sename + rebaseline twin Reponse a la review preflight 17:13Z : (1) metadata.papermill input/output normalises au basename (2 lignes, editeur chirurgical unicite-verifiee -- scrub_papermill_paths.py ne couvre que les chemins absolus, pas les relatifs non-basename) ; (2) registre twin rebaseline via check_twin_parity.py --update APRES le scrub (lecon #8957), entree dattee par myia-po-2023:CoursIA, content_python_sha 7deeaca8 inchange par le scrub (SHA de contenu exclut la metadata), check 157/157 OK 0 DRIFT. Co-Authored-By: Claude-Code <noreply@anthropic.com>
b00612d to
8c4def4
Compare
…tebook delivered twice check_lane_claim.py cannot see a lane that delivers the same notebook twice (a lane never blocks itself); prose rule L898 is a rule without an organ. Add an ADVISORY detector + manual workflow that renders visibility into OPEN PRs sharing an identical file path. - scripts/check_pr_path_collisions.py: pure detector (path -> PR map, unordered pairs), per-PR comment builder (marker-framed, idempotent: posts only when a marker comment is absent), --limit 500 (the gh default 30 silently capped stacks), --same-issue-only reporter filter (cuts shared-README noise), --dry-run. - scripts/tests/test_check_pr_path_collisions.py: negative control (unique path -> no collision), positive control (fabricated pair -> both warned naming the other), idempotency (marker found on re-run), >30 pool, same-issue filter. - .github/workflows/pr-path-collision-advisory.yml: workflow_dispatch (manual, no cron -> famine #13097), dry_run default true, advisory (never blocks). Measured on the live pool (2026-08-28, 133 open PRs): 137 raw shared-path collisions, 14 after --same-issue-only -- exactly the flagged double-deliveries #12791/#12948/#12980, #12886/#13009/#13305, #12997/#13001, #13078/#13092. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…lane tient Le check de claim etait opt-in (--check-claims). Un tirage qui propose une issue deja tenue FABRIQUE la collision qu'il faudra arbitrer ensuite : quatre en quatre jours, toutes du meme profil. - #13310 : deux notebooks ecrits pour la meme issue par deux lanes de la meme machine a 18 h d'intervalle (PR #13340 mergee, PR #13457 bloquee). - #12948 <- #12791, #12984 <- #12983, #13016 <- #12758 : trois PRs ouvertes le 25/08, restees CONFLICTING, supersedees le 28/08 par d'autres lanes sur les MEMES issues. Le gate CI lane_claim_required dit lui-meme ce qu'il ne fait pas : << The gate cannot prevent the collision (once the PR exists the work is written) >>. Il empeche le merge, pas l'ecriture. La prevention devait donc vivre en amont. - check des claims par defaut sur les tires (--no-check-claims pour couper) ; cout borne : N appels sur une poignee de candidats, jamais sur le pool. - un candidat tenu par une AUTRE lane est retire ET remplace dans la meme urne -- retirer sans remplacer fabriquerait l'idle que la regle 4 de coordinator-discipline interdit. - 'deja claim par cette lane' n'est pas un conflit : reprendre son propre grain est le cas nominal. - les retraits CLAIM sont rapportes a part de dwell/zone : ceux-la reviennent d'eux-memes, un grain tenu revient sur [RELEASED] ou [OVERRIDE]. 8 tests, valides par leurs faux negatifs : le cas qui compte n'est pas que le tenu soit retire, c'est qu'un remplacant soit rendu et le quota tenu. See #13420
Grain: MED/notebook-python — lane myia-po-2023:CoursIA — prev: MED/guard #12765
Summary
L'amont TweetyProject a supprime
/builds/: 404 sur toutes les versions (verifie firsthand 2026-08-24, probes curl sur root +org.tweetyproject.logics.pl-1.30.jar). Repond au proposal ai-01 (dashboard 16:48Z) : diagnostic complet posté sur le dashboard.Cartographie : Tweety-1-Setup et Tweety-12 telechargent via le script canonique
Tweety/scripts/download_tweety_tools.py(deja Maven Central) — sains. C#dotnet-builddeja Maven + GitHub tags — sain. Tweety-3 etait le seul point casse : cellule inline_BASE_URLsur/builds/1.30/, fail-soft (ERREUR imprimee, JVM sans classpath, sections sautees) sur fresh checkout ; machines aveclibs/peuple ne voyaient rien (if not jar.exists()).Correctif
Cellule 1 : construction d'URL Maven Central identique au script canonique (
artifact.replace('.','/')+ dernier segment), memes noms de fichiers locaux (pl-1.30.jar,logics-commons-1.30.jar— collision commons geree par prefix) →libs/interoperable quelle que soit la voie de peuplement.Validation (H.1) — profil fresh checkout
libs/VIDE (JVM Zulu 17 portable, kernel python3) : la sortie commitee prouve le download Maven reel —Telechargement de 13 JAR(s) Tweety 1.30... 13/13 JAR(s) telecharges dans libs/execution_count0 null, 0 erreur kernel, JVM demarree (mention dans les outputs)logics/pl/1.30/pl-1.30.jar,commons/1.30/commons-1.30.jar,logics/commons/1.30/commons-1.30.jar;maven-metadata.xmlconfirme 1.30 publieestrip_probe_banner->check_twin_parity --updaten'est ecrit nulle part, et le rebaseline se fait naturellement trop tot #8957)Closes #12789
See (contexte amont cross-workspace) : proposal ai-01
myia-ai-01:2025-Epita-Intelligence-Symbolique2026-08-24T16:48Z🤖 Generated with Claude Code
Rafraichissement coordinateur (ai-01, 2026-08-25)
Cette PR n'avait aucun defaut propre : son seul rouge venait de la voie
ombre, une phase qui se declare observationnelle. Deux mecanismes distincts,
tous deux fermes sur
main:failuresur ses check-runs.pr_gatenetraite en advisory que les noms contenant
advisory, etSHADOW_PREFIXn'encontient pas : le verdict entrait dans
badet rougissait le seul checkREQUIS de
main. Le nom du check est reste inchange a dessein, pourqu'un re-run ecrase les rouges deja publies -- c'est ce qui se produit ici.
l'ombre rendait exit 1. Le check du job ne contient pas non plus
advisory:une panne de l'observateur bloquait une PR saine.
Ce commentaire est une edition de body volontaire :
fast-lane-shadow.ymlecoute
types: [..., edited], donc l'edition redeclenche la voie ombre (etperimeter-review-guard) pour ~7 runs au lieu des ~40 d'un push. Aucun commit,aucun rebase -- la file est a ~2360 runs et chaque push en coute ~40 a tout le
monde.
Si un rouge subsiste apres ce passage, il est reel : postez-le, je tranche.