0.0.1-alpha.5.fix.1
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/001-V0_0_1_FOUNDATION_PLAN.md -->
|
||||
<!-- version: 11 -->
|
||||
<!-- version: 12 -->
|
||||
|
||||
# Plan 0.0.1 — fondation SaseDev Knowledge
|
||||
|
||||
@@ -203,6 +203,18 @@ La gate doit couvrir les tests `knowledge-web-lib`, la compilation/Clippy des qu
|
||||
|
||||
La tranche ne doit pas introduire admin complète, auth complète, persistance métier complète, logging transverse artificiel ni forge obligatoire.
|
||||
|
||||
La gate technique d'`alpha.5` est verte : structure, Web, Cargo, Clippy, tests et smokes HTTP passent. La tranche reste néanmoins **FAIL** après revue opérateur de gouvernance : les tests unitaires sont encore implémentés sous `src/unit_tests.rs`, alors que Knowledge sélectionne désormais la convention PGR optionnelle `unit_tests/` séparée et miroir de `src/`.
|
||||
|
||||
Le défaut existait déjà dans les trois crates antérieures et est également introduit par `knowledge-web-lib`; il doit donc être corrigé globalement et non seulement dans la nouvelle crate.
|
||||
|
||||
`alpha.5.fix.1` :
|
||||
|
||||
- formalise cette convention locale comme `MUST` dans `RULES.md` ;
|
||||
- déplace les tests unitaires des quatre crates concernées sous `unit_tests/` ;
|
||||
- rattache les tests avec `#[cfg(test)]` + `#[path = "..."]` ;
|
||||
- conserve `tests/` pour les tests d'intégration Cargo uniquement ;
|
||||
- ajoute un audit monotâche empêchant le retour de `#[test]` ou de fichiers `unit_tests.rs` sous `src/`.
|
||||
|
||||
### beta.1 — réconciliation de fondation
|
||||
|
||||
Rejouer les gates pertinentes, réconcilier docs/architecture avec ce qui existe réellement, traiter les décisions devenues nécessaires et effectuer la revue d'horizon.
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user