0.0.5-alpha.6
This commit is contained in:
189
deltas/0.0.5/alpha.6.md
Normal file
189
deltas/0.0.5/alpha.6.md
Normal file
@@ -0,0 +1,189 @@
|
||||
<!-- file: deltas/0.0.5/alpha.6.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.0.5-alpha.6 — premier profil framework : Tauri 2
|
||||
|
||||
## Baseline et version
|
||||
|
||||
Baseline attendue : commit opérateur complet de `0.0.5-alpha.5.fix.1`, réalisé après application de `history/0.0.5/alpha.5.fix.1.md` avec statut `PASS`.
|
||||
|
||||
Version avant application :
|
||||
|
||||
```text
|
||||
0.0.5-alpha.5.fix.1
|
||||
```
|
||||
|
||||
Version après application :
|
||||
|
||||
```text
|
||||
0.0.5-alpha.6
|
||||
```
|
||||
|
||||
## Scope
|
||||
|
||||
REPLACE :
|
||||
|
||||
```text
|
||||
VERSION
|
||||
RULES.md
|
||||
docs/000-README.md
|
||||
docs/architecture/003-RULE_PROFILE_MODEL.md
|
||||
docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
|
||||
docs/rules/000-README.md
|
||||
docs/studies/001-KSP_GAMES_RECONCILIATION.md
|
||||
```
|
||||
|
||||
ADD :
|
||||
|
||||
```text
|
||||
docs/rules/700-FRAMEWORKS.md
|
||||
docs/rules/710-TAURI.md
|
||||
deltas/0.0.5/alpha.6.md
|
||||
```
|
||||
|
||||
DELETE : aucun.
|
||||
|
||||
Le history `alpha.5.fix.1` appartient au commit baseline et n'est pas inclus dans l'archive du présent delta.
|
||||
|
||||
## Preuve de généralisation
|
||||
|
||||
Les baselines autoritaires étudiées en `alpha.1` contiennent :
|
||||
|
||||
```text
|
||||
KSP 0.3.16 6 applications Tauri
|
||||
Games 0.3.5 2 applications Tauri
|
||||
```
|
||||
|
||||
Les huit applications utilisent Tauri 2 avec un host Rust/Cargo, `tauri-build`, `tauri.conf.json`, des capability files, des hooks frontend et un `frontendDist`. Elles divergent en revanche sur fenêtres, ports, CSP, bundling, plugins, ressources et contenu réel des hooks.
|
||||
|
||||
Le profil normalise donc les responsabilités et l'orchestration communes, pas ces valeurs locales.
|
||||
|
||||
## Décisions matérialisées
|
||||
|
||||
### Famille `700 — frameworks`
|
||||
|
||||
`700-FRAMEWORKS.md` devient l'owner des règles communes aux frameworks : composition avec les owners langage/plateforme, ownership des commandes d'intégration, classification des artefacts générés, cohérence de version produit et validation proportionnée.
|
||||
|
||||
La famille interdit notamment de supposer qu'un framework absorbe automatiquement son frontend, sa plateforme ou son package manager.
|
||||
|
||||
### Profil `710 — Tauri 2`
|
||||
|
||||
Le profil Tauri :
|
||||
|
||||
- se compose au-dessus de Rust/Cargo et des plateformes réellement ciblées ;
|
||||
- ne rend pas Vite, WASM, TypeScript ou npm obligatoires ;
|
||||
- ne rend pas `src-tauri/` obligatoire lorsque la toolchain supporte clairement un autre layout ;
|
||||
- possède l'orchestration via le CLI Tauri lorsque les hooks/config/capabilities/bundles sont concernés ;
|
||||
- distingue un check Rust, un build frontend et une preuve d'intégration Tauri ;
|
||||
- préfère une chaîne de version unique `VERSION → workspace Cargo → package host → Tauri` lorsque l'application partage le release train et que la configuration Tauri peut omettre sa propre version ;
|
||||
- traite les capability files comme source de sécurité intentionnelle ;
|
||||
- ne généralise ni plugins, CSP, fenêtres, bundles, ports ni ressources des corpus ;
|
||||
- ne généralise pas l'ignorance de tout `gen/`, car un projet mobile généré peut recevoir des personnalisations intentionnelles ;
|
||||
- sélectionne `tauri dev/build` ou leur équivalent seulement lorsque la propriété à prouver le justifie.
|
||||
|
||||
### Pas de skeleton dans cette tranche
|
||||
|
||||
`alpha.6` ne crée aucun `tauri.conf.json`, package frontend, template Tauri ou skeleton. La décision de matérialiser une specialization Tauri appartient explicitement à `alpha.7`.
|
||||
|
||||
## Validation opérateur
|
||||
|
||||
Après application du history `PASS` de `alpha.5.fix.1`, commit/push de cette tranche, puis application du présent delta :
|
||||
|
||||
```bash
|
||||
test "$(cat VERSION)" = '0.0.5-alpha.6'
|
||||
test -f history/0.0.5/alpha.5.fix.1.md
|
||||
test -f deltas/0.0.5/alpha.6.md
|
||||
test -f docs/rules/700-FRAMEWORKS.md
|
||||
test -f docs/rules/710-TAURI.md
|
||||
test ! -e history/0.0.5/alpha.6.md
|
||||
|
||||
grep -A2 '^## Statut$' history/0.0.5/alpha.5.fix.1.md | grep -Fx 'PASS'
|
||||
grep -Fx '<!-- version: 11 -->' RULES.md
|
||||
grep -Fx '<!-- version: 13 -->' docs/rules/000-README.md
|
||||
grep -Fx '<!-- version: 4 -->' docs/architecture/003-RULE_PROFILE_MODEL.md
|
||||
grep -Fx '<!-- version: 1 -->' docs/rules/700-FRAMEWORKS.md
|
||||
grep -Fx '<!-- version: 1 -->' docs/rules/710-TAURI.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.5.fix.1.md').read_text(encoding='utf-8')
|
||||
assert re.search(r'## Statut\s+PASS\s', history)
|
||||
|
||||
frameworks = Path('docs/rules/700-FRAMEWORKS.md').read_text(encoding='utf-8')
|
||||
for phrase in (
|
||||
'# Règles de profils framework',
|
||||
"Ownership des commandes d'intégration",
|
||||
'PGR MUST NOT appliquer une règle globale « tout `gen/` est ignoré »',
|
||||
'Les profils spécifiques utilisent la plage `710` à `799`.',
|
||||
):
|
||||
assert phrase in frameworks, phrase
|
||||
|
||||
tauri = Path('docs/rules/710-TAURI.md').read_text(encoding='utf-8')
|
||||
for phrase in (
|
||||
'# Profil Tauri 2',
|
||||
'PGR MUST NOT imposer Vite, TypeScript, npm, pnpm, yarn, Bun, WASM',
|
||||
"le CLI Tauri est l'owner de l'orchestration",
|
||||
'VERSION
|
||||
↓
|
||||
workspace.package.version
|
||||
↓
|
||||
package Cargo du host
|
||||
↓
|
||||
version applicative Tauri',
|
||||
'PGR MUST NOT appliquer en revanche une exclusion universelle de tout répertoire `gen/`',
|
||||
'## Validation proportionnée',
|
||||
'de `tauri.conf.json` universel',
|
||||
):
|
||||
assert phrase in tauri, phrase
|
||||
|
||||
study = Path('docs/studies/001-KSP_GAMES_RECONCILIATION.md').read_text(encoding='utf-8')
|
||||
assert 'KSP contient `6` applications Desk Tauri et Games `2` hôtes Tauri' in study
|
||||
assert 'Décision `alpha.6` : classer Tauri `COMMON`' in study
|
||||
|
||||
plan = Path('docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md').read_text(encoding='utf-8')
|
||||
assert '`6` applications Tauri KSP et `2` applications Tauri Games' in plan
|
||||
assert 'La tranche active `700-FRAMEWORKS.md` et `710-TAURI.md`.' in plan
|
||||
|
||||
print('0.0.5 alpha.6 Tauri profile audit: clean (700 activated, Tauri 2 responsibilities bounded, no frontend/layout overreach)')
|
||||
PY
|
||||
|
||||
git diff --check
|
||||
|
||||
git add VERSION RULES.md docs/000-README.md docs/architecture/003-RULE_PROFILE_MODEL.md docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md docs/rules/000-README.md docs/rules/700-FRAMEWORKS.md docs/rules/710-TAURI.md docs/studies/001-KSP_GAMES_RECONCILIATION.md deltas/0.0.5/alpha.6.md
|
||||
|
||||
git diff --cached --check
|
||||
git status --short
|
||||
```
|
||||
|
||||
La sortie Git attendue avant ajout du history `alpha.6` est exactement :
|
||||
|
||||
```text
|
||||
M RULES.md
|
||||
M VERSION
|
||||
A deltas/0.0.5/alpha.6.md
|
||||
M docs/000-README.md
|
||||
M docs/architecture/003-RULE_PROFILE_MODEL.md
|
||||
M docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
|
||||
M docs/rules/000-README.md
|
||||
A docs/rules/700-FRAMEWORKS.md
|
||||
A docs/rules/710-TAURI.md
|
||||
M docs/studies/001-KSP_GAMES_RECONCILIATION.md
|
||||
```
|
||||
|
||||
## Transition
|
||||
|
||||
### PASS
|
||||
|
||||
Créer/appliquer `history/0.0.5/alpha.6.md`, committer/pousser `0.0.5-alpha.6`, puis poursuivre à `0.0.5-alpha.7` pour décider si une skeleton specification Tauri apporte réellement une valeur de composition au-dessus des profils existants.
|
||||
|
||||
### FAIL
|
||||
|
||||
Rester dans `0.0.5-alpha.6.fix.M` ou REPLAN si le profil exige encore une valeur applicative arbitraire. Aucun skeleton Tauri ne doit être créé tant que le profil framework n'est pas correctement fermé.
|
||||
Reference in New Issue
Block a user