0.0.1-alpha.5.fix.1

This commit is contained in:
2026-09-28 10:02:47 +02:00
parent c17b7068a3
commit a1b56af8ed
23 changed files with 427 additions and 55 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/001-VALIDATION_MATRIX.md -->
<!-- version: 11 -->
<!-- version: 12 -->
# Matrice de validation Knowledge
@@ -316,3 +316,50 @@ La composition serveur doit prouver :
- audits Rust PGR, `cargo check`, Clippy strict et tests ciblés `PASS` ;
- smoke HTTP production `PASS` pour les trois launchers avec ports de test injectés par environnement ;
- `Cargo.lock` mis à jour/versionné et staging propre.
## Convention locale des tests Rust
Knowledge sélectionne la convention PGR optionnelle suivante comme règle locale obligatoire :
```text
crate/
src/
unit_tests/
tests/
```
`unit_tests/` contient les tests unitaires attachés aux modules source par `#[path = "..."]`.
`tests/` contient exclusivement les tests d'intégration Cargo qui consomment l'API publique.
La gate Rust ajoute :
```text
python3 -B scripts/audit_rust_test_layout.py crates
```
Cet audit doit refuser notamment :
- un attribut `#[test]` dans `src/` ;
- un fichier `src/unit_tests.rs` ou `src/tests.rs` ;
- un `mod unit_tests;` classique sous `src/` ;
- un fichier sous `unit_tests/` qui n'est référencé par aucun `#[path = "..."]` d'un source de la crate.
## Gate de `0.0.1-alpha.5.fix.1`
Le fix de layout des tests doit prouver :
- `VERSION = 0.0.1-alpha.5.fix.1` et version workspace identique ;
- history `alpha.5` `FAIL` committé avant application ;
- suppression exacte des quatre anciens `src/unit_tests.rs` via le manifest de suppression ;
- tests unitaires sous `unit_tests/` hors de `src/` pour `knowledge-domain-lib`, `knowledge-git-api`, `knowledge-sync-api` et `knowledge-web-lib` ;
- rattachements `#[cfg(test)]` + `#[path = "..."]` depuis les modules source propriétaires ;
- aucun `#[test]` sous `crates/*/src/` ;
- `tests/` réservé aux futurs tests d'intégration Cargo ;
- `audit_rust_test_layout.py` `PASS` ;
- audits Rust PGR existants toujours `PASS`, y compris export completeness qui suit les modules `#[path]` ;
- `cargo check`, Clippy strict et `cargo test --workspace --all-targets --all-features` `PASS` ;
- baseline Web `npm ci`, typecheck et build `PASS` ;
- smoke HTTP production des trois serveurs `PASS` ;
- aucune modification fonctionnelle Actix/Maud/Vite au-delà du rattachement des tests ;
- `git diff --cached --check` propre.