205 lines
5.9 KiB
Markdown
205 lines
5.9 KiB
Markdown
<!-- file: deltas/0.0.2/alpha.1.fix.1.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta 0.0.2-alpha.1.fix.1 — restructuration du plan de release
|
|
|
|
## Base requise
|
|
|
|
Partir de l'état `0.0.2-alpha.1` après application et commit du history :
|
|
|
|
```text
|
|
deltas/0.0.2/alpha.1.md présent et historique
|
|
history/0.0.2/alpha.1.md FAIL
|
|
```
|
|
|
|
Le delta `alpha.1` historique ne doit pas être réécrit.
|
|
|
|
La version devient :
|
|
|
|
```text
|
|
0.0.2-alpha.1.fix.1
|
|
```
|
|
|
|
## Objet
|
|
|
|
Corriger uniquement le défaut documentaire observé pendant la revue d'`alpha.1` :
|
|
|
|
- réaligner le plan `0.0.2` sur le patron de pilotage éprouvé par le plan `0.0.1` ;
|
|
- replacer toutes les tranches sous `## Trajectoire prévisionnelle` avec des titres `###` ;
|
|
- restaurer un `## Scope` global distinct du `## Hors scope` ;
|
|
- ajouter `## État acquis et questions ouvertes` ;
|
|
- ajouter `## Déclencheurs de REPLAN` ;
|
|
- ajouter `## Revue d'horizon` ;
|
|
- ordonner les sections de manière cohérente avec la fondation ;
|
|
- ajouter une gate explicite empêchant une nouvelle dérive structurelle du plan.
|
|
|
|
Le fix ne change ni le choix du backend `git`, ni l'ownership de `knowledge-git-lib`, ni le layout mirror/snapshot, ni le scope fonctionnel prévu de `0.0.2`.
|
|
|
|
Aucun code fonctionnel n'est ajouté.
|
|
|
|
## Scope
|
|
|
|
REPLACE :
|
|
|
|
```text
|
|
VERSION
|
|
Cargo.toml
|
|
docs/plans/002-V0_0_2_GIT_SYNC_PLAN.md
|
|
docs/validation/001-VALIDATION_MATRIX.md
|
|
```
|
|
|
|
ADD :
|
|
|
|
```text
|
|
deltas/0.0.2/alpha.1.fix.1.md
|
|
```
|
|
|
|
DELETE : aucun.
|
|
|
|
Le history `history/0.0.2/alpha.1.md` doit déjà être présent dans la base mais n'est pas inclus dans ce delta.
|
|
|
|
Aucun fichier sous `crates/` ou `Web/` n'est modifié.
|
|
|
|
## Structure attendue du plan
|
|
|
|
Le plan doit présenter, dans cet ordre :
|
|
|
|
```text
|
|
## Statut et sources
|
|
## Mission
|
|
## État acquis et questions ouvertes
|
|
## Scope
|
|
## Hors scope
|
|
## Stratégie de validation
|
|
## Trajectoire prévisionnelle
|
|
### alpha.1 — ...
|
|
### alpha.2 — ...
|
|
### alpha.3 — ...
|
|
### alpha.4 — ...
|
|
### beta.1 — ...
|
|
### rc.1 — ...
|
|
### rel.1 — ...
|
|
## Déclencheurs de REPLAN
|
|
## Clôture et transition
|
|
## Revue d'horizon
|
|
```
|
|
|
|
Les détails des tranches restent des forecasts et ne doivent pas être confondus avec le scope global de la release.
|
|
|
|
## Gate opérateur
|
|
|
|
Après application du history `alpha.1`, commit/push de cet état, puis application du présent delta :
|
|
|
|
```bash
|
|
test "$(cat VERSION)" = '0.0.2-alpha.1.fix.1'
|
|
grep -F 'version = "0.0.2-alpha.1.fix.1"' Cargo.toml
|
|
|
|
grep -A2 '^## Statut$' history/0.0.2/alpha.1.md | grep -Fx 'FAIL'
|
|
|
|
git diff --check
|
|
|
|
python3 - <<'PY'
|
|
from pathlib import Path
|
|
import re
|
|
|
|
path = Path("docs/plans/002-V0_0_2_GIT_SYNC_PLAN.md")
|
|
text = path.read_text(encoding="utf-8")
|
|
lines = text.splitlines()
|
|
|
|
assert lines[0] == "<!-- file: docs/plans/002-V0_0_2_GIT_SYNC_PLAN.md -->"
|
|
assert lines[1] == "<!-- version: 2 -->"
|
|
|
|
required_h2 = [
|
|
"## Statut et sources",
|
|
"## Mission",
|
|
"## État acquis et questions ouvertes",
|
|
"## Scope",
|
|
"## Hors scope",
|
|
"## Stratégie de validation",
|
|
"## Trajectoire prévisionnelle",
|
|
"## Déclencheurs de REPLAN",
|
|
"## Clôture et transition",
|
|
"## Revue d'horizon",
|
|
]
|
|
positions = [lines.index(heading) for heading in required_h2]
|
|
assert positions == sorted(positions), positions
|
|
|
|
trajectory_start = lines.index("## Trajectoire prévisionnelle")
|
|
replan_start = lines.index("## Déclencheurs de REPLAN")
|
|
trajectory = lines[trajectory_start + 1:replan_start]
|
|
|
|
for phase in ("alpha.1", "alpha.2", "alpha.3", "alpha.4", "beta.1", "rc.1", "rel.1"):
|
|
assert any(line.startswith(f"### {phase} — ") for line in trajectory), phase
|
|
|
|
for line in lines:
|
|
assert re.fullmatch(r"## (?:alpha|beta|rc|rel)\\..*", line) is None, line
|
|
|
|
for phrase in (
|
|
"0.0.2-alpha.1` est `FAIL`",
|
|
"alpha.1.fix.1",
|
|
"REPLAN obligatoire si",
|
|
"État courant : **non réalisée**.",
|
|
"Aucune version postérieure à `0.0.2` n'est réservée",
|
|
):
|
|
assert phrase in text, phrase
|
|
|
|
print("Knowledge 0.0.2-alpha.1.fix.1 plan structure audit: clean")
|
|
PY
|
|
|
|
python3 -B scripts/audit_rust_test_layout.py crates
|
|
python3 -B scripts/audit_rust_blank_lines.py crates
|
|
python3 -B scripts/audit_rust_item_spacing.py crates
|
|
python3 -B scripts/audit_rust_module_order.py crates
|
|
python3 -B scripts/audit_rust_trait_import_blocks.py crates
|
|
python3 -B scripts/audit_rust_reexport_blocks.py crates
|
|
python3 -B scripts/audit_rust_export_completeness.py --root . --summary-only
|
|
|
|
cargo fmt --all -- --check
|
|
cargo metadata --format-version 1 --no-deps
|
|
cargo check --workspace
|
|
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
|
cargo test --workspace --all-targets --all-features
|
|
|
|
(
|
|
cd Web/knowledge-template-lab
|
|
npm ci
|
|
npm run typecheck
|
|
npm run build
|
|
)
|
|
|
|
git diff --name-only -- crates Web
|
|
|
|
git add -A
|
|
git diff --cached --check
|
|
git status --short
|
|
```
|
|
|
|
Attendus spécifiques :
|
|
|
|
- `Knowledge 0.0.2-alpha.1.fix.1 plan structure audit: clean` ;
|
|
- `git diff --name-only -- crates Web` vide ;
|
|
- aucun `history/0.0.2/alpha.1.fix.1.md` avant réception des résultats opérateur ;
|
|
- aucun changement de comportement Git ou Web.
|
|
|
|
Les warnings Sass déjà observés dans Bootstrap ne constituent pas à eux seuls un `FAIL` si `npm run build` reste `PASS`.
|
|
|
|
## Revue opérateur complémentaire
|
|
|
|
Vérifier que :
|
|
|
|
- le plan se lit d'abord au niveau release (`Mission`, `Scope`, `Hors scope`) puis au niveau tranches sous `Trajectoire prévisionnelle` ;
|
|
- les déclencheurs de REPLAN sont suffisamment explicites pour empêcher l'élargissement silencieux d'une tranche ;
|
|
- les questions ouvertes restent différées jusqu'à la tranche qui les consomme ;
|
|
- la revue d'horizon ne pré-réserve pas de version suivante ;
|
|
- aucune décision technique validée par l'étude Git n'a été changée par simple restructuration documentaire.
|
|
|
|
## Transition
|
|
|
|
### PASS
|
|
|
|
Produire `history/0.0.2/alpha.1.fix.1.md`, appliquer ce history, committer/pousser le fix, puis seulement préparer `0.0.2-alpha.2`.
|
|
|
|
### FAIL / PARTIAL / BLOCKED
|
|
|
|
Conserver le résultat réel dans `history/0.0.2/alpha.1.fix.1.md` et rester dans le scope `alpha.1` avec `alpha.1.fix.2` si nécessaire.
|