v0.0.2
This commit is contained in:
144
deltas/0.0.2/pre.001-fix.003.md
Normal file
144
deltas/0.0.2/pre.001-fix.003.md
Normal file
@@ -0,0 +1,144 @@
|
||||
<!-- file: deltas/0.0.2/pre.001-fix.003.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.0.2-pre.001-fix.003`
|
||||
|
||||
## Base requise
|
||||
|
||||
- dépôt KSP initialisé et `0.0.1` commitée ;
|
||||
- `0.0.2-pre.001` appliquée ;
|
||||
- correctifs `fix.001` et `fix.002` appliqué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.NNN` comme 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 :
|
||||
|
||||
```text
|
||||
0.0.2-pre.1.fix.3
|
||||
```
|
||||
|
||||
## Fichiers ajoutés
|
||||
|
||||
```text
|
||||
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
|
||||
|
||||
```text
|
||||
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
|
||||
|
||||
```text
|
||||
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 :
|
||||
|
||||
```text
|
||||
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.md` reste 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`
|
||||
|
||||
```bash
|
||||
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_code` sur la fonction privée de production et `missing_docs` sur 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
|
||||
|
||||
```bash
|
||||
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.NNN` doit ê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`.
|
||||
Reference in New Issue
Block a user