Files
games/docs/validation/001-VALIDATION_GATES.md

62 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- file: docs/validation/001-VALIDATION_GATES.md -->
<!-- version: 5 -->
# Gates de validation
## Responsabilité
Les audits Python peuvent être exécutés pendant la préparation d'un delta. Sauf demande explicite contraire, les commandes Cargo finales sont exécutées par l'utilisateur sur le workspace local.
Le générateur ne marque jamais une commande Cargo comme propre s'il ne dispose que du résultat d'un delta antérieur.
## Gate normale dun delta Rust
Lorsquun delta modifie du code Rust, la validation commence par un formatage mutatif volontaire :
```bash
cargo fmt --all
cargo fmt --all -- --check
```
Les modifications exclusivement produites par `cargo fmt --all` nimposent pas dincrémenter `// version: N`, car elles font partie de la préparation du même état avant commit.
Les audits et gates de compilation restent ensuite :
```bash
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
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
```
Les tests sont ciblés par défaut :
```bash
cargo test -p <crate-affectée> --all-targets --all-features
```
Le fichier delta énumère les crates à tester. `cargo test --workspace --all-targets --all-features` nest demandé systématiquement quau démarrage dune nouvelle version `X.Y.Z`, vers la fin dune phase/version, après un changement transversal important ou lorsque limpact réel ne permet pas de sélectionner avec confiance les tests ciblés.
## Smokes Desktop
Lorsqu'un delta modifie la boucle exécutable, le runtime ou le comportement visible des runners Desktop, exécuter également :
```bash
cargo run -p game-reflex-poc-desktop
cargo run -p game-snake-poc-desktop
```
Les smokes `cargo run` ne remplacent pas la gate de tests.
## Transition vers le delta suivant
Si toutes les commandes demandées sont propres, le delta courant est validé et le travail peut passer automatiquement au prochain delta de la roadmap, sauf avis contraire de l'utilisateur.
Si une commande échoue, ne pas avancer de prerelease. Produire un correctif du delta courant, par exemple `0.1.0-0-pre.3.fix.1`, puis rejouer la gate demandée.
## Android et Web
Le build Android n'est pas encore une gate : le projet Gradle exécutable et l'intégration SDL3/NDK restent planifiés pour une prerelease dédiée. Dès leur introduction, les tâches ciblées par module sont documentées avant d'être rendues obligatoires.
La cible Web suit la même règle : aucune gate Web n'est inventée avant l'existence de son build réel.