145 lines
3.7 KiB
Markdown
145 lines
3.7 KiB
Markdown
<!-- file: docs/testing/003-RC_VALIDATION_MATRIX.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Matrice de validation RC 0.1.0
|
|
|
|
## Objectif
|
|
|
|
La phase RC n'ajoute aucune fonctionnalité au socle `0.1.0`.
|
|
|
|
Elle vérifie qu'un état candidat peut être reproduit, packagé et promu en stable sans modification fonctionnelle.
|
|
|
|
## Gel fonctionnel
|
|
|
|
Pendant `3-rc.*`, les changements admis sont limités à :
|
|
|
|
- correction d'un défaut ;
|
|
- correction de packaging ou de build release ;
|
|
- correction documentaire de livraison ;
|
|
- compatibilité nécessaire à la distribution ;
|
|
- sécurité ou conformité bloquant la release.
|
|
|
|
Tout nouveau gameplay ou nouvelle capacité est reporté après `0.1.0`.
|
|
|
|
## Gate statique et Rust
|
|
|
|
```bash
|
|
cargo fmt --all
|
|
cargo fmt --all -- --check
|
|
|
|
python3 scripts/audit_rust_workspace_rules.py
|
|
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates Android deltas history
|
|
python3 scripts/audit_distribution_layout.py
|
|
|
|
cargo check --workspace
|
|
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
|
cargo test --workspace --all-targets --all-features
|
|
```
|
|
|
|
## Desktop SDL3 natif
|
|
|
|
Build release :
|
|
|
|
```bash
|
|
cargo build -p game-reflex-poc-desktop --release
|
|
cargo build -p game-snake-poc-desktop --release
|
|
```
|
|
|
|
Smoke sur les binaires produits sous le répertoire externe de build :
|
|
|
|
```bash
|
|
../builds/sasedev-games/target/release/game-reflex-poc-desktop
|
|
../builds/sasedev-games/target/release/game-snake-poc-desktop
|
|
```
|
|
|
|
Critères :
|
|
|
|
- démarrage ;
|
|
- rendu ;
|
|
- contrôles ;
|
|
- sortie propre ;
|
|
- aucune dépendance à un fichier généré dans le dépôt.
|
|
|
|
## Tauri / WASM
|
|
|
|
Build candidat :
|
|
|
|
```bash
|
|
cd crates/apps/game-reflex-poc-tauri
|
|
cargo tauri build
|
|
cd ../../..
|
|
```
|
|
|
|
Ne pas lancer `npm run build` comme gate manuelle indépendante.
|
|
|
|
Critères :
|
|
|
|
- build WASM piloté par le hook ;
|
|
- Vite/TypeScript piloté par le hook ;
|
|
- frontend généré hors racine de build interdite ;
|
|
- binaire Tauri release produit ;
|
|
- smoke Reflex ;
|
|
- tracing Rust/TypeScript ;
|
|
- `Escape` ferme proprement.
|
|
|
|
## Android x86_64 / API 36
|
|
|
|
```bash
|
|
python3 scripts/build_android_rust.py reflex --abi x86_64
|
|
python3 scripts/build_android_rust.py snake --abi x86_64
|
|
|
|
cd Android
|
|
gradle :game-reflex-poc:assembleDebug
|
|
gradle :game-snake-poc:assembleDebug
|
|
cd ..
|
|
```
|
|
|
|
Déployer les deux APK sur l'AVD de référence et revalider :
|
|
|
|
- démarrage ;
|
|
- tactile ;
|
|
- logcat ;
|
|
- Back système ;
|
|
- arrêt propre.
|
|
|
|
## Android ARM64 réel
|
|
|
|
```bash
|
|
python3 scripts/build_android_rust.py reflex --abi arm64-v8a
|
|
python3 scripts/build_android_rust.py snake --abi arm64-v8a
|
|
|
|
cd Android
|
|
gradle :game-reflex-poc:assembleDebug
|
|
gradle :game-snake-poc:assembleDebug
|
|
cd ..
|
|
```
|
|
|
|
Déployer sur l'appareil ARM64 de référence et revalider Reflex et Snake.
|
|
|
|
## Artefacts et signature
|
|
|
|
Les secrets de publication ne font pas partie du dépôt.
|
|
|
|
Avant publication stable, vérifier séparément :
|
|
|
|
- identité/package final ;
|
|
- `versionCode` Android approprié ;
|
|
- keystore/signing Android disponible hors dépôt ;
|
|
- artefacts Desktop/Tauri attendus ;
|
|
- licences et assets distribuables ;
|
|
- absence de secrets dans l'archive/repository ;
|
|
- provenance exacte du commit/tag de release.
|
|
|
|
La RC peut être validée fonctionnellement avec les artefacts de test existants ; la publication vers un store exige ensuite les credentials externes correspondants.
|
|
|
|
## Promotion stable
|
|
|
|
`0.1.0-3-rc.1` peut être promue vers `0.1.0` uniquement si :
|
|
|
|
- toutes les gates ci-dessus sont propres ;
|
|
- aucun défaut fonctionnel ou packaging n'est ouvert ;
|
|
- aucune modification de code n'est nécessaire après la dernière validation ;
|
|
- la documentation de release correspond exactement aux artefacts validés.
|
|
|
|
Si un défaut apparaît, produire `0.1.0-3-rc.1.fix.N` et recommencer la gate affectée.
|