5.0 KiB
Delta 0.0.2-pre.001-fix.003
Base requise
- dépôt KSP initialisé et
0.0.1commitée ; 0.0.2-pre.001appliquée ;- correctifs
fix.001etfix.002appliqués dans l'arbre de travail.
Type de livraison
ksp-general-0.0.2-pre.001-fix.003.zip
Objectifs
- valider définitivement la convention séparant tests unitaires et tests d'intégration ;
- retirer le code temporaire utilisé pour l'expérience de tests ;
- réorganiser les deltas sous
deltas/<X.Y.Z>/; - généraliser la convention documentaire
000-,001-,002-lorsqu'un ordre explicite est utile, sans l'appliquer à la racine du dépôt ; - introduire
rel.NNNcomme marqueur de livraison d'une release finale, sans transformer ce marqueur en suffixe Cargo de la version finale.
Version Cargo
Cette livraison supprime/modifie des sources Rust temporaires et modifie le Cargo.toml racine. Elle constitue donc un correctif technique :
0.0.2-pre.1.fix.3
Fichiers ajoutés
deltas/0.0.2/pre.001.md
deltas/0.0.2/pre.001-fix.001.md
deltas/0.0.2/pre.001-fix.002.md
deltas/0.0.2/pre.001-fix.003.md
Les trois premiers fichiers sont les deltas historiques existants relocalisés sous la version cible 0.0.2. Leur corps historique est conservé ; leur en-tête file: et leur version de fichier sont mis à jour pour refléter la relocalisation.
Fichiers modifiés
Cargo.toml
crates/ksp-core-lib/src/lib.rs
docs/000-README.md
docs/rules/FILE_CONTRACTS.md
docs/rules/RULES_DOCUMENTATION.md
docs/rules/RULES_RUST.md
docs/rules/VERSION_WORKFLOW.md
Fichiers à supprimer
crates/ksp-core-lib/src/test_layout_probe.rs
crates/ksp-core-lib/tests/public_api.rs
crates/ksp-core-lib/tests/unit/test_layout_probe.rs
deltas/0.0.2-pre.001.md
deltas/0.0.2-pre.001-fix.001.md
deltas/0.0.2-pre.001-fix.002.md
Les répertoires devenus vides sous crates/ksp-core-lib/tests/ peuvent également être supprimés localement ; Git ne versionne pas les répertoires vides.
Décisions validées
Tests unitaires
L'expérience fix.002 est concluante : le fichier de test unitaire séparé a été exécuté dans la cible unittests de src/lib.rs, a accédé à une fonction privée du module parent et n'a pas été découvert comme cible d'intégration autonome.
La convention KSP devient donc :
unit_tests/à la racine de la crate pour les sources de tests unitaires séparées ;- arborescence miroir de
src/autant que possible ; - rattachement explicite sous
#[cfg(test)]au module testé ; - usage de
unit_tests/au maximum ; - tests dans le module de production seulement en dernier recours justifié ;
tests/réservé aux vrais tests d'intégration Cargo ;- l'API publique pertinente doit être testée par intégration lorsque techniquement possible.
Deltas
L'arbre canonique devient :
deltas/
└── <X.Y.Z>/
├── pre.001.md
├── pre.001-fix.001.md
├── pre.002.md
└── rel.001.md
Releases
Le marqueur rel.NNN appartient à l'identifiant de livraison et au nom du delta/archive. La version Cargo d'une release finale reste X.Y.Z sans -rel.N, afin de rester une version finale SemVer.
Priorité documentaire
000-README.mdreste toujours le point d'entrée prioritaire d'un répertoire documentaire ordonné ;001-,002-, etc. peuvent exprimer un ordre de lecture/priorité lorsque cela apporte une valeur réelle ;- tous les fichiers ne sont pas préfixés mécaniquement ;
- aucun préfixe numérique de ce type n'est appliqué aux fichiers situés à la racine du dépôt.
Validations exécutées par le user sur fix.002
cargo fmt --all
cargo test --workspace
cargo test -p ksp-core-lib
cargo clippy --workspace --all-targets
Résultats communiqués :
- test unitaire séparé :
1 passed; - test d'intégration public :
1 passed; - doc-tests : succès, aucun test ;
- Clippy : terminé avec seulement les warnings attendus du probe temporaire (
dead_codesur la fonction privée de production etmissing_docssur la crate de test d'intégration).
Ces warnings ne justifient aucun allow global et disparaissent avec le retrait du probe temporaire.
Validations à exécuter après application de ce correctif
cargo fmt --all
cargo check --workspace
cargo test --workspace
cargo clippy --workspace --all-targets
Le résultat attendu après suppression du probe est un workspace minimal sans test temporaire et sans warning lié à cette expérience.
Questions restant ouvertes
- structure exacte de
ROADMAP.md; - structure exacte et cadence de
CHANGELOG.md; - nomenclature formelle des environnements supportés par les applications de démonstration ;
- règle détaillée à appliquer si une livraison
rel.NNNdoit être corrigée avant son commit final.
Ces questions ne remettent pas en cause le squelette 0.0.2 ; elles doivent être closes pendant la planification fondatrice avant le prompt final ouvrant 0.1.x.