114 lines
4.3 KiB
Markdown
114 lines
4.3 KiB
Markdown
<!-- file: deltas/0.0.2/pre.001.md -->
|
|
<!-- version: 2 -->
|
|
|
|
# Delta `0.0.2-pre.001`
|
|
|
|
## Base requise
|
|
|
|
- dépôt KSP initialisé ;
|
|
- version `0.0.1` validée et commitée ;
|
|
- `.gitignore` de `0.0.1` présent à la racine.
|
|
|
|
## Type de livraison
|
|
|
|
`ksp-general-0.0.2-pre.001.zip`
|
|
|
|
## Objectif
|
|
|
|
Proposer une première fondation `0.0.2` à corriger et valider, sans développement métier :
|
|
|
|
- README général de KSP ;
|
|
- workspace Cargo Rust 2024 minimal ;
|
|
- reprise initiale de `rustfmt.toml` et `clippy.toml` depuis `khadhroony-bot3` ;
|
|
- index normatif et premières règles générales, Rust, KSP, documentaires et de versionnement ;
|
|
- contrat initial des familles de fichiers ;
|
|
- création du premier squelette `ksp-core-lib`, nécessaire pour disposer d'un workspace Cargo possédant au moins un membre ;
|
|
- mise en place du système unique `deltas/`.
|
|
|
|
## Fichiers ajoutés
|
|
|
|
```text
|
|
Cargo.toml
|
|
README.md
|
|
RULES.md
|
|
clippy.toml
|
|
rustfmt.toml
|
|
crates/ksp-core-lib/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_GENERAL.md
|
|
docs/rules/RULES_KSP.md
|
|
docs/rules/RULES_RUST.md
|
|
docs/rules/VERSION_WORKFLOW.md
|
|
deltas/0.0.2-pre.001.md
|
|
```
|
|
|
|
## Fichiers modifiés
|
|
|
|
Aucun fichier de la base `0.0.1` n'est modifié.
|
|
|
|
## Fichiers supprimés
|
|
|
|
Aucun.
|
|
|
|
## Décisions incorporées dans cette proposition
|
|
|
|
- aucun `rust-toolchain.toml` ;
|
|
- lockfiles volontairement non versionnés ;
|
|
- bibliothèques nommées `ksp-<role>-lib` ;
|
|
- applications nommées sous `ksp-app-*` ;
|
|
- workers nommés sous `ksp-worker-*` ;
|
|
- demos terminées par `-demo` ;
|
|
- crates directement sous `crates/` ;
|
|
- `docs/000-README.md` comme index documentaire ;
|
|
- un seul répertoire `deltas/` pour toutes les livraisons ;
|
|
- archives `ksp-general-*` et `ksp-doc-*` partageant le même identifiant de livraison ;
|
|
- un seul changelog général à terme, sans changelog par crate par défaut ;
|
|
- première crate squelette : `ksp-core-lib` ;
|
|
- future bibliothèque commune d'interface/wire : nom de travail `ksp-interface-lib` ;
|
|
- matérialisation séparée de la couche programmes/interfaces ;
|
|
- regroupement decoder/constructeur/exécution encore ouvert ;
|
|
- nomenclature initiale des environnements de demo : `mainnet`, `devnet`, `testnet`, `local-validator`, `synthetic`, absence de token = environnement sélectionnable.
|
|
|
|
## Validations exécutées
|
|
|
|
- vérification de la structure de l'archive ;
|
|
- parsing TOML des manifestes et configurations avec la bibliothèque standard Python ;
|
|
- vérification des fins de fichiers texte ;
|
|
- vérification de l'absence de `Cargo.lock`, lockfile Node, `target/`, secret ou artefact généré dans la livraison ;
|
|
- consultation de la documentation Cargo officielle concernant les workspaces virtuels et la nécessité d'au moins un membre.
|
|
|
|
## Validations non exécutées
|
|
|
|
- `cargo fmt --all` ;
|
|
- `cargo check --workspace` ;
|
|
- `cargo test --workspace` ;
|
|
- `cargo clippy --workspace --all-targets`.
|
|
|
|
Ces commandes n'ont pas pu être exécutées dans l'environnement de production de cette livraison car l'exécutable `cargo` n'y est pas disponible. Elles doivent être exécutées après extraction avant validation de la prerelease.
|
|
|
|
## Points à corriger ou valider
|
|
|
|
1. Valider la distinction entre version Cargo `0.0.2-pre.1` et identifiant de livraison `0.0.2-pre.001`.
|
|
2. Valider ou modifier le `msrv = "1.85.0"` repris de `khadhroony-bot3` dans `clippy.toml`.
|
|
3. Valider la nomenclature des environnements de demo, notamment le token `local-validator`.
|
|
4. Valider le nom provisoire `ksp-interface-lib` pour la future crate commune wire/interface.
|
|
5. Valider si `ksp-core-lib` doit rester strictement vide fonctionnellement jusqu'à la phase architecturale suivante.
|
|
6. Vérifier si les règles Rust reprises sont complètes ou si certaines règles de `khadhroony-bot3` doivent être supprimées, reformulées ou déplacées vers une portée KSP spécifique.
|
|
7. Vérifier le niveau de détail attendu de `FILE_CONTRACTS.md` avant d'étendre le catalogue aux futurs fichiers.
|
|
|
|
## Application
|
|
|
|
Extraire l'archive depuis la racine du dépôt `khadhroony-solana-project`, puis exécuter :
|
|
|
|
```bash
|
|
cargo fmt --all
|
|
cargo check --workspace
|
|
cargo test --workspace
|
|
cargo clippy --workspace --all-targets
|
|
```
|
|
|
|
Ne pas commiter la prerelease avant correction des points refusés et validation des commandes disponibles localement.
|