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

4.9 KiB

Delta 0.0.2-pre.001-fix.001

Base requise

  • dépôt KSP initialisé ;
  • 0.0.1 commitée ;
  • livraison 0.0.2-pre.001 appliquée ;
  • prise en compte du Cargo.toml racine version 2 et du .cargo/config.toml version 1 fournis après la première livraison.

Type de livraison

ksp-general-0.0.2-pre.001-fix.001.zip

Objectif

Corriger la première proposition 0.0.2-pre.001 sans changer son périmètre : améliorer les contrats de fichiers, le README général, le formatage Rust, la politique MSRV, la documentation des crates, la version Cargo des correctifs et la réflexion sur l'organisation future des tests.

Fichiers ajoutés

.cargo/config.toml
deltas/0.0.2-pre.001-fix.001.md

Fichiers modifiés

Cargo.toml
README.md
clippy.toml
rustfmt.toml
docs/000-README.md
docs/rules/FILE_CONTRACTS.md
docs/rules/RULES_DOCUMENTATION.md
docs/rules/RULES_GENERAL.md
docs/rules/RULES_RUST.md
docs/rules/VERSION_WORKFLOW.md

Fichiers supprimés

Aucun.

Corrections et décisions incorporées

  • le README racine décrit désormais le projet KSP lui-même et non la seule phase fondatrice ;
  • la liste des prédécesseurs et la section d'état/version ont été retirées du README racine ;
  • DOC-ROOT-002 précise que le préfixe 000- maintient docs/000-README.md en tête des listings et arbres lorsque la documentation devient volumineuse ;
  • DOC-CRATE-* recommande README.md, TODO.md et particulièrement USAGE.md sans les imposer mécaniquement à toute crate ;
  • aucun changelog par crate n'est prévu ;
  • la structure exacte de ROADMAP.md et CHANGELOG.md reste à définir avant leur création ;
  • GEN-FILE-004 impose l'incrément de version à chaque enregistrement qui modifie le contenu d'un fichier, y compris lorsqu'une modification est ensuite annulée par une nouvelle modification ;
  • msrv = "1.85.0" est retiré de clippy.toml ; KSP ne déclare actuellement aucun MSRV ;
  • rustfmt.toml passe à max_width = 160 et augmente les seuils associés afin que les autres limites explicites ne continuent pas à provoquer des retours proches de 80 caractères ;
  • les tests unitaires doivent de préférence être séparés des fichiers de production et pourront être stockés sous tests/unit/, mais ils devront être explicitement rattachés au module testé pour conserver l'accès aux éléments privés ;
  • la mécanique exacte de rattachement des tests unitaires externes reste à valider avant d'être imposée ;
  • la version Cargo de ce correctif devient 0.0.2-pre.1.fix.1 afin que les commandes Cargo permettent d'identifier le correctif compilé ;
  • le Cargo.toml racine conserve les métadonnées license, authors et publish fournies dans sa version 2 ;
  • .cargo/config.toml est ajouté avec les chemins de build fournis.

Validations exécutées

  • parsing TOML de Cargo.toml, .cargo/config.toml, clippy.toml et rustfmt.toml ;
  • validation syntaxique interne du format SemVer retenu pour 0.0.2-pre.1.fix.1 ;
  • vérification des chemins et de la structure de l'archive ;
  • vérification d'une fin de ligne finale unique pour chaque fichier texte livré ;
  • vérification de l'absence de lockfile, cache, secret et sortie de compilation dans l'archive ;
  • vérification documentaire du comportement Cargo des tests placés sous tests/ ;
  • vérification documentaire de la configuration max_width de rustfmt et du comportement MSRV de Clippy.

Validations non exécutées

cargo fmt --all
cargo check --workspace
cargo test --workspace
cargo clippy --workspace --all-targets

L'environnement utilisé pour produire cette livraison ne fournit pas cargo. Ces commandes doivent être exécutées localement avant validation du correctif.

Questions ouvertes

  1. Version Cargo et livraisons ksp-doc-* — si Cargo.toml doit refléter absolument chaque identifiant de livraison, y compris une livraison strictement documentaire, alors une archive ksp-doc-* ne peut plus rester limitée à docs/ et/ou aux prompts. Le contrat exact doit être tranché avant de généraliser la règle de synchronisation à toutes les livraisons.
  2. Tests unitaires séparés — valider sur le premier vrai module Rust la mécanique permettant de conserver les fichiers sous tests/unit/ tout en les compilant comme sous-modules unitaires avec accès au privé.
  3. Largeur rustfmt — valider en pratique si les seuils 160/140/100/120 donnent le niveau de densité souhaité avant de les considérer définitivement stabilisés.
  4. Métadonnée Cargo authors — elle est conservée parce qu'elle figure dans le Cargo.toml fourni, mais sa conservation à long terme reste à décider avant clôture de 0.0.2.

Application

Extraire l'archive depuis la racine du dépôt, puis exécuter les validations Cargo disponibles localement avant validation ou commit du correctif.