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: RULES.md -->
<!-- version: 7 -->
<!-- version: 8 -->
# Règles SaseDev Knowledge
@@ -183,6 +183,27 @@ Les trois launchers MUST recevoir leur socket de bind par configuration (`KNOWLE
## Rust et crates
Knowledge sélectionne localement la convention `unit_tests/` séparée que PGR `0.1.1` autorise sans l'imposer globalement.
Pour toutes les crates Rust de ce workspace :
- les tests d'intégration Cargo MUST résider sous `tests/` et consommer l'API publique de la crate ;
- les tests unitaires MUST résider sous `unit_tests/` à la racine de la crate, en miroir logique de `src/` ;
- `src/` MUST NOT contenir de fichier d'implémentation de tests unitaires ni d'attribut `#[test]` ;
- un module source rattache son fichier de tests avec `#[cfg(test)]` et `#[path = "../unit_tests/<fichier>.rs"]` ou le chemin miroir équivalent ;
- les tests unitaires d'un item partagé continuent d'utiliser son identité crate-root conformément à PGR ;
- `tests/` MUST NOT être utilisé pour contourner la visibilité interne ou héberger des tests unitaires qui dépendent d'éléments privés.
Exemple :
```rust
#[cfg(test)]
#[path = "../unit_tests/bite.rs"]
mod tests;
```
Cette convention locale est plus stricte que le `MAY` générique de PGR, mais reste conforme à celui-ci. Si PGR doit l'imposer à tous les futurs workspaces, cette évolution appartient à une version ultérieure du référentiel PGR et non à Knowledge.
Le préfixe de crate retenu est `knowledge-`.
Les responsabilités candidates sont documentées dans l'architecture. Une crate n'est matérialisée que lorsqu'elle possède une responsabilité réelle. Le suffixe `-api` n'est utilisé que pour une frontière passive dont des implémentations distinctes/remplaçables sont réellement prévues.