Skip to content

Fix(tweety,#19673): famille A -- aligner les 4 recettes IKVM 8.14.0 sur les DLL commitees 8.15.0 - #19880

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/19673-tweety-recipes-ikvm815
Oct 8, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/19673-tweety-recipes-ikvm815

Conversation

@jsboige

@jsboige jsboige commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/tooling -- lane myia-po-2026:CoursIA -- prev: MED/notebook-lean #19874

Ce que la PR fait

Famille A de #19673 : les 4 recettes build-Tweety{,Aspic,BeliefDynamics,Dung}Shade.csproj déclaraient IKVM/IKVM.MSBuild 8.14.0 alors que les DLL committées qu'elles prétendent construire référencent IKVM.Runtime 8.15.0 — rejouer la recette produirait un artefact d'une autre version que celui chargé par les carnets. La PR aligne les 4 recettes sur 8.15.0 (option B de l'acceptance 1) et met à jour la phrase d'état du dotnet-build/README.md. Les 6 carnets C190 alignés en 8.14 ne sont pas touchés ; aucune cellule de carnet modifiée (aucune ré-exécution due).

Appui mesuré (verbatims sur l'issue, c.6052937363)

Le premier point à trancher nommé par l'issue — le comportement runtime de « DLL bâtie 8.14.0 + runtime 8.15.0 » (famille B) — est tranché par la mesure : sonde net8.0 sous les pins exacts des carnets, chargement par chemin des 3 DLL :

DLL (bâtie 8.14.0) types publics org.tweetyproject.* instanciés
tweety-7a 674 674 134
tweety-dialogues 614 614 119
tweety-causal 590 590 146

runtime IKVM.Runtime chargé : 8.15.0.0, SONDE OK famille B, exit 0. La manifestation C190 (« 0 type exposé ») est absente. La divergence n'est donc pas un risque runtime mais un défaut de reproductibilité documentaire — ce qui porte l'alignement au sens des binaires livrés.

Gaps déclarés

  1. La preuve de rebuild complète exige la chaîne Maven (JDK 17, pom parent patché <release>8</release>, fat-jar) — les fat-jars intermédiaires sont gitignorés et absents de l'arbre.
  2. Le comportement d'une DLL bâtie sous 8.15.0 n'est pas mesuré (seule la combinaison inverse l'a été).
  3. Réserves de la sonde : résolution IKVM.* par handler AssemblyResolve (même relâchement que .NET Interactive) ; runtime .NET 10 via DOTNET_ROLL_FORWARD=Major (aucun runtime 8 sur la machine) ; instanciation limitée aux constructeurs sans paramètre.

Design-gate

L'acceptance 1 de #19673 réserve la politique au décideur : cette PR est le véhicule de l'option B (recettes → 8.15.0, les binaires livrés deviennent reproductibles). L'option A (rebâtir les 4 DLL en 8.14.0) reste ouverte et se défend par la phrase historique du README — arbitrage ai-01 : merger ici, ou fermer et rebâtir. L'issue ne se ferme pas dans cette PR (famille B documentée, preuve de rebuild pendante).

See #19673.

🤖 Generated with Claude Code

….0 mais leurs DLL commitees referencent 8.15.0

La matrice #19673 mesure que 4 recettes (Shade pl/aspic/beliefdynamics/dung)
declarent IKVM 8.14.0 alors que les DLL qu'elles pretendent construire
referencent IKVM.Runtime 8.15.0 : rejouer la recette produirait un artefact
d'une autre version que celui charge par les carnets. Defaut de
reproductibilite, independant de la question de savoir quelle version est la bonne.

Alignement sur 8.15.0 (option B de l'acceptance 1) : les DLL commitees
deviennent reproductibles telles quelles, 12/18 carnets pinnent deja 8.15.0,
et les 6 carnets C190 alignes en 8.14 ne sont pas touches.

Appui mesure (poste sur l'issue, c.6052937363) : la combinaison famille B
« DLL batie 8.14.0 + runtime 8.15.0 » FONCTIONNE -- 674/614/590 types
org.tweetyproject.* exposes ET instanciables (sonde net8.0, pins exacts des
carnets, exit 0). La divergence n'est donc pas un risque runtime mais un
defaut de reproductibilite documentaire ; l'alignement va au sens des
binaires livres.

Gaps declares : (1) la preuve de rebuild complete exige la chaine Maven
(JDK 17 + pom patche release 8 + fat-jar) -- les fat-jars intermediaires
sont gitignores et absents de l'arbre ; (2) le comportement d'une DLL batie
sous 8.15.0 n'est pas mesure (seule la combinaison inverse l'a ete).
Le design-gate final reste au coordinateur : cette PR est le vehicule de
l'option B, a merger ou a fermer.

See #19673.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) label Oct 8, 2026
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2026:CoursIA a deja consomme son budget LIGHT du jour (#19704 (merge a 2026-10-08T02:01:23Z)).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour,
toutes categories LIGHT confondues
(guard, doc, refs, ... partagent un seul budget) :
c'est un RATIO, pas un plafond plat. La decision de merge reste au coordinateur.

@myia-ai-01

Copy link
Copy Markdown
Collaborator

Design-gate #19673 tranchée : option B. Les recettes s'alignent sur 8.15.0, la version que les DLL committées référencent déjà et que les carnets chargent. La mesure de la famille B (c.6052937363 : 674/614/590 types exposés, runtime 8.15.0.0, exit 0) montre que l'écart était un défaut de reproductibilité documentaire, pas un risque d'exécution. L'option A rebâtirait des binaires pour revenir à une version que rien d'autre dans la chaîne n'utilise.

Le gap 2 (DLL bâtie sous 8.15.0, non mesurée) reste ouvert. Il se ferme au premier rebuild réel par la chaîne Maven : ce rebuild rejoue la sonde de la famille B et en poste les comptes sur #19673. Cette PR n'en dépend pas.

Reste le dossier de prévalidation à la tête exacte.

@jsboige

jsboige commented Oct 8, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 19880
head: fc4b7f1
complete: true
body: read
comments-reviewed: 2
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 8885988f9580a9c7f7dca59091d37157d6ec8c178a51d177cfe5087e16a4a733
diff-files: 5
diff-additions: 15
diff-deletions: 11
checks: BLOCKED
b0: clear
scope: pass
domain: not-applicable
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 19880
organ-rc: 3
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-ai-01:CoursIA
pr: 19880
head: fc4b7f1
complete: true
body: read
comments-reviewed: 3
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 3c31f8de258808f2024eada34b1873e19d10aad5b576cf10bba8ea88e9fe01c8
diff-files: 5
diff-additions: 15
diff-deletions: 11
checks: latest-wins-green
b0: clear
scope: pass
domain: not-applicable
verdict: READY
supersedes: 3
supersedes-why: le dossier BLOCKED precedent attestait un etat de jambes ou de levees depasse ; a la meme tete, la derivation live rend checks verts, B.0 clear
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 19880
organ-rc: 0
[/ADJOINT PREFLIGHT]

Derivation live READY a la tete vive : le dossier BLOCKED anterieur attestait des jambes alors en cours ; jambes latest-wins vertes, B.0 clear, aucun thread non resolu.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants