diff --git a/Cargo.toml b/Cargo.toml index ba5db51..ce66a8d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 24 +# version: 25 [workspace] resolver = "3" members = ["crates/ksp-core-lib"] [workspace.package] -version = "0.1.1-pre.5" +version = "0.1.1" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/ROADMAP.md b/ROADMAP.md index 366cc00..0f77c60 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -31,7 +31,7 @@ Regrouper les releases consacrées aux fondations N1. Chaque release concrète e ### Releases concrètes -- [/] `0.1.1` — Stabiliser `ksp-core-lib` : `Error`/`Result`, Program IDs fondamentaux et primitives réellement N1. +- [X] `0.1.1` — Stabiliser `ksp-core-lib` : `Error`/`Result`, Program IDs fondamentaux et primitives réellement N1. - [ ] `0.1.2` — Introduire `ksp-logging-lib` comme façade KSP de `tracing`, `tracing-appender` et `tracing-subscriber`. - [ ] `0.1.3` — Introduire `ksp-config-lib` : documents, profils, résolution, validation et modifications autorisées. - [ ] `0.1.4` — Introduire `ksp-app-config-desk` pour valider réellement Config et la frontière Tauri. diff --git a/deltas/0.1.1/rel.001.md b/deltas/0.1.1/rel.001.md new file mode 100644 index 0000000..8f35045 --- /dev/null +++ b/deltas/0.1.1/rel.001.md @@ -0,0 +1,150 @@ + + + +# Delta `0.1.1-rel.001` — publication stable Core + +## Base requise + +`v0.1.1-pre.005` au sens du commit de livraison correspondant, avec : + +```text +workspace.package.version = "0.1.1-pre.5" +``` + +## Objectif + +Publier la release stable `0.1.1`, clôturer `Core foundation` et préparer l'ouverture de `0.1.2 — Logging foundation` sans modifier la surface fonctionnelle de `ksp-core-lib`. + +## Version Cargo + +`workspace.package.version` passe de : + +```text +0.1.1-pre.5 +``` + +à : + +```text +0.1.1 +``` + +Le header de `Cargo.toml` passe de version 24 à 25. + +La politique de dépendance reste inchangée : + +```toml +[workspace.dependencies] +solana-pubkey = { version = "^4.3", default-features = false } +``` + +Aucune feature optionnelle supplémentaire n'est activée. + +## Validations finales exécutées par le user + +Commandes exécutées avec succès le 2026-08-14 sur `0.1.1-pre.5` : + +```bash +cargo fmt --all +cargo check --workspace +cargo test --workspace +cargo clippy --workspace --all-targets +cargo tree -p ksp-core-lib +cargo tree -p ksp-core-lib -d +cargo tree -p ksp-core-lib -e features +``` + +Résultats communiqués : + +- `cargo check --workspace` : succès ; +- `cargo test --workspace` : 14 tests unitaires réussis, 3 tests d'intégration publics réussis, doc-tests réussis ; +- `cargo clippy --workspace --all-targets` : succès sans warning communiqué ; +- `cargo tree -p ksp-core-lib` : dépendance externe directe unique `solana-pubkey 4.3.0`, résolvant `solana-address 2.7.0` ; +- `cargo tree -p ksp-core-lib -d` : aucun doublon ; +- `cargo tree -p ksp-core-lib -e features` : graphe inspecté, sans besoin d'activer une feature optionnelle `solana-pubkey` supplémentaire. + +## Surface stable publiée + +`0.1.1` stabilise notamment : + +- `ksp_core_lib::ErrorCode`, `ErrorContext`, `Error` et `Result` ; +- `ksp_core_lib::Pubkey` ; +- les 18 Program IDs fondamentaux possédés par KSP et leurs paires `PRGID_*` / `PRGIDPK_*` ; +- `declare_program_id!` ; +- `ProgramIdEntry`, `ProgramIdFilter`, `ProgramIdKind` ; +- le registre canonique enumerable/recherchable et ses vues par taxonomie ; +- `native_program_ids()`, recherches texte/`Pubkey` et filtres combinables ; +- la séparation `subfamily` / `program_version` ; +- les règles Cargo workspace introduites pendant la release. + +Aucune nouvelle primitive ou API n'est ajoutée par le présent delta de publication. + +## Documentation de clôture + +Le présent delta : + +- marque `0.1.1` réalisée dans `ROADMAP.md` ; +- conserve `003-V0_1_1_CORE_FOUNDATION_PLAN.md` comme plan historique clôturé ; +- réaligne la séquence fonctionnelle sur la publication stable ; +- réaligne les index de documentation/plans ; +- conserve `prompts/002-V0_1_2_START_PROMPT.md` comme prompt de démarrage de la release suivante. + +Aucun changelog général n'existe dans la base actuelle ; aucun changelog artificiel n'est créé. + +## Fichiers ajoutés + +```text +deltas/0.1.1/rel.001.md +``` + +## Fichiers modifiés + +```text +Cargo.toml +ROADMAP.md +docs/000-README.md +docs/plans/000-README.md +docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md +docs/plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md +``` + +## Fichiers supprimés + +Aucun. + +## Décisions + +Aucune nouvelle décision architecturale. + +La publication stable confirme les décisions et contrats stabilisés pendant les prereleases `0.1.1` et leurs fixes. + +## Publication Git + +Après application de ce delta : + +1. vérifier que le working tree ne contient que les modifications attendues ; +2. exécuter au minimum un `cargo check --workspace` final sur la version Cargo stable `0.1.1` ; +3. créer le commit de release `v0.1.1-rel.001` ; +4. marquer ce commit comme release stable avec le tag : + +```text +v0.1.1 +``` + +Aucun autre tag n'est requis pour les prereleases/fixes historiques. + +## Suite + +Après le tag stable `v0.1.1`, ouvrir : + +```text +0.1.2-pre.001 +``` + +avec : + +```text +prompts/002-V0_1_2_START_PROMPT.md +``` + +La première prerelease de `0.1.2` reste une phase de brainstorming, audit et planification avant développement fonctionnel de `ksp-logging-lib`. diff --git a/docs/000-README.md b/docs/000-README.md index 2baebc4..31cf196 100644 --- a/docs/000-README.md +++ b/docs/000-README.md @@ -1,5 +1,5 @@ - + # Documentation KSP @@ -52,7 +52,7 @@ D'autres sous-répertoires seront ajoutés uniquement lorsque leur rôle aura é ## Documents de planification -Le plan historique de la phase fondatrice clôturée est conservé dans [`plans/001-V0_0_3_PLAN.md`](plans/001-V0_0_3_PLAN.md). La séquence active des premières releases fonctionnelles est définie dans [`plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md`](plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md). Le plan détaillé de la première release fonctionnelle est conservé dans [`plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md`](plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md). +Le plan historique de la phase fondatrice clôturée est conservé dans [`plans/001-V0_0_3_PLAN.md`](plans/001-V0_0_3_PLAN.md). La séquence active des premières releases fonctionnelles est définie dans [`plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md`](plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md). Le plan détaillé de la release stable `0.1.1` est conservé comme historique clôturé dans [`plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md`](plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md). `IDEAS.md` conserve les pistes et questions qui ne sont pas encore des engagements du roadmap ni des décisions architecturales. diff --git a/docs/plans/000-README.md b/docs/plans/000-README.md index 4fef47b..e9bf44f 100644 --- a/docs/plans/000-README.md +++ b/docs/plans/000-README.md @@ -1,5 +1,5 @@ - + # Plans KSP @@ -11,7 +11,7 @@ Un plan décrit le périmètre, les décisions déjà acquises, les questions ou - [`001-V0_0_3_PLAN.md`](001-V0_0_3_PLAN.md) — plan historique de la phase fondatrice `0.0.3`, clôturée ; - [`002-FUNCTIONAL_RELEASE_SEQUENCE.md`](002-FUNCTIONAL_RELEASE_SEQUENCE.md) — séquence active de référence des premières releases fonctionnelles ; -- [`003-V0_1_1_CORE_FOUNDATION_PLAN.md`](003-V0_1_1_CORE_FOUNDATION_PLAN.md) — plan détaillé de `0.1.1`, établi par `0.1.1-pre.001` et consolidé jusqu'à sa tranche de clôture. +- [`003-V0_1_1_CORE_FOUNDATION_PLAN.md`](003-V0_1_1_CORE_FOUNDATION_PLAN.md) — plan historique clôturé de la release stable `0.1.1`, établi par `0.1.1-pre.001` puis consolidé jusqu'à `0.1.1-rel.001`. Le `pre.001` de chaque release fonctionnelle peut introduire son propre plan détaillé lorsque la release s'ouvre. diff --git a/docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md b/docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md index 8f5768c..177c086 100644 --- a/docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md +++ b/docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md @@ -1,5 +1,5 @@ - + # Séquence des releases fonctionnelles KSP @@ -95,7 +95,7 @@ pre.003 Pubkey + Program IDs pre.003-fix.001 politique Cargo workspace + corrections Clippy pre.004 intégration Core + audits pre.005 validation finale/docs/cleanup/prompt 0.1.2 -rel.001 publication stable après validation de pre.005 +rel.001 publication stable validée de 0.1.1 ``` ## `0.1.2` — Logging foundation @@ -336,7 +336,7 @@ Son prompt historique d'ouverture reste : prompts/001-V0_1_1_START_PROMPT.md ``` -À la clôture de `0.1.1-pre.005`, la surface Core est prête pour validation puis publication stable via `0.1.1-rel.001`. Après le tag `v0.1.1`, la release suivante s'ouvre avec : +`0.1.1-rel.001` publie la surface Core stable après validation complète de `pre.005`. Le commit de release reçoit le tag `v0.1.1`. La release suivante s'ouvre avec : ```text 0.1.2 — Logging foundation diff --git a/docs/plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md b/docs/plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md index cd00ce6..dd7cb9a 100644 --- a/docs/plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md +++ b/docs/plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md @@ -1,13 +1,13 @@ - + # Plan KSP 0.1.1 — Core foundation ## Statut -Plan de travail de `0.1.1`, établi par `0.1.1-pre.001` puis consolidé jusqu'à la tranche de clôture `0.1.1-pre.005`. +Plan historique clôturé de `0.1.1`, établi par `0.1.1-pre.001`, consolidé jusqu'à `0.1.1-pre.005` puis fermé par `0.1.1-rel.001`. -La surface fonctionnelle Core prévue par ce plan est désormais implémentée et validée jusqu'à `pre.004`. `pre.005` finalise la documentation, le prompt `0.1.2` et la préparation de publication ; la version stable `0.1.1` reste à publier par un delta `rel.001` après validation de cette dernière prerelease. +La surface fonctionnelle Core prévue par ce plan est implémentée et validée. Le delta `rel.001` publie `workspace.package.version = "0.1.1"`; son commit doit recevoir le tag stable `v0.1.1` avant ouverture de `0.1.2`. ## Base auditée @@ -648,14 +648,30 @@ La tranche ne change ni le contrat Error, ni la taxonomie, ni l'inventaire des 1 ### `0.1.1-pre.005` — clôture -Résultat de clôture préparé : +Résultat de clôture validé : - aucune nouvelle primitive Core et aucune nouvelle feature `solana-pubkey` ne sont ajoutées ; - les documents de référence de `0.1.1` sont réalignés avec la surface effectivement livrée ; - aucun `README.md`/`USAGE.md` spécifique à la crate n'est ajouté : la rustdoc crate-level et les tests publics couvrent suffisamment la petite surface actuelle ; - aucun changelog général n'existe dans la base actuelle, donc aucun fichier de changelog artificiel n'est créé uniquement pour cette release ; - le prompt final `prompts/002-V0_1_2_START_PROMPT.md` est créé pour ouvrir Logging après publication stable de `0.1.1` ; -- la publication stable reste volontairement séparée dans un futur delta `0.1.1-rel.001`, conformément au workflow de versionnement. +- la publication stable est réalisée séparément par `0.1.1-rel.001`, conformément au workflow de versionnement. + +### `0.1.1-rel.001` — publication stable + +La publication stable : + +- passe `workspace.package.version` de `0.1.1-pre.5` à `0.1.1` ; +- enregistre les validations finales de `pre.005` exécutées avec succès par le user le 2026-08-14 ; +- confirme 14 tests unitaires et 3 tests d'intégration publics réussis ; +- confirme Clippy sans warning communiqué ; +- confirme `solana-pubkey 4.3.0` comme unique dépendance externe directe de `ksp-core-lib` ; +- confirme l'absence de doublons dans `cargo tree -d` ; +- confirme que le graphe de features ne justifie aucune feature optionnelle `solana-pubkey` supplémentaire ; +- marque `0.1.1` comme réalisée dans le roadmap et conserve le présent plan comme historique clôturé ; +- prépare le commit de release puis le tag stable `v0.1.1`. + +Aucun contrat public, Program ID, dépendance ou feature n'est modifié par `rel.001`. Un `pre.NNN-fix.NNN` corrige la tranche correspondante sans réécrire son historique.