v0.2.9-pre.015
This commit is contained in:
10
CHANGELOG.md
10
CHANGELOG.md
@@ -1,10 +1,18 @@
|
|||||||
<!-- file: CHANGELOG.md -->
|
<!-- file: CHANGELOG.md -->
|
||||||
<!-- version: 12 -->
|
<!-- version: 13 -->
|
||||||
|
|
||||||
# Changelog KSP
|
# Changelog KSP
|
||||||
|
|
||||||
Ce changelog résume uniquement les releases KSP considérées comme stables, dans l'ordre chronologique décroissant. Les détails de chaque livraison restent dans `deltas/`.
|
Ce changelog résume uniquement les releases KSP considérées comme stables, dans l'ordre chronologique décroissant. Les détails de chaque livraison restent dans `deltas/`.
|
||||||
|
|
||||||
|
## 0.2.9 — Yellowstone gRPC standard/provider-neutral — 2026-08-24
|
||||||
|
|
||||||
|
`0.2.9` ajoute à `ksp-onchain-transport-lib` un moteur Yellowstone gRPC partagé construit directement sur Tonic/Protobuf, avec `yellowstone-grpc-proto` comme contrat wire upstream et sans `yellowstone-grpc-client` dans le runtime KSP. La surface Solana standard reste provider-neutral et couvre les sept unary retenues (`SubscribeReplayInfo`, `Ping`, `GetLatestBlockhash`, `GetBlockHeight`, `GetSlot`, `IsBlockhashValid`, `GetVersion`), `Subscribe` bidi, les familles accounts/slots/transactions/transaction status/blocks/block meta/entry, les neuf variantes d'update standard retenues, les filtres/common fields actuels, le backpressure, les limites de messages, le half-close/shutdown, ainsi qu'un reconnect/replay prudent depuis le dernier slot observé. Aucune garantie exactly-once, lossless ou d'ordre global gapless n'est introduite ; gaps et duplicates restent observables. `SubscribeDeshred` reste explicitement hors du standard KSP de cette release.
|
||||||
|
|
||||||
|
Config passe à `std.transport` V3, backward-readable avec V1 HTTP et V2 HTTP+WebSocket, et sépare les axes `provider` / `protocol` ainsi que `metadata` / `secret_metadata` sans créer de dépendance Transport -> Config/env. PublicNode constitue la première intégration provider : profils Yellowstone Mainnet et Testnet sur `https://solana-yellowstone-grpc.publicnode.com:443` et `https://solana-testnet-yellowstone-grpc.publicnode.com:443`, avec authentification `x-token` résolue par Config depuis des variables `KSP_SECRET_*`. Le smoke Transport pur reçoit les credentials uniquement par stdin opérateur, n'en journalise aucun et valide en live `Subscribe -> Slot` sur les deux réseaux ; le même personal token a été utilisé avec succès pour Mainnet et Testnet, tout en conservant deux entrées Config distinctes par flexibilité opérationnelle.
|
||||||
|
|
||||||
|
La clôture conserve les surfaces antérieures HTTP (**52 current typed + 14 historiques**), WebSocket Solana standard (**9 familles / 18 opérations**) et Helius LaserStream WebSocket. Le gate final comprend **383/383** tests unit Transport, **49/49** public API, **43/43** release completeness, **4/4** doctests, `cargo test --workspace`, les canaris de dépendances, le smoke PublicNode live **2/2 PASS** et l'inspection des graphes Cargo (`yellowstone-grpc-proto 12.6.0`, `tonic` / `tonic-prost 0.14.6`, `prost` / `prost-types 0.14.4`). `prompts/015-V0_2_10_START_PROMPT.md` ouvre ensuite `0.2.10 — OrbitFlare Yellowstone gRPC` uniquement depuis le tag stable `v0.2.9`, avec audit provider actuel, threat model et sizing en `pre.001` avant toute extension provider lourde.
|
||||||
|
|
||||||
## 0.2.8 — Helius LaserStream WebSocket — 2026-08-23
|
## 0.2.8 — Helius LaserStream WebSocket — 2026-08-23
|
||||||
|
|
||||||
`0.2.8` étend `ksp-onchain-transport-lib` avec une façade `HeliusLaserStreamWsSession` dédiée qui réutilise le même `WsSession` physique/actor que le WebSocket Solana standard, sans second client, socket, registry ou scheduler. La surface stable Helius réutilise les sept familles standard actuellement retenues (`account`, `logs`, `program`, `root`, `signature`, `slot`, `slotsUpdates`) et ajoute l’extension typée `transactionSubscribe` / `transactionUnsubscribe`; `block` et `vote` restent absents de la façade Helius et `slotsUpdates` conserve son statut unstable. Le heartbeat provider est possédé par l’actor partagé et émet un WebSocket Ping control frame toutes les 60 secondes uniquement pour `WsProtocolKind::HeliusLaserStream`.
|
`0.2.8` étend `ksp-onchain-transport-lib` avec une façade `HeliusLaserStreamWsSession` dédiée qui réutilise le même `WsSession` physique/actor que le WebSocket Solana standard, sans second client, socket, registry ou scheduler. La surface stable Helius réutilise les sept familles standard actuellement retenues (`account`, `logs`, `program`, `root`, `signature`, `slot`, `slotsUpdates`) et ajoute l’extension typée `transactionSubscribe` / `transactionUnsubscribe`; `block` et `vote` restent absents de la façade Helius et `slotsUpdates` conserve son statut unstable. Le heartbeat provider est possédé par l’actor partagé et émet un WebSocket Ping control frame toutes les 60 secondes uniquement pour `WsProtocolKind::HeliusLaserStream`.
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
# file: Cargo.toml
|
# file: Cargo.toml
|
||||||
# version: 259
|
# version: 260
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
resolver = "3"
|
resolver = "3"
|
||||||
members = ["crates/ksp-app-config-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-wallet-lib"]
|
members = ["crates/ksp-app-config-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-wallet-lib"]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.2.9-pre.14"
|
version = "0.2.9-pre.15"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: ROADMAP.md -->
|
<!-- file: ROADMAP.md -->
|
||||||
<!-- version: 85 -->
|
<!-- version: 86 -->
|
||||||
|
|
||||||
# Roadmap KSP
|
# Roadmap KSP
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ Le roadmap décrit les objectifs à atteindre et les grandes étapes prévues. U
|
|||||||
- [X] `0.2.6` — `ksp-app-wallet-desk` + `.kspwallet` V2 stables : composition Config/Wallet/HTTP/Logging, lifecycle VIEW/OWNER, balance, administration/import/export, wire binaire V2, APIs multi-version, migration V1 -> V2 explicite et runtime Tauri packagé user-writable validés ; bundles Linux `.deb`/`.rpm`/`.AppImage` produits avant publication. Plan clôturé : `docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md`.
|
- [X] `0.2.6` — `ksp-app-wallet-desk` + `.kspwallet` V2 stables : composition Config/Wallet/HTTP/Logging, lifecycle VIEW/OWNER, balance, administration/import/export, wire binaire V2, APIs multi-version, migration V1 -> V2 explicite et runtime Tauri packagé user-writable validés ; bundles Linux `.deb`/`.rpm`/`.AppImage` produits avant publication. Plan clôturé : `docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md`.
|
||||||
- [X] `0.2.7` — WebSocket Solana standard stable : 9 familles subscribe/unsubscribe typées (18/18 opérations), sessions physiques multiples explicites, subscriptions logiques typées, lifecycle/reconnect/resubscribe/backpressure/shutdown bornés, Config V2, non-régression HTTP 52+14, compliance finale, smoke WebSocket Devnet et audit de dépendances validés ; publication `rel.001` et prompt `0.2.8` prêts.
|
- [X] `0.2.7` — WebSocket Solana standard stable : 9 familles subscribe/unsubscribe typées (18/18 opérations), sessions physiques multiples explicites, subscriptions logiques typées, lifecycle/reconnect/resubscribe/backpressure/shutdown bornés, Config V2, non-régression HTTP 52+14, compliance finale, smoke WebSocket Devnet et audit de dépendances validés ; publication `rel.001` et prompt `0.2.8` prêts.
|
||||||
- [X] `0.2.8` — Helius LaserStream WebSocket stable : façade provider dédiée sur l’actor WebSocket partagé, sept familles standard réutilisées (`account/logs/program/root/signature/slot/slotsUpdates`) + `transactionSubscribe`/`transactionUnsubscribe`, `block/vote` absents, heartbeat Ping 60 s Helius-only, Config V2/secrets redacted, lifecycle adversarial, compliance HTTP 52+14 / Standard WS 18/18 et graphes Cargo finaux validés ; prompt `0.2.9` prêt.
|
- [X] `0.2.8` — Helius LaserStream WebSocket stable : façade provider dédiée sur l’actor WebSocket partagé, sept familles standard réutilisées (`account/logs/program/root/signature/slot/slotsUpdates`) + `transactionSubscribe`/`transactionUnsubscribe`, `block/vote` absents, heartbeat Ping 60 s Helius-only, Config V2/secrets redacted, lifecycle adversarial, compliance HTTP 52+14 / Standard WS 18/18 et graphes Cargo finaux validés ; prompt `0.2.9` prêt.
|
||||||
- [ ] `0.2.9` — Construire le moteur client Yellowstone gRPC partagé, exposer la surface Solana Yellowstone standard et réaliser la première intégration provider PublicNode Mainnet/Testnet sans dupliquer le moteur ; le provider peut restreindre ou étendre le standard si une divergence réelle est démontrée.
|
- [X] `0.2.9` — Yellowstone gRPC standard/provider-neutral stable : moteur Tonic/Protobuf KSP partagé, sept unary standard retenues, `Subscribe` bidi et neuf variantes d’update, lifecycle/backpressure/reconnect/replay bornés sans promesse lossless, Config Transport V3 backward V1/V2 avec provider/protocol séparés, profils PublicNode Mainnet/Testnet authentifiés par `x-token`, smoke live `Subscribe -> Slot` 2/2 PASS et graphes Cargo finaux inspectés ; `SubscribeDeshred` reste hors scope.
|
||||||
- [ ] `0.2.10` — Ajouter l’intégration Yellowstone gRPC OrbitFlare sur le moteur/standard acquis, avec audit explicite des auth/capabilities/restrictions/extensions et Devnet comme cible gratuite prioritaire.
|
- [ ] `0.2.10` — Ajouter l’intégration Yellowstone gRPC OrbitFlare sur le moteur/standard acquis, avec audit explicite des auth/capabilities/restrictions/extensions et Devnet comme cible gratuite prioritaire.
|
||||||
- [ ] `0.2.11` — Ajouter l’intégration Helius LaserStream gRPC sur le moteur Yellowstone partagé, avec audit de compatibilité/replay/auth/extensions, sans confondre cette surface avec LaserStream WebSocket.
|
- [ ] `0.2.11` — Ajouter l’intégration Helius LaserStream gRPC sur le moteur Yellowstone partagé, avec audit de compatibilité/replay/auth/extensions, sans confondre cette surface avec LaserStream WebSocket.
|
||||||
- [ ] `0.2.12` — Introduire `ksp-offchain-transport-lib` avec un premier lecteur de prix, au minimum SOL/USD et SOL/EUR.
|
- [ ] `0.2.12` — Introduire `ksp-offchain-transport-lib` avec un premier lecteur de prix, au minimum SOL/USD et SOL/EUR.
|
||||||
|
|||||||
104
deltas/0.2.9/pre.015.md
Normal file
104
deltas/0.2.9/pre.015.md
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
<!-- file: deltas/0.2.9/pre.015.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Delta `0.2.9-pre.015` — préparation de publication minimale
|
||||||
|
|
||||||
|
## 1. Base
|
||||||
|
|
||||||
|
```text
|
||||||
|
0.2.9-pre.014
|
||||||
|
```
|
||||||
|
|
||||||
|
Cette tranche est exclusivement le couloir de préparation de publication défini par les règles de fermeture KSP. Elle ne corrige aucun README, USAGE, plan, validation, règle, code, test, schema ou config.
|
||||||
|
|
||||||
|
## 2. Gate `pre.014` reçu
|
||||||
|
|
||||||
|
Le gate opérateur de `0.2.9-pre.014` reçu le 2026-08-24 confirme :
|
||||||
|
|
||||||
|
```text
|
||||||
|
cargo fmt --all PASS
|
||||||
|
Rust workspace audit PASS, 0 export candidate
|
||||||
|
Markdown audit PASS, 87 tableaux / 259 fichiers
|
||||||
|
cargo check --workspace PASS
|
||||||
|
cargo clippy --workspace --all-targets PASS sans warning
|
||||||
|
cargo test --workspace PASS
|
||||||
|
```
|
||||||
|
|
||||||
|
`pre.014` n'ayant modifié que la version Cargo et la documentation, le smoke PublicNode 2/2 et les graphes Cargo fermés dans `pre.013` n'ont pas été rejoués.
|
||||||
|
|
||||||
|
## 3. Version technique
|
||||||
|
|
||||||
|
```text
|
||||||
|
workspace.package.version = 0.2.9-pre.15
|
||||||
|
```
|
||||||
|
|
||||||
|
La modification est mécanique ; aucune sémantique runtime ne change.
|
||||||
|
|
||||||
|
## 4. `CHANGELOG.md`
|
||||||
|
|
||||||
|
Le changelog stable est préparé pour `0.2.9 — Yellowstone gRPC standard/provider-neutral` avec les faits consolidés : moteur Yellowstone partagé, surface Solana standard, Config V3, PublicNode Mainnet/Testnet avec `x-token`, smoke live 2/2, non-régressions et graphes finaux.
|
||||||
|
|
||||||
|
## 5. `ROADMAP.md`
|
||||||
|
|
||||||
|
`0.2.9` passe à l'état réalisé/validé dans la roadmap globale. La séquence suivante reste :
|
||||||
|
|
||||||
|
```text
|
||||||
|
0.2.10 OrbitFlare Yellowstone gRPC
|
||||||
|
0.2.11 Helius LaserStream gRPC
|
||||||
|
0.2.12 off-chain price transport
|
||||||
|
0.2.13 Price Desk + intégration prix Wallet Desk
|
||||||
|
0.2.14 interface/wire foundation
|
||||||
|
0.2.15 program-api foundation
|
||||||
|
```
|
||||||
|
|
||||||
|
## 6. Prompt `0.2.10`
|
||||||
|
|
||||||
|
Le draft `prompts/015-V0_2_10_START_PROMPT.md` est finalisé. Il intègre l'état réel de `v0.2.9` :
|
||||||
|
|
||||||
|
```text
|
||||||
|
PublicNode Mainnet + Testnet validés
|
||||||
|
metadata x-token secrète via Config
|
||||||
|
Subscribe -> Slot 2/2 PASS
|
||||||
|
unary standard != entitlement garanti chez chaque provider
|
||||||
|
```
|
||||||
|
|
||||||
|
Sa prévision souple est également corrigée pour réserver explicitement les trois couloirs de fermeture applicables :
|
||||||
|
|
||||||
|
```text
|
||||||
|
gate technique/live final éventuel
|
||||||
|
réconciliation documentaire finale
|
||||||
|
préparation de publication minimale prompt + CHANGELOG + ROADMAP
|
||||||
|
```
|
||||||
|
|
||||||
|
Le prompt rappelle qu'un `fix` reste local à son couloir et que `rel.001` ne sert jamais de rattrapage.
|
||||||
|
|
||||||
|
## 7. Fichiers modifiés/ajoutés
|
||||||
|
|
||||||
|
```text
|
||||||
|
Cargo.toml
|
||||||
|
CHANGELOG.md
|
||||||
|
ROADMAP.md
|
||||||
|
prompts/015-V0_2_10_START_PROMPT.md
|
||||||
|
deltas/0.2.9/pre.015.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Aucun autre fichier ne doit changer dans cette tranche.
|
||||||
|
|
||||||
|
## 8. Gate opérateur
|
||||||
|
|
||||||
|
Comme la tranche ne modifie aucun code/runtime/config/schema :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo fmt --all
|
||||||
|
python3 scripts/audit_rust_workspace_rules.py
|
||||||
|
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.2.9
|
||||||
|
cargo check --workspace
|
||||||
|
cargo clippy --workspace --all-targets
|
||||||
|
cargo test --workspace
|
||||||
|
```
|
||||||
|
|
||||||
|
Aucun smoke live ni `cargo tree` n'est à rejouer si le delta est appliqué exactement.
|
||||||
|
|
||||||
|
## 9. Suite
|
||||||
|
|
||||||
|
Si ce gate est vert, `0.2.9-rel.001` est la seule étape restante. Elle est limitée à la mécanique de publication stable : version Cargo `0.2.9`, delta `rel.001`, commit final et tag `v0.2.9`, sans rattrapage technique ou documentaire.
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: prompts/015-V0_2_10_START_PROMPT.md -->
|
<!-- file: prompts/015-V0_2_10_START_PROMPT.md -->
|
||||||
<!-- version: 1 -->
|
<!-- version: 2 -->
|
||||||
|
|
||||||
# Prompt de démarrage `0.2.10` — OrbitFlare Yellowstone gRPC
|
# Prompt de démarrage `0.2.10` — OrbitFlare Yellowstone gRPC
|
||||||
|
|
||||||
@@ -55,7 +55,9 @@ Yellowstone Subscribe accounts/slots/transactions/status/blocks/meta/
|
|||||||
Yellowstone updates 9 variantes standard retenues
|
Yellowstone updates 9 variantes standard retenues
|
||||||
Yellowstone lifecycle bidi/backpressure/half-close/shutdown bornés
|
Yellowstone lifecycle bidi/backpressure/half-close/shutdown bornés
|
||||||
Yellowstone reconnect/replay KSP-owned, prudent, non lossless
|
Yellowstone reconnect/replay KSP-owned, prudent, non lossless
|
||||||
PublicNode N3 premier provider standard sans divergence wire
|
PublicNode N3 Mainnet + Testnet validés sur le standard N2
|
||||||
|
PublicNode auth metadata secrète x-token via Config
|
||||||
|
PublicNode live Subscribe -> Slot 2/2 PASS
|
||||||
|
|
||||||
Config Transport V1 HTTP + V2 WS + V3 gRPC backward-readable
|
Config Transport V1 HTTP + V2 WS + V3 gRPC backward-readable
|
||||||
Config -> Transport autorisé
|
Config -> Transport autorisé
|
||||||
@@ -399,9 +401,21 @@ Une policy OrbitFlare supplémentaire doit s'ajouter sans casser ces garanties.
|
|||||||
|
|
||||||
### 5.4 PublicNode N3
|
### 5.4 PublicNode N3
|
||||||
|
|
||||||
PublicNode constitue le premier témoin provider : lorsqu'aucune divergence n'existe, KSP réutilise directement le standard N2 avec un `provider` descriptif.
|
PublicNode constitue le premier témoin provider et réutilise directement le standard N2 avec un `provider` descriptif. Les faits stabilisés à préserver sont :
|
||||||
|
|
||||||
OrbitFlare ne reçoit donc une façade publique spécifique que si `pre.001` démontre qu'un comportement doit être exposé au consumer KSP.
|
```text
|
||||||
|
Mainnet endpoint = https://solana-yellowstone-grpc.publicnode.com:443
|
||||||
|
Testnet endpoint = https://solana-testnet-yellowstone-grpc.publicnode.com:443
|
||||||
|
auth wire = metadata x-token secrète
|
||||||
|
Config secret = deux variables KSP_SECRET_* distinctes
|
||||||
|
live gate = Subscribe -> Slot, Mainnet PASS + Testnet PASS
|
||||||
|
```
|
||||||
|
|
||||||
|
Le même personal token opérateur a été validé sur les deux réseaux ; les deux variables Config restent distinctes uniquement pour conserver de la flexibilité opérationnelle. Ne pas transformer ce constat en règle générale sur la portée des tokens PublicNode.
|
||||||
|
|
||||||
|
Les essais live ont aussi montré qu'un endpoint provider peut restreindre certaines unary indépendamment du streaming. Une unary standard disponible dans N2 n'est donc pas une garantie d'entitlement chez chaque provider.
|
||||||
|
|
||||||
|
OrbitFlare ne reçoit une façade publique spécifique que si `pre.001` démontre qu'un comportement doit être exposé au consumer KSP.
|
||||||
|
|
||||||
### 5.5 Config V3
|
### 5.5 Config V3
|
||||||
|
|
||||||
@@ -878,23 +892,34 @@ pre.002 provider descriptor/capabilities et settings/policy minimale réellemen
|
|||||||
pre.003 heartbeat/auth/lifecycle OrbitFlare seulement si divergence confirmée
|
pre.003 heartbeat/auth/lifecycle OrbitFlare seulement si divergence confirmée
|
||||||
preuve : fixture déterministe + cancellation/reconnect + redaction + aucun second actor
|
preuve : fixture déterministe + cancellation/reconnect + redaction + aucun second actor
|
||||||
|
|
||||||
pre.004 Config V3 OrbitFlare + profils retenus + smoke live opt-in architecture-safe
|
pre.004 Config V3 OrbitFlare + profils retenus + déterministe/adversarial/compliance
|
||||||
preuve : provenance secret correcte + endpoint réel opérateur + standard surface réutilisée
|
preuve : provenance secret correcte + standard N2 réutilisé + non-régressions ciblées
|
||||||
|
|
||||||
pre.005 adversarial/compliance + non-régressions PublicNode/standard + README/USAGE + cargo tree + prompt 0.2.11
|
pre.005 gate technique/live final si applicable
|
||||||
preuve : workspace final vert + docs/validation fermées + prompt suivant autonome
|
preuve : smoke OrbitFlare opt-in ou bloc externe qualifié + workspace + graphes Cargo finaux
|
||||||
|
|
||||||
rel.001 publication stable stricte
|
pre.006 réconciliation documentaire finale
|
||||||
|
preuve : plan + validation + README/USAGE + références durables synchronisés, aucun runtime modifié
|
||||||
|
|
||||||
|
pre.007 préparation de publication minimale
|
||||||
|
preuve : prompt 0.2.11 + CHANGELOG.md + ROADMAP.md uniquement, hors Cargo.toml/delta mécaniques
|
||||||
|
|
||||||
|
rel.001 publication stable stricte, sans rattrapage technique ou documentaire
|
||||||
```
|
```
|
||||||
|
|
||||||
Règles :
|
Règles :
|
||||||
|
|
||||||
```text
|
```text
|
||||||
chaque tranche vise nominalement 15–20 min de travail effectif
|
chaque tranche vise nominalement 15–20 min de travail effectif
|
||||||
pre.001 peut fusionner/scinder/déplacer/ajouter des prereleases
|
pre.001 peut fusionner/scinder/déplacer/ajouter des prereleases de développement
|
||||||
si OrbitFlare est purement standard, réduire le nombre de tranches
|
si OrbitFlare est purement standard, réduire les tranches intermédiaires
|
||||||
si auth/heartbeat implique une extension moteur importante, scinder avant implémentation
|
si auth/heartbeat implique une extension moteur importante, scinder avant implémentation
|
||||||
un fix peut être inséré après toute tranche
|
le gate technique/live final peut être omis si aucun smoke/live n'est pertinent
|
||||||
|
réconciliation documentaire et préparation de publication restent toujours deux prereleases distinctes
|
||||||
|
la dernière prerelease ne finalise que prompt suivant + CHANGELOG + ROADMAP, hors Cargo.toml/delta mécaniques
|
||||||
|
un fix reste local à la responsabilité de sa prerelease
|
||||||
|
un défaut découvert dans un couloir antérieur ouvre une nouvelle prerelease dédiée puis rejoue les couloirs suivants
|
||||||
|
rel.001 ne sert jamais de tranche de rattrapage
|
||||||
le numéro final n'est jamais un critère de clôture
|
le numéro final n'est jamais un critère de clôture
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -945,6 +970,17 @@ v0.2.10
|
|||||||
|
|
||||||
Les deltas publiés sont immuables.
|
Les deltas publiés sont immuables.
|
||||||
|
|
||||||
|
La fermeture respecte `docs/rules/PROMPT_STRUCTURE.md` et `docs/rules/VERSION_WORKFLOW.md` :
|
||||||
|
|
||||||
|
```text
|
||||||
|
gate technique/live final éventuel
|
||||||
|
-> réconciliation documentaire finale
|
||||||
|
-> préparation de publication minimale
|
||||||
|
-> rel.001
|
||||||
|
```
|
||||||
|
|
||||||
|
La dernière prerelease avant `rel.001` ne modifie fonctionnellement que le prompt suivant, `CHANGELOG.md` et `ROADMAP.md`, en plus de `Cargo.toml` et de son delta mécanique.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 14. Validation opérateur et application
|
## 14. Validation opérateur et application
|
||||||
@@ -1052,12 +1088,14 @@ Standard WS 18/18 non régressé
|
|||||||
Helius WS non régressé
|
Helius WS non régressé
|
||||||
firewall dépendances vert
|
firewall dépendances vert
|
||||||
workspace complet vert
|
workspace complet vert
|
||||||
README/USAGE synchronisés
|
README/USAGE synchronisés dans la prerelease documentaire dédiée
|
||||||
matrice OrbitFlare fermée
|
matrice OrbitFlare fermée avant la prerelease de publication
|
||||||
prompt 0.2.11 préparé
|
prompt 0.2.11 préparé uniquement dans la dernière prerelease
|
||||||
|
CHANGELOG/ROADMAP finalisés uniquement dans la dernière prerelease
|
||||||
|
aucun rattrapage technique/documentaire dans rel.001
|
||||||
```
|
```
|
||||||
|
|
||||||
Le numéro de prerelease n'est jamais un critère de clôture.
|
Le numéro de prerelease n'est jamais un critère de clôture. Les numéros de la prévision peuvent dériver, mais l'ordre des couloirs de fermeture ne dérive pas.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user