6.8 KiB
Delta 0.0.5-rc.1 — gel du scope et préparation de release
Baseline et version
Baseline : 0.0.5-beta.1, avec history/0.0.5/beta.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 beta ; il n'est pas anticipé dans cette livraison simultanée du history et du delta suivant.
Version avant application :
0.0.5-beta.1
Version après application :
0.0.5-rc.1
Objet et gel
La réconciliation beta.1 est PASS. La RC gèle le scope fonctionnel de 0.0.5 sur :
- les prompts versionnés, contrats documentaires facultatifs et responsabilités de lifecycle/revue d'horizon ;
- le profil Rust strict des projets contrôlés, ses contrats de nomenclature/packaging/tracing et ses audits monotâches ;
- l'audit de complétude de façade et l'usage canonique
crate::Item; - les profils framework et Tauri 2, leurs frontières Rust/frontend, TS-RS, plugins/capabilities, politique de versions produit et exception encadrée
lib + bin; - la décision explicite
DEFERdu skeleton Tauri contrôlé jusqu'à matérialisation d'owners Web suffisants ; - la réconciliation KSP/Games et le prompt candidat
006vers0.1.0.
Le changelog reçoit une entrée candidate 0.0.5 orientée utilisateurs. ROADMAP.md est vérifié mais reste inchangé : 0.0.5 n'est marqué terminé qu'à la promotion stable ; 0.1.0 reste la prochaine release engagée ; le skeleton Tauri reste différé sans numéro réservé. Le prompt 006 est vérifié sans être réécrit si son contrat est déjà correct.
Aucun nouvel owner, profil Web, skeleton, template, audit, règle fonctionnelle ou version postérieure à 0.1.0 n'entre en RC.
Scope
REPLACE :
VERSION
CHANGELOG.md
docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
ADD :
deltas/0.0.5/rc.1.md
DELETE : aucun.
L'archive contient exactement ces fichiers complets. Le history beta.1 est livré séparément ; le history rc.1 sera produit après la gate opérateur.
Gate opérateur de release candidate
Après application du history PASS de beta.1, commit/push de cette tranche, puis application du présent delta :
test "$(cat VERSION)" = '0.0.5-rc.1'
git cat-file -e HEAD:history/0.0.5/beta.1.md
test -f history/0.0.5/beta.1.md
test -f deltas/0.0.5/rc.1.md
test -f prompts/006-V0_1_0_START_PROMPT.md
test ! -e history/0.0.5/rc.1.md
grep -A2 '^## Statut$' history/0.0.5/beta.1.md | grep -Fx 'PASS'
grep -Fx '<!-- version: 8 -->' CHANGELOG.md
grep -Fx '## 0.0.5 (candidate)' CHANGELOG.md
grep -Fx '<!-- version: 14 -->' docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
grep -Fx '<!-- version: 7 -->' ROADMAP.md
grep -Fx '<!-- version: 1 -->' prompts/006-V0_1_0_START_PROMPT.md
grep -F 'La gate opérateur de `beta.1` est `PASS`' docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
grep -F '(d) skeleton Tauri pour projets contrôlés' ROADMAP.md
grep -F 'Le skeleton Tauri contrôlé reste `DEFER`' prompts/006-V0_1_0_START_PROMPT.md
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
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',
}
histories = {path.name for path in Path('history/0.0.5').glob('*.md')}
assert histories == set(expected), histories
for name, status in expected.items():
text = Path('history/0.0.5', name).read_text(encoding='utf-8')
assert re.search(rf'## Statut\s+{status}\s', text), (name, status)
deltas = {path.name for path in Path('deltas/0.0.5').glob('*.md')}
assert deltas == set(expected) | {'rc.1.md'}, deltas
changelog = Path('CHANGELOG.md').read_text(encoding='utf-8')
assert '## 0.0.5 (candidate)' in changelog
for forbidden in ('alpha.6.fix.3', 'alpha.7.fix.1', 'beta.1'):
assert forbidden not in changelog, forbidden
roadmap = Path('ROADMAP.md').read_text(encoding='utf-8')
assert '- `( ) 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
prompt = Path('prompts/006-V0_1_0_START_PROMPT.md').read_text(encoding='utf-8')
for value in (
'pgr-v0.0.5.zip',
'pgr-0.0.5-publish.001-report.md',
'0.1.0-alpha.1',
'Le skeleton Tauri contrôlé reste `DEFER`',
"revue d'horizon avant la clôture stable",
):
assert value in prompt, value
for path in (
'scripts/audit_rust_item_spacing.py',
'scripts/audit_rust_module_order.py',
'scripts/audit_rust_reexport_blocks.py',
'scripts/audit_rust_trait_import_blocks.py',
'scripts/audit_rust_export_completeness.py',
):
assert Path(path).is_file(), path
assert Path('docs/rules/710-TAURI.md').is_file()
assert not any(Path('docs/skeletons').glob('003-TAURI*.md'))
print('0.0.5 rc.1 integration audit: clean (16 prior histories, frozen scope, candidate changelog, roadmap/prompt 006 verified)')
PYGATE
git diff --check
git add VERSION CHANGELOG.md \
docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md \
deltas/0.0.5/rc.1.md
git diff --cached --check
git status --short
Le scope attendu avant ajout du history est exactement :
M CHANGELOG.md
M VERSION
A deltas/0.0.5/rc.1.md
M docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
Revue opérateur complémentaire
Confirmer que le changelog décrit les capacités de la release plutôt que ses tranches internes, que le DEFER Tauri reste visible sans numéro de release, que les trois autres candidats d'horizon ne sont pas promus en roadmap, que le prompt 006 ne présume aucune publication post-tag et que la RC n'étend pas le périmètre fonctionnel.
Une gate RC PASS n'est ni la promotion stable, ni le tag v0.0.5, ni la vérification de l'archive publiée après le tag.
Transition
PASS
Produire séparément history/0.0.5/rc.1.md, l'appliquer puis committer/pousser la RC avant le delta stable rel.001.
FAIL
Consigner l'échec réel dans history/0.0.5/rc.1.md et corriger uniquement le scope gelé dans rc.1.fix.1, sauf REPLAN explicite si la candidate révèle un défaut fonctionnel plus large.