# 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.