Files
pgr/deltas/0.0.5/rc.1.md
2026-09-25 18:13:53 +02:00

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 DEFER du skeleton Tauri contrôlé jusqu'à matérialisation d'owners Web suffisants ;
  • la réconciliation KSP/Games et le prompt candidat 006 vers 0.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.