0.1.0
This commit is contained in:
202
deltas/0.1.0/rel.1.md
Normal file
202
deltas/0.1.0/rel.1.md
Normal file
@@ -0,0 +1,202 @@
|
||||
<!-- file: deltas/0.1.0/rel.1.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.1.0 rel.1 — promotion stable pré-tag
|
||||
|
||||
## Baseline et version
|
||||
|
||||
Baseline : `0.1.0-rc.1`, avec `history/0.1.0/rc.1.md` appliqué et committé. Ce delta MUST NOT être appliqué avant ce commit.
|
||||
|
||||
Version avant application :
|
||||
|
||||
```text
|
||||
0.1.0-rc.1
|
||||
```
|
||||
|
||||
Version après application :
|
||||
|
||||
```text
|
||||
0.1.0
|
||||
```
|
||||
|
||||
`rel.1` identifie la clôture opérationnelle ; il ne fait pas partie de la version SemVer du produit.
|
||||
|
||||
## Objet
|
||||
|
||||
Promouvoir mécaniquement la RC validée vers la stable `0.1.0` sans rouvrir le scope fonctionnel.
|
||||
|
||||
La tranche finalise uniquement la présentation et les métadonnées de release : version stable, roadmap terminée, changelog sans marqueur `candidate`, README/index en état stable et plan `006` historique. Aucun owner, profil, template, skeleton, script d'audit ou contrat technique n'est modifié.
|
||||
|
||||
La validation de cette tranche est **pré-tag**. Le tag `v0.1.0`, son archive source Gitea et le rapport `pgr-0.1.0-publish.001-report.md` ne sont pas déclarés existants par ce delta. Ils suivent uniquement un history `rel.1` `PASS`, le commit stable `0.1.0` et la publication réelle du tag.
|
||||
|
||||
## Scope
|
||||
|
||||
REPLACE :
|
||||
|
||||
```text
|
||||
VERSION
|
||||
README.md
|
||||
ROADMAP.md
|
||||
CHANGELOG.md
|
||||
docs/000-README.md
|
||||
docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md
|
||||
```
|
||||
|
||||
ADD :
|
||||
|
||||
```text
|
||||
deltas/0.1.0/rel.1.md
|
||||
```
|
||||
|
||||
DELETE : aucun.
|
||||
|
||||
Le history `rc.1` est livré séparément. Le history `rel.1` sera produit uniquement après la gate opérateur.
|
||||
|
||||
## Validation opérateur pré-tag
|
||||
|
||||
Après application sur le commit contenant `history/0.1.0/rc.1.md` :
|
||||
|
||||
```bash
|
||||
test "$(cat VERSION)" = '0.1.0'
|
||||
git cat-file -e HEAD:history/0.1.0/rc.1.md
|
||||
test -f history/0.1.0/rc.1.md
|
||||
test -f deltas/0.1.0/rel.1.md
|
||||
test -f prompts/007-V0_1_1_START_PROMPT.md
|
||||
test ! -e history/0.1.0/rel.1.md
|
||||
|
||||
grep -A2 '^## Statut$' history/0.1.0/rc.1.md | grep -Fx 'PASS'
|
||||
grep -Fx '<!-- version: 16 -->' README.md
|
||||
grep -Fx '<!-- version: 10 -->' ROADMAP.md
|
||||
grep -Fx '<!-- version: 11 -->' CHANGELOG.md
|
||||
grep -Fx '<!-- version: 23 -->' docs/000-README.md
|
||||
grep -Fx '<!-- version: 10 -->' docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md
|
||||
grep -F -- '- `(x) 0.1.0`' ROADMAP.md
|
||||
grep -Fx '## 0.1.0' CHANGELOG.md
|
||||
grep -F 'première baseline réutilisable stable' README.md
|
||||
grep -F 'plan historique de la stable `0.1.0`' docs/000-README.md
|
||||
|
||||
python3 -B - <<'PYGATE'
|
||||
from pathlib import Path
|
||||
import re
|
||||
|
||||
expected = {
|
||||
"alpha.1.md": "PASS",
|
||||
"alpha.2.md": "FAIL",
|
||||
"alpha.2.fix.1.md": "PASS",
|
||||
"alpha.3.md": "FAIL",
|
||||
"alpha.3.fix.1.md": "PASS",
|
||||
"alpha.4.md": "PASS",
|
||||
"alpha.5.md": "PASS",
|
||||
"beta.1.md": "PASS",
|
||||
"rc.1.md": "PASS",
|
||||
}
|
||||
|
||||
for name, status in expected.items():
|
||||
delta = Path("deltas/0.1.0", name)
|
||||
history = Path("history/0.1.0", name)
|
||||
assert delta.is_file(), name
|
||||
assert history.is_file(), name
|
||||
text = history.read_text(encoding="utf-8")
|
||||
assert re.search(rf"## Statut\s+{status}\s", text), (name, status)
|
||||
|
||||
pending = {path.name for path in Path("deltas/0.1.0").glob("*.md")} - {
|
||||
path.name for path in Path("history/0.1.0").glob("*.md")
|
||||
}
|
||||
assert pending == {"rel.1.md"}, pending
|
||||
|
||||
roadmap = Path("ROADMAP.md").read_text(encoding="utf-8")
|
||||
assert "- `(x) 0.1.0`" in roadmap
|
||||
for version in ("0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7"):
|
||||
assert f"- `( ) {version}`" in roadmap, version
|
||||
assert "- `( ) 0.1.8`" not in roadmap
|
||||
|
||||
changelog = Path("CHANGELOG.md").read_text(encoding="utf-8")
|
||||
assert "## 0.1.0" in changelog.splitlines()
|
||||
assert "## 0.1.0 (candidate)" not in changelog
|
||||
assert "produit produit" not in changelog
|
||||
|
||||
readme = Path("README.md").read_text(encoding="utf-8")
|
||||
assert "première baseline réutilisable stable" in readme
|
||||
assert "plan historique de la première baseline réutilisable `0.1.0`" in readme
|
||||
|
||||
index = Path("docs/000-README.md").read_text(encoding="utf-8")
|
||||
assert "plan historique de la stable `0.1.0`" in index
|
||||
|
||||
plan = Path("docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md").read_text(encoding="utf-8")
|
||||
assert "Statut opérateur : **PASS**." in plan
|
||||
assert "history/0.1.0/rel.1.md" in plan
|
||||
assert "pgr-0.1.0-publish.001-report.md" in plan
|
||||
|
||||
prompt = Path("prompts/007-V0_1_1_START_PROMPT.md").read_text(encoding="utf-8")
|
||||
assert "tag Gitea `v0.1.0`" in prompt
|
||||
assert "pgr-0.1.0-publish.001-report.md" in prompt
|
||||
assert "0.1.1-alpha.1" in prompt
|
||||
|
||||
workflow = Path("docs/rules/210-WORKFLOW.md").read_text(encoding="utf-8")
|
||||
assert "history rel.1 FAIL / PARTIAL / BLOCKED" in workflow
|
||||
assert "premier history rel.N[/fix.M] PASS qui établit réellement la stable" in workflow
|
||||
assert "commit X.Y.Z" in workflow
|
||||
|
||||
print("0.1.0 rel.1 stable gate audit: clean (9 prior histories, rel.1 pending, stable presentation and post-tag handoff coherent)")
|
||||
PYGATE
|
||||
|
||||
python3 -B -m unittest discover -s tests -v
|
||||
|
||||
python3 -B scripts/audit_markdown_headers.py \
|
||||
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
|
||||
python3 -B scripts/audit_markdown_tables.py \
|
||||
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
|
||||
python3 -B scripts/audit_markdown_links.py \
|
||||
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
|
||||
|
||||
git diff --check
|
||||
git add VERSION README.md ROADMAP.md CHANGELOG.md docs/000-README.md \
|
||||
docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md \
|
||||
deltas/0.1.0/rel.1.md
|
||||
git diff --cached --check
|
||||
git status --short
|
||||
```
|
||||
|
||||
Le scope attendu avant ajout du history est exactement :
|
||||
|
||||
```text
|
||||
M CHANGELOG.md
|
||||
M README.md
|
||||
M ROADMAP.md
|
||||
M VERSION
|
||||
A deltas/0.1.0/rel.1.md
|
||||
M docs/000-README.md
|
||||
M docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md
|
||||
```
|
||||
|
||||
Les deux dry-runs Rust/Cargo ont été reconfirmés en `rc.1` avec Cargo/rustfmt/Clippy et aucun artefact Rust/Cargo n'est modifié par `rel.1`; ils ne sont donc pas rejoués une troisième fois dans la promotion mécanique. La suite Python PGR et les audits documentaires restent exécutés dans la gate stable.
|
||||
|
||||
## Revue opérateur complémentaire
|
||||
|
||||
Confirmer que :
|
||||
|
||||
- le scope fonctionnel de `rc.1` ne change pas ;
|
||||
- `0.1.0` est présenté comme stable de manière cohérente dans VERSION/README/ROADMAP/CHANGELOG/index/plan ;
|
||||
- les `FAIL` historiques `alpha.2` et `alpha.3` restent conservés avec leurs fixes `PASS` ;
|
||||
- la roadmap engagée `0.1.1` à `0.1.7` reste intacte ;
|
||||
- WASM, serveur Rust et deployment/operations restent non numérotés ;
|
||||
- le prompt `007` reste conditionnel à une vraie publication de `v0.1.0` et à un rapport post-tag `PASS` réel ;
|
||||
- aucune preuve post-tag n'est anticipée.
|
||||
|
||||
## Transition
|
||||
|
||||
### PASS
|
||||
|
||||
Produire séparément `history/0.1.0/rel.1.md`, l'appliquer, puis créer le commit stable sous le message exact :
|
||||
|
||||
```text
|
||||
0.1.0
|
||||
```
|
||||
|
||||
Après push de la branche canonique, créer et publier le tag annoté `v0.1.0`. Vérifier localement et à distance l'objet tag et son commit déréférencé. Télécharger ensuite l'archive source depuis le tag Gitea et la fournir au générateur avec les sorties Git de publication afin de produire `pgr-0.1.0-publish.001-report.md` à partir de preuves réelles.
|
||||
|
||||
Le prompt `007-V0_1_1_START_PROMPT.md` n'est remis comme reprise effective de `0.1.1` qu'après un rapport post-tag `PASS`.
|
||||
|
||||
### FAIL
|
||||
|
||||
Consigner le diagnostic réel dans `history/0.1.0/rel.1.md`, ne pas créer le tag et corriger uniquement la fermeture dans `rel.1.fix.1` avant toute publication.
|
||||
Reference in New Issue
Block a user