0.5.1-pre.005

This commit is contained in:
2026-08-10 01:36:42 +02:00
parent ec07ddbd80
commit b6a286a4df
54 changed files with 6236 additions and 5569 deletions

View File

@@ -1,8 +1,13 @@
<!-- file: ks-pipeline-demo-scenarios/CHANGELOG.md -->
<!-- version: 75 -->
<!-- version: 76 -->
# CHANGELOG — ks-pipeline-demo-scenarios
## `0.5.1-pre.005`
- aligne les scénarios et fixtures sur `config/app.config.json` comme document général par défaut ;
- conserve `KS_DEVNET_CONFIG_PATH` comme override du document applicatif des scénarios, sans dépendre du document logging.
## `0.5.1-pre.004`
- migre les paramètres d'environnement des scénarios réutilisables vers `KS_*` et les DSN de test vers `KS_SECRET_*` ;

View File

@@ -1,5 +1,5 @@
<!-- file: ks-pipeline-demo-scenarios/USAGE.md -->
<!-- version: 28 -->
<!-- version: 29 -->
# Utilisation de ks-pipeline-demo-scenarios
@@ -113,7 +113,7 @@ KS_SECRET_POSTGRES_TEST_URL='postgresql://…' \
cargo test -p ks-pipeline-demo-scenarios optional_devnet_token_2022_metadata_campaign_from_env -- --nocapture
```
`KS_DEVNET_PROFILE` peut sélectionner explicitement le profil Devnet et `KS_DEVNET_CONFIG_PATH` peut remplacer `config/example.config.json`. Le profil doit utiliser un wallet persistant, autoriser les soumissions Devnet et respecter les plafonds de dépense et de frais.
`KS_DEVNET_PROFILE` peut sélectionner explicitement le profil Devnet et `KS_DEVNET_CONFIG_PATH` peut remplacer `config/app.config.json`. Le profil doit utiliser un wallet persistant, autoriser les soumissions Devnet et respecter les plafonds de dépense et de frais.
La sortie `TOKEN_2022_METADATA_FIXTURE` conserve le mint et la signature de préparation. Chaque ligne `TOKEN_2022_METADATA_STEP` conserve lopération, la signature, le slot, la postcondition, le nombre de matérialisations et, pour `Emit`, la taille du `returnData`. La campagne de référence de `pre.012` a été exécutée avec succès et ses preuves sont conservées dans `SPL_TOKEN_2022_METADATA_DEVNET_VALIDATION_MATRIX.json` et dans le rapport `docs/validation/V0_4_8_METADATA_VALIDATION_REPORT.md` ; le rapport détaillé `pre.012` est archivé sous `olddocs/archivekbot3/docs/validation/`. Une nouvelle exécution produit de nouvelles transactions et ne remplace ces preuves quaprès validation explicite.

View File

@@ -1,5 +1,5 @@
// file: ks-pipeline-demo-scenarios/src/environment.rs
// version: 4
// version: 5
//! Environment initialization for opt-in demonstration scenarios.
@@ -151,7 +151,7 @@ pub async fn prepare_demo_devnet_profile_store(
#[cfg(test)]
mod tests {
fn example_config() -> ks_config::AppConfig {
return match ks_config::parse_config_json(include_str!("../../config/example.config.json"))
return match ks_config::parse_config_json(include_str!("../../config/app.config.json"))
{
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("example config parse failed: {error}"),

View File

@@ -1,5 +1,5 @@
// file: ks-pipeline-demo-scenarios/src/metadata/metaplex_token_metadata/collection_verify_campaign.rs
// version: 3
// version: 4
//! Confirmed Devnet collection parent/member `Verify -> Unverify` campaign.
@@ -648,7 +648,7 @@ mod tests {
let path = std::path::PathBuf::from(value);
if path.is_absolute() { path } else { workspace_root.join(path) }
},
std::result::Result::Err(_) => workspace_root.join("config/example.config.json"),
std::result::Result::Err(_) => workspace_root.join("config/app.config.json"),
};
let config = ks_config::read_config_json_file_with_environment(
config_path.as_path(),

View File

@@ -1,5 +1,5 @@
// file: ks-pipeline-demo-scenarios/src/metadata/metaplex_token_metadata/create_mint_campaign.rs
// version: 11
// version: 12
//! Confirmed Devnet `Create -> Mint` campaign for one Metaplex asset family.
@@ -813,7 +813,7 @@ mod tests {
let path = std::path::PathBuf::from(value);
if path.is_absolute() { path } else { workspace_root.join(path) }
},
std::result::Result::Err(_) => workspace_root.join("config/example.config.json"),
std::result::Result::Err(_) => workspace_root.join("config/app.config.json"),
};
let config = ks_config::read_config_json_file_with_environment(
config_path.as_path(),

View File

@@ -1,5 +1,5 @@
// file: ks-pipeline-demo-scenarios/src/metadata/metaplex_token_metadata/devnet_execution.rs
// version: 19
// version: 20
//! Real Devnet simulation and submission for current Metaplex Token Metadata operations.
@@ -1267,7 +1267,7 @@ fn validate_available_signers(
mod tests {
fn example_devnet_profile() -> ks_config::ProfileConfig {
let config = match ks_config::parse_config_json(include_str!(
"../../../../config/example.config.json"
"../../../../config/app.config.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("example config parse failed: {error}"),

View File

@@ -1,5 +1,5 @@
// file: ks-pipeline-demo-scenarios/src/metadata/metaplex_token_metadata/escrow_campaign.rs
// version: 3
// version: 4
//! Confirmed Devnet Token Owned Escrow campaign for current Metaplex escrow operations.
@@ -973,7 +973,7 @@ mod tests {
let path = std::path::PathBuf::from(value);
if path.is_absolute() { path } else { workspace_root.join(path) }
},
std::result::Result::Err(_) => workspace_root.join("config/example.config.json"),
std::result::Result::Err(_) => workspace_root.join("config/app.config.json"),
};
let config = ks_config::read_config_json_file_with_environment(
config_path.as_path(),

View File

@@ -1,5 +1,5 @@
// file: ks-pipeline-demo-scenarios/src/metadata/metaplex_token_metadata/maintenance_campaign.rs
// version: 5
// version: 6
//! Final bounded Devnet qualification campaign for current Metaplex maintenance operations.
@@ -577,7 +577,7 @@ mod tests {
let path = std::path::PathBuf::from(value);
if path.is_absolute() { path } else { workspace_root.join(path) }
},
std::result::Result::Err(_) => workspace_root.join("config/example.config.json"),
std::result::Result::Err(_) => workspace_root.join("config/app.config.json"),
};
let config = ks_config::read_config_json_file_with_environment(
config_path.as_path(),

View File

@@ -1,5 +1,5 @@
// file: ks-pipeline-demo-scenarios/src/metadata/metaplex_token_metadata/pnft_lifecycle_campaign.rs
// version: 5
// version: 6
//! Confirmed Devnet pNFT delegate, lock, unlock, revoke and transfer campaign.
@@ -1071,7 +1071,7 @@ mod tests {
let path = std::path::PathBuf::from(value);
if path.is_absolute() { path } else { workspace_root.join(path) }
},
std::result::Result::Err(_) => workspace_root.join("config/example.config.json"),
std::result::Result::Err(_) => workspace_root.join("config/app.config.json"),
};
let config = ks_config::read_config_json_file_with_environment(
config_path.as_path(),

View File

@@ -1,5 +1,5 @@
// file: ks-pipeline-demo-scenarios/src/metadata/metaplex_token_metadata/print_burn_campaign.rs
// version: 6
// version: 7
//! Devnet printable master NFT `Print -> Burn` campaign.
@@ -1180,7 +1180,7 @@ mod tests {
let path = std::path::PathBuf::from(value);
if path.is_absolute() { path } else { workspace_root.join(path) }
},
std::result::Result::Err(_) => workspace_root.join("config/example.config.json"),
std::result::Result::Err(_) => workspace_root.join("config/app.config.json"),
};
let config = ks_config::read_config_json_file_with_environment(
config_path.as_path(),

View File

@@ -1,5 +1,5 @@
// file: ks-pipeline-demo-scenarios/src/metadata/metaplex_token_metadata/use_campaign.rs
// version: 3
// version: 4
//! Bounded Devnet availability probe for the current Metaplex `Use` surface.
@@ -425,7 +425,7 @@ mod tests {
let path = std::path::PathBuf::from(value);
if path.is_absolute() { path } else { workspace_root.join(path) }
},
std::result::Result::Err(_) => workspace_root.join("config/example.config.json"),
std::result::Result::Err(_) => workspace_root.join("config/app.config.json"),
};
let config = ks_config::read_config_json_file_with_environment(
config_path.as_path(),

View File

@@ -1,5 +1,5 @@
// file: ks-pipeline-demo-scenarios/src/solana.rs
// version: 13
// version: 14
//! Devnet Solana execution orchestration with canonical post-validation.
@@ -1225,7 +1225,7 @@ pub(crate) fn emit<O>(
mod tests {
fn example_devnet_profile() -> ks_config::ProfileConfig {
let config =
match ks_config::parse_config_json(include_str!("../../config/example.config.json")) {
match ks_config::parse_config_json(include_str!("../../config/app.config.json")) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("example config parse failed: {error}"),
};

View File

@@ -1,5 +1,5 @@
// file: ks-pipeline-demo-scenarios/src/spl/associated_token_account.rs
// version: 12
// version: 13
//! Devnet ATA execution with stateful and canonical post-validation.
@@ -994,7 +994,7 @@ mod tests {
fn example_devnet_profile() -> ks_config::ProfileConfig {
let config =
match ks_config::parse_config_json(include_str!("../../../config/example.config.json"))
match ks_config::parse_config_json(include_str!("../../../config/app.config.json"))
{
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("example config parse failed: {error}"),

View File

@@ -1,5 +1,5 @@
// file: ks-pipeline-demo-scenarios/src/spl/memo.rs
// version: 8
// version: 9
//! Devnet SPL Memo v4 execution with canonical post-validation.
@@ -755,7 +755,7 @@ fn decode_completed(summary: &ks_pipeline::DecodeReplaySummary) -> bool {
mod tests {
fn example_devnet_profile() -> ks_config::ProfileConfig {
let config =
match ks_config::parse_config_json(include_str!("../../../config/example.config.json"))
match ks_config::parse_config_json(include_str!("../../../config/app.config.json"))
{
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("example config parse failed: {error}"),

View File

@@ -1,5 +1,5 @@
// file: ks-pipeline-demo-scenarios/src/spl/token/execution.rs
// version: 12
// version: 13
//! Devnet classic SPL Token execution with stateful and canonical post-validation.
@@ -975,7 +975,7 @@ pub(crate) fn decode_completed(summary: &ks_pipeline::DecodeReplaySummary) -> bo
mod tests {
fn example_devnet_profile() -> ks_config::ProfileConfig {
let config = match ks_config::parse_config_json(include_str!(
"../../../../config/example.config.json"
"../../../../config/app.config.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("example config parse failed: {error}"),

View File

@@ -1,5 +1,5 @@
// file: ks-pipeline-demo-scenarios/src/spl/token/lifecycle.rs
// version: 11
// version: 12
//! Controlled Devnet lifecycle for freshly prepared classic SPL Token accounts.
@@ -1688,7 +1688,7 @@ mod tests {
fn example_devnet_profile() -> ks_config::ProfileConfig {
let config = match ks_config::parse_config_json(include_str!(
"../../../../config/example.config.json"
"../../../../config/app.config.json"
)) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("example config parse failed: {error}"),

View File

@@ -1,5 +1,5 @@
// file: ks-pipeline-demo-scenarios/src/spl/token_2022/metadata/campaign.rs
// version: 6
// version: 7
//! Ordered confirmed Devnet campaign for the five Token-2022 Token Metadata instructions.
@@ -502,7 +502,7 @@ mod tests {
let path = std::path::PathBuf::from(value);
if path.is_absolute() { path } else { workspace_root.join(path) }
},
std::result::Result::Err(_) => workspace_root.join("config/example.config.json"),
std::result::Result::Err(_) => workspace_root.join("config/app.config.json"),
};
let config = ks_config::read_config_json_file_with_environment(
config_path.as_path(),