190 lines
7.1 KiB
Markdown
190 lines
7.1 KiB
Markdown
<!-- 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é.
|