7.6 KiB
Matrice normative des commandes et validations
Principes
La matrice associe un identifiant stable à chaque famille de commandes. Le delta sélectionne les commandes applicables selon les fichiers touchés, leurs dépendances et la phase de maturité.
Une commande dépendante n'est exécutée que lorsque ses prérequis applicables sont propres.
Les commandes ciblées restent la norme pendant l'implémentation ; les gates workspace et les smokes de distribution deviennent plus larges à mesure que la version approche de beta/RC.
Matrice
| ID | Commande / action | Dépend de | Déclencheur principal | Phase minimale typique |
|---|---|---|---|---|
CMD-001 |
cargo fmt --all |
— | source Rust modifié | pre |
CMD-002 |
cargo fmt --all -- --check |
CMD-001 si formatage requis |
source Rust modifié | pre |
CMD-010 |
python3 scripts/audit_rust_workspace_rules.py |
— | Rust/workspace/règles Rust | pre |
CMD-011 |
python3 scripts/audit_markdown_tables.py ... |
— | Markdown/règles/docs | pre |
CMD-012 |
python3 scripts/audit_distribution_layout.py |
— | layout/build/distribution | pre |
CMD-020 |
cargo check -p <crate> |
CMD-002, CMD-010 |
crate Rust ciblée | pre |
CMD-021 |
cargo test -p <crate> --all-targets --all-features |
CMD-020 |
comportement/API crate | pre |
CMD-022 |
tests des crates consommatrices impactées | CMD-021 |
API publique/contrat partagé modifié | pre |
CMD-023 |
cargo check --workspace |
audits applicables | changement transverse / gate globale | selon portée |
CMD-024 |
cargo clippy --workspace --all-targets --all-features -- -D warnings |
CMD-023 |
gate complète | alpha/beta/RC |
CMD-025 |
cargo test --workspace --all-targets --all-features |
CMD-024 |
changement transverse / frontière de phase | beta/RC |
CMD-030 |
build Desktop --release ciblé |
gates Rust applicables | runner/distribution Desktop touché | beta |
CMD-031 |
smoke Desktop release | CMD-030 |
runtime Desktop touché | beta |
CMD-040 |
cargo tauri build |
gates Rust/frontend applicables | périmètre Tauri touché | beta |
CMD-041 |
smoke Tauri release | CMD-040 |
runtime Tauri touché | beta |
CMD-050 |
build Rust Android ABI ciblé | gates Rust applicables | Android/JNI/backend natif touché | pre/beta |
CMD-051 |
Gradle assembleDebug application ciblée |
CMD-050 lorsque Rust natif change |
Android/app/manifest/Java touché | pre/beta |
CMD-052 |
install + smoke AVD | CMD-051 |
Android concerné | beta |
CMD-053 |
install + smoke appareil réel | CMD-051 |
Android concerné | beta/RC |
CMD-060 |
cargo clean --dry-run --verbose |
— | contrôle disque / préparation nettoyage | maintenance |
CMD-061 |
cargo clean |
décision explicite de nettoyage | accumulation disque / jalon de cycle | maintenance |
CMD-062 |
cargo clean -p <package> ou nettoyage par --release / --profile / --target |
— | nettoyage ciblé suffisant | maintenance |
Dépendances entre crates
Lorsqu'une crate A change :
- exécuter les validations ciblées de
A; - déterminer les consommateurs dont le contrat est affecté ;
- exécuter les validations ciblées des consommateurs concernés ;
- passer aux gates workspace lorsque la portée ne peut plus être bornée raisonnablement ou lorsqu'une frontière de maturité l'exige.
Une modification interne sans changement de contrat ne force pas mécaniquement tous les consommateurs transitifs à être retestés.
Une modification d'API publique, de représentation partagée, de feature structurante ou de comportement contractuel élargit la portée des tests.
Nettoyage Cargo et contrôle disque
Le projet utilise ../builds/sasedev-games/target comme target-dir. Cette zone peut accumuler plusieurs profils, triples cibles, artefacts incrémentaux et anciennes variantes au cours d'un cycle de développement.
La politique est donc double :
- utiliser
CMD-062lorsqu'un nettoyage ciblé suffit ; - utiliser
CMD-061périodiquement afin d'éviter une croissance non bornée du répertoire de build.
Le nettoyage complet est normalement positionné au début d'un nouveau cycle de développement lorsque l'on souhaite évacuer les artefacts de la version précédente, ou avant une validation finale RC/stable lorsqu'un rebuild propre est recherché et que l'espace disque le justifie.
Le delta ou le plan de version indique quel jalon de nettoyage est retenu. Il n'est pas nécessaire d'exécuter cargo clean à chaque prerelease.
Vérification des versions d'en-tête
Avant livraison d'un delta :
- fichier modifié réellement et déjà versionné → en-tête incrémenté ;
- fichier uniquement reformaté mécaniquement → en-tête inchangé ;
- nouveau fichier versionné →
version: 1sauf règle spécialisée ; - renommage modifiant
file:→ en-tête incrémenté ; - delta antérieur → aucun ajout sémantique rétroactif.
Cette vérification fait partie de la revue de livraison même lorsqu'aucun audit automatisé ne dispose encore de la version précédente pour comparer.