180 lines
6.9 KiB
Markdown
180 lines
6.9 KiB
Markdown
<!-- file: deltas/0.0.5/rel.001.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta 0.0.5 rel.001 — promotion stable pré-tag
|
|
|
|
## Baseline et version
|
|
|
|
Baseline : `0.0.5-rc.1`, avec `history/0.0.5/rc.1.md` appliqué et committé. Ce delta MUST NOT être appliqué avant ce commit.
|
|
|
|
Le commit exact de cette baseline sera celui produit par l'opérateur après application du history RC ; il n'est pas anticipé dans cette livraison simultanée du history et du delta stable.
|
|
|
|
Version avant application :
|
|
|
|
```text
|
|
0.0.5-rc.1
|
|
```
|
|
|
|
Version après application :
|
|
|
|
```text
|
|
0.0.5
|
|
```
|
|
|
|
`rel.001` identifie la clôture opérationnelle ; il ne fait pas partie de la version SemVer du produit.
|
|
|
|
## Objet
|
|
|
|
Promouvoir la RC validée vers la stable `0.0.5`. La tranche finalise uniquement la présentation de la release : version stable, roadmap terminée, changelog sans marqueur candidate, index documentaires et plan historique.
|
|
|
|
Le scope fonctionnel reste celui validé en RC : lifecycle inter-release, prompts versionnés, contrats documentaires locaux, profil Rust strict et audits monotâches, contrats architecturaux des suffixes de crates, ownership du tracing, profil Tauri 2, classification des versions produit, réconciliation KSP/Games et décision `DEFER` du skeleton Tauri contrôlé jusqu'à matérialisation d'owners Web suffisants.
|
|
|
|
La validation de cette tranche est **pré-tag**. Ni le tag `v0.0.5`, ni l'archive `pgr-v0.0.5.zip` téléchargée depuis Gitea, ni un rapport `pgr-0.0.5-publish.001-report.md` ne sont déclarés existants par ce delta. Ils suivent le history PASS, le commit stable et la publication réelle du tag.
|
|
|
|
## Scope
|
|
|
|
REPLACE :
|
|
|
|
```text
|
|
VERSION
|
|
README.md
|
|
ROADMAP.md
|
|
CHANGELOG.md
|
|
docs/000-README.md
|
|
docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
|
|
```
|
|
|
|
ADD :
|
|
|
|
```text
|
|
deltas/0.0.5/rel.001.md
|
|
```
|
|
|
|
DELETE : aucun.
|
|
|
|
L'archive contient uniquement ces fichiers complets. `history/0.0.5/rc.1.md` est livré séparément ; le history de `rel.001` sera produit après sa gate. Le rapport post-tag restera extérieur à l'archive source taggée.
|
|
|
|
## Validation opérateur pré-tag
|
|
|
|
Après application sur le commit `rc.1`, depuis la racine du dépôt :
|
|
|
|
```bash
|
|
test "$(cat VERSION)" = '0.0.5'
|
|
git cat-file -e HEAD:history/0.0.5/rc.1.md
|
|
test -f history/0.0.5/rc.1.md
|
|
test -f deltas/0.0.5/rel.001.md
|
|
test -f prompts/006-V0_1_0_START_PROMPT.md
|
|
test ! -e history/0.0.5/rel.001.md
|
|
|
|
grep -Fx '<!-- version: 14 -->' README.md
|
|
grep -Fx '<!-- version: 8 -->' ROADMAP.md
|
|
grep -Fx '<!-- version: 9 -->' CHANGELOG.md
|
|
grep -Fx '<!-- version: 17 -->' docs/000-README.md
|
|
grep -Fx '<!-- version: 15 -->' docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
|
|
grep -F 'plan historique de réconciliation `0.0.5`' README.md
|
|
grep -F -- '- `(x) 0.0.5`' ROADMAP.md
|
|
grep -Fx '## 0.0.5' CHANGELOG.md
|
|
grep -F 'périmètre et décisions de la release `0.0.5`' docs/000-README.md
|
|
grep -F 'La gate opérateur de `rc.1` est `PASS`' docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
|
|
grep -F 'pgr-0.0.5-publish.001-report.md' docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
|
|
grep -F 'Le skeleton Tauri contrôlé reste `DEFER`' prompts/006-V0_1_0_START_PROMPT.md
|
|
|
|
python3 -B - <<'PYGATE'
|
|
from pathlib import Path
|
|
import re
|
|
|
|
expected = {
|
|
'alpha.1.md': 'PASS',
|
|
'alpha.2.md': 'PASS',
|
|
'alpha.3.md': 'FAIL',
|
|
'alpha.3.fix.1.md': 'PASS',
|
|
'alpha.4.md': 'PASS',
|
|
'alpha.5.md': 'FAIL',
|
|
'alpha.5.fix.1.md': 'PASS',
|
|
'alpha.6.md': 'FAIL',
|
|
'alpha.6.fix.1.md': 'FAIL',
|
|
'alpha.6.fix.2.md': 'FAIL',
|
|
'alpha.6.fix.3.md': 'PASS',
|
|
'alpha.7.md': 'FAIL',
|
|
'alpha.7.fix.1.md': 'PASS',
|
|
'alpha.8.md': 'PASS',
|
|
'alpha.9.md': 'PASS',
|
|
'beta.1.md': 'PASS',
|
|
'rc.1.md': 'PASS',
|
|
}
|
|
for name, status in expected.items():
|
|
delta = Path('deltas/0.0.5', name)
|
|
history = Path('history/0.0.5', 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 = {p.name for p in Path('deltas/0.0.5').glob('*.md')} - \
|
|
{p.name for p in Path('history/0.0.5').glob('*.md')}
|
|
assert pending == {'rel.001.md'}, pending
|
|
|
|
roadmap = Path('ROADMAP.md').read_text(encoding='utf-8')
|
|
assert '- `(x) 0.0.5`' in roadmap
|
|
assert '- `( ) 0.1.0`' in roadmap
|
|
assert '(d) skeleton Tauri pour projets contrôlés' in roadmap
|
|
assert 'saselang-bible' not in roadmap
|
|
|
|
changelog = Path('CHANGELOG.md').read_text(encoding='utf-8')
|
|
assert '## 0.0.5
|
|
' in changelog
|
|
assert '## 0.0.5 (candidate)' not in changelog
|
|
|
|
prompt = Path('prompts/006-V0_1_0_START_PROMPT.md').read_text(encoding='utf-8')
|
|
assert 'pgr-v0.0.5.zip' in prompt
|
|
assert 'pgr-0.0.5-publish.001-report.md' in prompt
|
|
assert '0.1.0-alpha.1' in prompt
|
|
assert 'Le skeleton Tauri contrôlé reste `DEFER`' in prompt
|
|
|
|
print('0.0.5 stable history audit: clean (17 prior histories with expected statuses, rel.001 pending)')
|
|
PYGATE
|
|
|
|
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/005-V0_0_5_RECONCILIATION_PLAN.md deltas/0.0.5/rel.001.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.0.5/rel.001.md
|
|
M docs/000-README.md
|
|
M docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
|
|
```
|
|
|
|
Les `48` tests Python et les validations structurelles validés en RC restent des preuves applicables parce qu'aucun code, script, test, règle, template ou skeleton technique n'est modifié pendant `rel.001`. La gate stable se concentre donc sur l'intégrité de la chaîne historique, la présentation stable et les audits documentaires affectés.
|
|
|
|
## Revue opérateur complémentaire
|
|
|
|
Confirmer que le scope fonctionnel de la RC ne change pas, que README/roadmap/changelog/index/plan décrivent la même stable, que les `FAIL` historiques restent conservés avec leurs fixes `PASS`, que le skeleton Tauri reste différé sans release réservée, que le prompt `006` reste conditionnel à une vraie publication et qu'aucune preuve post-tag n'est anticipée.
|
|
|
|
## Transition
|
|
|
|
### PASS
|
|
|
|
Produire séparément `history/0.0.5/rel.001.md`, l'appliquer puis committer la stable. Ensuite seulement créer et publier le tag canonique `v0.0.5`, télécharger son archive source depuis Gitea, vérifier cette archive et conserver séparément la preuve post-tag `pgr-0.0.5-publish.001-report.md`.
|
|
|
|
Le message manuel de reprise de `prompts/006-V0_1_0_START_PROMPT.md` n'est remis à l'opérateur qu'après vérification effective de l'archive et d'un rapport post-tag PASS réel.
|
|
|
|
### FAIL
|
|
|
|
Consigner le diagnostic réel dans `history/0.0.5/rel.001.md`, ne pas tagger et corriger la clôture dans une tranche explicite avant publication.
|