Skip to content

Archivage de l'ancien cours et chaîne PDF 2026 - #3

Merged
pguinet merged 33 commits into
masterfrom
chaine-pdf-2026
Oct 1, 2026
Merged

pguinet merged 33 commits into
masterfrom
chaine-pdf-2026

Conversation

@pguinet

@pguinet pguinet commented Oct 1, 2026

Copy link
Copy Markdown
Owner

Résumé

  • Archivage : l'ancien cours de base (modules et TP 01-08, évaluations) est déplacé dans archives/cours_2025/. Les modules additionnels Git et Docker restent en place.
  • Nouvelle chaîne PDF : une image Docker figée (pandoc 3.11 + LuaLaTeX) et un point d'entrée unique, ./pdf/build, utilisé tel quel en local et en CI. Elle produit 11 PDF : 8 modules, Git, Docker et l'annexe d'installation.
  • Échec visible : le build s'arrête à la première erreur. Un caractère absent de la police le fait échouer (\tracinglostchars=3), et aucun repli n'est silencieux.
  • 104 tests pytest : catalogue, titres, couverture, compilation, sources, et pour chaque PDF produit : pages, métadonnées, signets, accents et débordements.
  • CI : un seul workflow, PDF (lint, build, tests, artifact). Une release n'est créée que sur un tag v*.
  • Ménage : l'ancienne chaîne (scripts/, 3 workflows) est supprimée et la documentation est mise à jour (CLAUDE.md, README, CONTRIBUTING).
  • Sources corrigées pour l'impression : caractères Unicode du module Git, -- hors code et blocs Markdown imbriqués du TP Git 3.

Spec : docs/superpowers/specs/2026-10-01-chaine-pdf-2026-design.md
Plan : docs/superpowers/plans/2026-10-01-chaine-pdf-2026.md

Vérification locale

  • ./pdf/build check && ./pdf/build à partir de zéro, image reconstruite : 11 PDF, 104 tests réussis, en 2 min 07.
  • Deux générations successives donnent des PDF identiques à l'octet près.
  • Revue visuelle des couvertures et des pages intérieures.

🤖 Generated with Claude Code

pguinet and others added 30 commits October 1, 2026 16:48
Les modules 01-08 de supports/ et les TP 01-08 de travaux_pratiques/
sont déplacés (git mv, historique conservé) dans archives/cours_2025/.
Les modules additionnels Git et Docker restent en place.

README, CLAUDE.md et CONTRIBUTING sont alignés. Les scripts PDF du
cours de base ne sont pas mis à jour : l'ancien cours n'est plus généré,
la nouvelle chaîne PDF fera l'objet d'une étape dédiée.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
evaluations/ (quiz et évaluations finales) n'est pas aligné sur les
22 chapitres de cours_2026/ : déplacé dans archives/cours_2025/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…cours_2025

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Remplacements mécaniques : dessins de boîtes et de branches en ASCII
(- | + / \ *), flèches en -> et <-, coches des print() Python en [OK].

Reformulations à la main (pour que le texte se lise naturellement) :
- coches retirées des listes « Compétences acquises » et « Tests » des
  TP 1 à 3, et des titres de la grille d'auto-évaluation ;
- « Bons / Mauvais messages » et « Bons / Mauvais noms » : coche et
  croix retirées des commentaires (les mots suffisent) ;
- calculatrice : le symbole racine devient 'sqrt' et sqrt({a}) ;
- emojis de fin de ligne supprimés.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- test de couverture étendu aux modules additionnels
  (test_chaque_source_active_est_dans_un_pdf) ;
- nouveaux tests : aucune source déclarée deux fois, et chaque module de
  base reprend exactement les chapitres de son dossier, dans l'ordre ;
- documents.yaml : commentaire d'en-tête sur l'ajout d'un PDF ;
- arborescences ASCII des TP Git 1 et 3 : convention tree --charset=ascii
  (|-- pour les éléments, `-- pour le dernier).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hors code, la typographie de pandoc transforme « -- » en tiret
(rw-r--r-- s'affichait rw-r–r–). Les 13 occurrences passent entre
backticks ; test_sources.py empêche leur retour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
LaTeX ne coupe jamais un \texttt : les chemins longs débordaient de 65pt
(annexe : D:\PrenomNOM\VirtualBox\..., module 3 :
archivage/config/parametres.txt). Le préambule insère une coupure
possible, sans trait d'union, après chaque / et \ du code en ligne.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Les exemples de README contenaient des blocs ```bash qui fermaient le
bloc ```markdown englobant ; « Jest pour les tests » suivi de =======
devenait un titre de niveau 1 (chapitre parasite dans le PDF). Les blocs
englobants passent à quatre backticks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pandoc écrit ’ en ' dans le LaTeX : le texte imprimé garde ’ mais les
signets du PDF reçoivent '. titres_niveau1 renvoie désormais le titre tel
qu'il apparaît dans les signets (la couverture reste typographique).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
L'extension smart de l'écrivain LaTeX de pandoc réécrivait ’ “ ” — en
' `` '' --- ; hyperref transmettait ces formes ASCII aux signets. Pandoc
écrit désormais vers latex-smart : les signets gardent ’ et les
guillemets, et titres_niveau1 n'a plus besoin de remplacer l'apostrophe
(annule le contournement de 5590dfc). Un test compile un petit document
et lit ses signets.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Un titre de niveau 1 dans une liste, une citation ou un Div devient un
chapitre LaTeX, mais titres_niveau1 ne regardait que les blocs de premier
niveau : le chapitre parasite du TP Git 3 (« Jest pour les tests ») lui
échappait. Le parcours est désormais récursif ; l'ancienne version du
TP Git 3 est maintenant refusée par la règle « exactement un titre ».

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- test_pdfs : fixture chemin_pdf partagée, caractères manquants nommés,
  chaque débordement affiché avec sa largeur et ses lignes du .tex ;
- test_sources : consigne code -> backticks, prose -> — ou – ;
- preambule.tex : limite connue de la coupure des \texttt (groupes {...}).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pguinet and others added 3 commits October 1, 2026 18:15
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…pec)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@pguinet
pguinet merged commit 9895bd7 into master Oct 1, 2026
2 checks passed
@pguinet
pguinet deleted the chaine-pdf-2026 branch October 1, 2026 16:31
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.

1 participant