Files
khadhroony-solana-project/deltas/0.0.2/pre.001-fix.003.md
2026-08-13 16:09:07 +02:00

5.0 KiB

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 :

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.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

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

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.