Files
sasedev-knowledge/history/0.0.1/alpha.5.md
2026-09-28 09:50:20 +02:00

2.5 KiB

History 0.0.1-alpha.5 — composition Actix/Maud et manifest Vite

Statut

FAIL

La gate technique de 0.0.1-alpha.5 exécutée le 2026-09-28 est propre, mais la revue opérateur relève avant clôture une non-conformité avec la convention de layout Rust souhaitée pour Knowledge : les tests unitaires sont implémentés sous src/unit_tests.rs au lieu d'une arborescence unit_tests/ séparée.

Baseline

alpha.4.fix.2 PASS a été historisé, committé et poussé avant application d'alpha.5.

history/0.0.1/alpha.4.fix.2.md = PASS
commit       8f6f072
message      0.0.1-alpha.4.fix.2
branch       master
push         origin/master PASS

Preuves techniques PASS

La structure alpha.5 est propre.

La baseline Web passe :

npm ci       PASS
typecheck    PASS
vite build   PASS

Les audits Rust PGR passent sur 17 fichiers et 7 packages.

Cargo et Clippy strict passent.

Les tests workspace passent :

knowledge-domain-lib : 3 PASS
knowledge-git-api    : 1 PASS
knowledge-sync-api   : 1 PASS
knowledge-web-lib    : 4 PASS
launchers            : 0 test chacun

Le manifest Vite est valide.

Les trois smokes HTTP production passent :

knowledge-pgr-server      PASS
knowledge-howtos-server   PASS
knowledge-snippets-server PASS

git diff --cached --check est propre.

Défaut de gouvernance/layout

Le staging contient notamment :

crates/knowledge-web-lib/src/unit_tests.rs

et les trois crates introduites plus tôt possèdent également leur src/unit_tests.rs.

PGR 0.1.1 ne rend pas ce layout globalement obligatoire : il indique qu'un workspace MAY adopter une arborescence unit_tests/ séparée et miroir de src/.

Knowledge sélectionne maintenant explicitement cette option comme convention locale obligatoire.

La tranche ne peut donc pas être fermée PASS tant que la workspace conserve ses tests unitaires dans src/.

Décision

0.0.1-alpha.5 est FAIL.

La transition autorisée est :

0.0.1-alpha.5.fix.1

Le fix doit être global et non limité à knowledge-web-lib :

  • déplacer les tests unitaires existants sous unit_tests/ ;
  • rattacher les fichiers de tests aux modules source avec #[cfg(test)] + #[path = "..."] ;
  • réserver tests/ aux tests d'intégration Cargo ;
  • formaliser la convention dans RULES.md ;
  • automatiser le contrôle du layout ;
  • rejouer l'intégralité des gates Rust/Web/HTTP sans changement fonctionnel.