Repository navigation
docs(adr): les décisions durables sortent du code vers docs/decisions/ (#203) - #371
Merged
Merged
Conversation
Quatorze fiches de décision, chacune en anglais et en français, de même forme courte : statut, date, contexte, décision, conséquences, ce qui l'inverserait. Les huit décisions listées dans l'issue (deux runtimes, verrou flock, ansible-core explicite, images mutables, paquets du premier démarrage, journal en anglais, --json distinct de schema_version, jeu de règles Ruff) et six prises depuis (renversement des fixtures, lab dégradé sans moteur, trois issues d'un contrôle, index stable des hôtes optionnels, refus des hôtes hors contrat, table des catalogues mesurée). Le raisonnement est recopié, pas résumé : chaque mesure garde sa date. L'index docs/README et les invariants renvoient au répertoire. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Le raisonnement d'architecture quitte locking.py, pyproject.toml (ansible-core, jeu de règles Ruff), les README des templates terraform et cloud-init, test_journal_en_anglais.py, infra/terraform.py, cli/infrastructure.py et scripts/gen-catalogues.py. Chaque endroit garde l'essentiel en une ligne et un renvoi « docs/decisions/NNNN-….md ». Les commentaires qui expliquent une seule ligne restent. Renvois ajoutés aussi dans models/runtime.py, runtimes/manager.py, runtimes/shell.py, services/lab_state.py, doctor_controles/modele.py, models/schema_version.py et reporting/machine.py. Aucun comportement ne change. tests/test_decisions.py tient le répertoire : sections fixes, jumelle dans l'autre langue, index complet, numéros contigus, et tout renvoi docs/decisions/… du dépôt mène à un fichier existant (prouvé en cassant le renvoi de locking.py). Les deux tests qui lisaient la décision dans les README des templates la lisent désormais dans son ADR, et exigent le renvoi. CHANGELOG EN + FR : section [Unreleased], sans changement de version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #203. Architecture reasoning that lived in code comments, READMEs and
pyproject.tomlmoves todocs/decisions/: one ADR per decision, in EN (.md) and FR (.fr.md), with an index.Each ADR has a fixed format:
The code keeps one line and a link (
docs/decisions/NNNN-….md). Behaviour does not change.models/runtime.py, CONTRIBUTING, README, design-principles, CHANGELOG 0.1.26flocklock, file never deleted (0.1.55)locking.pydocstring, copied in fullansible-coredeclared despite its 100 MB (0.1.42)pyproject.tomltemplates/terraform/README.mdtemplates/cloud-init/README.md, copied in full, counts re-measured on 2026-11-14test_journal_en_anglais.py--jsonis a contract distinct fromschema_version(0.1.46)reporting/machine.py,models/schema_version.pypyproject.toml, with the dated countsrun(#177)runtimes/shell.pydegradedlab when the engine is unreachable (#179)services/lab_state.pydoctor_controles/modele.pyapplywithout-target(#365)infra/terraform.py, CHANGELOG 0.9.0 / 0.9.1cli/infrastructure.pyscripts/gen-catalogues.pydocstringThe issue requires that the reasoning is not summarised when it moves. Measurements are copied with their dates.
To review: what is not from a source
gen-catalogues.pydocstring said "eight" catalogues were missing in 0.9.2. It was seven, as the CHANGELOG says, and 0014 follows the CHANGELOG.Type of change
Checklist
Always
ruff check src/dsoxlab tests tests_e2e fuzz scripts: passedmypy src/dsoxlab: no issues in 123 filespytest: 2,252 passedtests/test_decisions.py(12 tests) checks four things:docs/decisions/…link resolves.locking.pylink gives 1 failed, 11 passed.pytest tests_e2e: not run; no packaged code changed except commentsscripts/generer-doc.py --verifierandscripts/complexite.py --verifier: passedWhen behavior changes
N/A for behaviour.
CHANGELOG.md/CHANGELOG.fr.mdget an[Unreleased]section, Documentation, to ship in 0.9.3.Commands / workflows / contract
N/A.
🤖 Generated with Claude Code