Files
pgr/deltas/0.0.5/alpha.6.fix.3.md

5.6 KiB

Delta 0.0.5-alpha.6.fix.3 — politique de versions Tauri/frontend

Baseline et version

Baseline attendue : commit opérateur complet de 0.0.5-alpha.6.fix.2, réalisé après application de history/0.0.5/alpha.6.fix.2.md avec statut FAIL.

Version après application :

0.0.5-alpha.6.fix.3

Motif

La gate mécanique de alpha.6.fix.2 est propre, mais la revue fonctionnelle identifie une convention mal généralisée : KSP et Games ont tous deux utilisé l'omission de tauri.conf.json > version et une package.json > version rarement synchronisée comme moyen de réduire le churn des prereleases. PGR ne doit pas transformer cette solution historique en obligation.

L'objectif réel est de conserver VERSION comme identité exacte de travail tout en évitant de modifier les miroirs produit qui n'ont pas besoin de suivre chaque alpha, .fix, beta ou RC.

Scope

REPLACE :

VERSION
docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
docs/rules/200-GOVERNANCE.md
docs/rules/710-TAURI.md
docs/studies/001-KSP_GAMES_RECONCILIATION.md

ADD :

deltas/0.0.5/alpha.6.fix.3.md

DELETE : aucun.

Décisions

Le fix rétablit une classification explicite des valeurs de version :

  • CANONICAL pour VERSION ;
  • MIRROR-EXACT pour les miroirs techniques qui doivent suivre chaque prerelease ;
  • MIRROR-STABLE pour les champs qui portent seulement la cible X.Y.Z ;
  • catégories indépendantes pour compteurs, schémas et révisions documentaires.

Pour une application Tauri contrôlée appartenant au même produit, tauri.conf.json > version et package.json > version, lorsqu'ils sont conservés, SHOULD être MIRROR-STABLE par défaut et porter X.Y.Z pendant tout le développement de cette cible. Ils ne sont pas modifiés uniquement pour passer de alpha.N à un autre alpha/fix/beta/RC.

Si des bundles prerelease sont réellement distribués et doivent être identifiables séparément, le projet MAY sélectionner MIRROR-EXACT ou une politique de jalons de packaging documentée. L'omission d'un champ reste possible lorsqu'il est réellement inutile, mais elle n'est plus la stratégie PGR recommandée uniquement pour éviter le churn.

La revue obligatoire déclenchée par .fix.3 conclut CONTINUE : alpha.6 reste bornée au profil Tauri ; alpha.7, alpha.8 et alpha.9 conservent leurs scopes distincts.

Hors scope

Ce fix ne modifie ni les règles Rust strictes prévues en alpha.7, ni les audits de formatage de alpha.8, ni le skeleton Tauri de alpha.9. Il ne modifie pas non plus la politique Cargo existante de 510-RUST_CARGO.md.

Validation opérateur

Après application du history FAIL de alpha.6.fix.2, commit/push de cette tranche, puis application du présent fix :

test "$(cat VERSION)" = '0.0.5-alpha.6.fix.3'
test -f history/0.0.5/alpha.6.fix.2.md
test -f deltas/0.0.5/alpha.6.fix.3.md
test ! -e history/0.0.5/alpha.6.fix.3.md

grep -A2 '^## Statut$' history/0.0.5/alpha.6.fix.2.md | grep -Fx 'FAIL'
grep -Fx '<!-- version: 4 -->' docs/rules/200-GOVERNANCE.md
grep -Fx '<!-- version: 4 -->' docs/rules/710-TAURI.md
grep -Fx '<!-- version: 7 -->' docs/studies/001-KSP_GAMES_RECONCILIATION.md
grep -Fx '<!-- version: 8 -->' docs/plans/005-V0_0_5_RECONCILIATION_PLAN.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 - <<'PY'
from pathlib import Path
import re

history = Path("history/0.0.5/alpha.6.fix.2.md").read_text(encoding="utf-8")
assert re.search(r"## Statut\s+FAIL\s", history)

governance = Path("docs/rules/200-GOVERNANCE.md").read_text(encoding="utf-8")
for phrase in (
    "MIRROR-EXACT",
    "MIRROR-STABLE",
    "Seul un `MIRROR-EXACT` est normalement modifié à chaque changement de `VERSION`.",
    "PGR MUST NOT imposer la suppression d'un champ utile uniquement pour éviter de le modifier à chaque prerelease",
):
    assert phrase in governance, phrase

tauri = Path("docs/rules/710-TAURI.md").read_text(encoding="utf-8")
for phrase in (
    "PGR MUST NOT imposer l'une de ces deux formes uniquement pour réduire le nombre de fichiers modifiés.",
    "la politique recommandée lorsque les prereleases ne sont pas distribuées comme produits installables distincts est `MIRROR-STABLE`",
    "tauri.conf.json version         = X.Y.Z",
    "package.json version            = X.Y.Z",
    "remplace explicitement les conventions historiques KSP/Games",
):
    assert phrase in tauri, phrase

plan = Path("docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md").read_text(encoding="utf-8")
assert "`alpha.6.fix.3` restaure la classification générale" in plan
assert "résultat `CONTINUE`" in plan

print("0.0.5 alpha.6.fix.3 version policy audit: clean (canonical/exact/stable mirrors classified, Tauri/frontend churn bounded)")
PY

git diff --check

git add VERSION \
    docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md \
    docs/rules/200-GOVERNANCE.md docs/rules/710-TAURI.md \
    docs/studies/001-KSP_GAMES_RECONCILIATION.md \
    deltas/0.0.5/alpha.6.fix.3.md

git diff --cached --check
git status --short

La sortie Git attendue avant ajout du history est exactement :

M  VERSION
A  deltas/0.0.5/alpha.6.fix.3.md
M  docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
M  docs/rules/200-GOVERNANCE.md
M  docs/rules/710-TAURI.md
M  docs/studies/001-KSP_GAMES_RECONCILIATION.md