Skip to content

fix(Sudoku): add convention prints #1946 to 3 .NET notebooks (v2)#2029

Closed
jsboige wants to merge 2 commits into
mainfrom
fix/sudoku-dotnet-prints-v2
Closed

fix(Sudoku): add convention prints #1946 to 3 .NET notebooks (v2)#2029
jsboige wants to merge 2 commits into
mainfrom
fix/sudoku-dotnet-prints-v2

Conversation

@jsboige
Copy link
Copy Markdown
Owner

@jsboige jsboige commented Jun 1, 2026

Summary

Convention prints added to 3 Sudoku .NET notebooks:

  • Sudoku-1-Backtracking-Csharp.ipynb
  • Sudoku-11-Choco-Csharp.ipynb
  • Sudoku-14-BDD-Csharp.ipynb

Supersedes #1964 (LFS corruption blocked rebase). Content cherry-picked onto fresh branch from latest main.

Refs #1946

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 1, 2026

Notebook PR Validation: FAIL

  • Notebooks checked: 3
  • Code cells validated: 0
  • Result: 3 notebook(s) with violations

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

Violations

MyIA.AI.Notebooks/Sudoku/Sudoku-1-Backtracking-Csharp.ipynb (0 cells, unknown)

  • Cannot parse JSON: Expecting value: line 84 column 1 (char 3248)

MyIA.AI.Notebooks/Sudoku/Sudoku-11-Choco-Csharp.ipynb (0 cells, unknown)

  • Cannot parse JSON: Expecting value: line 111 column 1 (char 3784)

MyIA.AI.Notebooks/Sudoku/Sudoku-14-BDD-Csharp.ipynb (0 cells, unknown)

  • Cannot parse JSON: Expecting value: line 170 column 1 (char 5913)

How to fix

# Re-execute the notebook
python scripts/notebook_tools/notebook_tools.py execute <path>

Copy link
Copy Markdown
Collaborator

@clusterManager-Myia clusterManager-Myia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] — CHANGES_REQUESTED

CI RED : 3 checks fail (catalog drift + Static validation + validate-notebooks).

  1. validate-notebooks FAIL — Malgre le tag "v2" dans le titre, les 3 notebooks .NET echouent toujours la validation. La PR supprime les 3 entrees catalog C# (Sudoku-1, Sudoku-11, Sudoku-14) mais les fichiers .ipynb restent dans le repo avec des cellules qui echouent la validation statique.

  2. Catalog drift — La suppression des entrees catalog C# nest pas synchronisee. Si lintention est de demetrionner les notebooks C#, il faut aussi les deplacer hors du repertoire actif ou les marquer BETA dans le catalog plutot que de simplement les supprimer.

  3. Clarte dintention — Le titre dit "add convention prints" mais le diff supprime des entrees catalog. Quelle est lintention finale : conserver les notebooks C# en PRODUCTION avec convention prints, ou les demetrionner ?

Security scan: CLEAN.

@jsboige
Copy link
Copy Markdown
Owner Author

jsboige commented Jun 1, 2026

[ai-01 — diagnostic root-cause, complément au verdict CI]

Le verdict CI (Cannot parse JSON: Expecting value: line 84/111/170 col 1) a une cause précise et mécanique : les 3 notebooks contiennent des marqueurs de conflit git non résolus, committés dans le JSON (48 lignes au total : 21 / 15 / 12). Exemple Sudoku-1 ligne 84 :

<<<<<<< HEAD
       "    <div id='dotnet-interactive-this-cell-47404...'>",
=======
       "    <div id='dotnet-interactive-this-cell-15688...'>",
>>>>>>> 819c7c97 (fix(Sudoku): add convention prints #1946 ...)

Le cherry-pick sur main frais a conflité uniquement sur les IDs auto-générés dotnet-interactive-this-cell-NNNNN des sorties (deux runs .NET distincts), et a été committé sans résolution. Résultat : JSON invalide -> nbformat ne parse pas -> 0 cellule validée (d'où aussi validate-notebooks rouge).

Correction d'un possible red-herring : la dérive catalog (-72 entrées) n'est PAS une intention de démétrionner les notebooks C#. generate_catalog.py saute les notebooks non-parsables, donc leurs entrées disparaissent mécaniquement. L'intention reste = garder les 3 Sudoku C# en PRODUCTION avec convention prints.

Recette de fix (ne PAS juste « re-exécuter » : un notebook avec marqueurs de conflit ne parse pas, donc notebook_tools.py execute échoue avant de tourner) :

  1. Repartir des cellules source propres (sans marqueurs), ré-exécuter les 3 notebooks FRESH sur le kernel .NET Interactive (python scripts/notebook_tools/notebook_tools.py execute <nb>) -> IDs dotnet-interactive-this-cell cohérents d'un seul run.
  2. Vérifier 0 marqueur résiduel : grep -cE '^(<{7}|={7}|>{7})' <nb> = 0 sur les 3.
  3. Régénérer le catalogue : python scripts/notebook_tools/generate_catalog.py --git-tracked-only + python scripts/notebook_tools/expand_catalog_markers.py.
  4. Commit AVEC outputs (C.2) + push.

Lane .NET = po-2025:CoursIA-2 ; dispatch posté sur le dashboard workspace CoursIA-2. PR laissée ouverte pour fix en place.

@jsboige
Copy link
Copy Markdown
Owner Author

jsboige commented Jun 1, 2026

[ai-01 — correction + clôture en superseded]

Correction de mon diagnostic précédent (qui supposait à tort une lane CoursIA-2 hors-ligne). Vérification faite sur origin/main (401ecbbd) :

  • Les 3 notebooks Sudoku-1 / Sudoku-11 / Sudoku-14 (.NET) y sont déjà propres : 0 marqueur de conflit, JSON valide, convention prints présents (Console.WriteLine 7 / 11 / 77 lignes) et ré-exécutés.
  • C'est fix(catalog): extend outputless-by-design for config calls (+14 BETA->PRODUCTION) #2018 (MERGED 2026-06-01 06:49Z, sha f331404127) qui a livré l'équivalent : commit « fix(Sudoku): add convention prints + re-execute 3 .NET notebooks », Papermill .net-csharp = 68 cells / 0 errors.

Cette PR (v2, branche fraîche) est donc redondante — superseded par #2018. Son seul delta restant par rapport à main = les 48 marqueurs de conflit git committés (sur les IDs auto-générés dotnet-interactive-this-cell-NNNNN) → JSON invalide → validate-notebooks rouge. Rien à récupérer : main a déjà la meilleure version, ré-exécutée.

Objectif #1946 (convention prints sur les 3 Sudoku .NET) = atteint sur main. Aucun dispatch CoursIA-2 nécessaire (la lane .NET po-2025:CoursIA-2 l'avait déjà fait via #2018). Je clos en superseded.

@jsboige jsboige closed this Jun 1, 2026
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