v0.3.5-pre.005-fix.001
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
# file: Cargo.toml
|
||||
# version: 387
|
||||
# version: 388
|
||||
|
||||
[workspace]
|
||||
resolver = "3"
|
||||
members = ["crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-lib", "crates/ksp-logging-lib", "crates/ksp-offchain-transport-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-program-api", "crates/ksp-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib"]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.3.5-pre.5"
|
||||
version = "0.3.5-pre.5.fix.1"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-interface-lib/tests/dependency_boundary.rs
|
||||
// version: 7
|
||||
// version: 8
|
||||
|
||||
//! Dependency and passive-surface canaries for the Interface foundation.
|
||||
|
||||
@@ -166,7 +166,17 @@ fn v0_3_5_pre_005_manifest_keeps_exact_core_only_graph_without_features_or_hidde
|
||||
assert!(!manifest.contains("[features]"));
|
||||
assert!(!manifest.contains("[dev-dependencies]"));
|
||||
assert!(!manifest.contains("[build-dependencies]"));
|
||||
assert_eq!(manifest.matches("ksp-core-lib").count(), 1);
|
||||
assert_eq!(manifest.matches("[dependencies]").count(), 1);
|
||||
let dependencies_tail = manifest.split("[dependencies]").nth(1);
|
||||
assert!(dependencies_tail.is_some(), "Interface dependencies section must exist");
|
||||
let dependencies_tail = match dependencies_tail {
|
||||
std::option::Option::Some(value) => value,
|
||||
std::option::Option::None => return,
|
||||
};
|
||||
let dependencies = match dependencies_tail.split("[lints]").next() {
|
||||
std::option::Option::Some(value) => value,
|
||||
std::option::Option::None => return,
|
||||
};
|
||||
assert_eq!(manifest_dependency_names(dependencies), std::vec!["ksp-core-lib"]);
|
||||
return;
|
||||
}
|
||||
|
||||
78
deltas/0.3.5/pre.005-fix.001.md
Normal file
78
deltas/0.3.5/pre.005-fix.001.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# Delta `0.3.5-pre.005-fix.001`
|
||||
|
||||
## Objet
|
||||
|
||||
Corriger le faux négatif du canari de manifeste ajouté par `0.3.5-pre.005`, sans modifier le contrat fonctionnel ni le graphe de dépendances de `ksp-interface-lib`.
|
||||
|
||||
## Base
|
||||
|
||||
```text
|
||||
0.3.5-pre.005
|
||||
workspace.package.version = 0.3.5-pre.5
|
||||
```
|
||||
|
||||
## Diagnostic opérateur
|
||||
|
||||
Le gate du `2026-08-31` est propre pour les audits Rust/Markdown et `cargo check --workspace`, mais le nouveau test :
|
||||
|
||||
```text
|
||||
v0_3_5_pre_005_manifest_keeps_exact_core_only_graph_without_features_or_hidden_dependency_sections
|
||||
```
|
||||
|
||||
échoue avec :
|
||||
|
||||
```text
|
||||
left: 2
|
||||
right: 1
|
||||
```
|
||||
|
||||
La cause est le comptage textuel `manifest.matches("ksp-core-lib")` appliqué à la déclaration :
|
||||
|
||||
```text
|
||||
ksp-core-lib = { path = "../ksp-core-lib" }
|
||||
```
|
||||
|
||||
Cette ligne contient légitimement deux occurrences de la chaîne tout en déclarant une seule dépendance. Le manifeste lui-même est correct.
|
||||
|
||||
## Correction
|
||||
|
||||
- conserver les interdictions de sections `[features]`, `[dev-dependencies]` et `[build-dependencies]` ;
|
||||
- conserver l'exigence d'une seule section `[dependencies]` ;
|
||||
- extraire cette section puis réutiliser `manifest_dependency_names(...)` ;
|
||||
- vérifier l'inventaire exact des clés de dépendance : `ksp-core-lib` uniquement ;
|
||||
- ne modifier aucun manifeste de crate, source de production, type public ou dependency graph.
|
||||
|
||||
## Version
|
||||
|
||||
Le fix modifie une source Rust de test ; la version workspace devient :
|
||||
|
||||
```text
|
||||
workspace.package.version = 0.3.5-pre.5.fix.1
|
||||
```
|
||||
|
||||
Le numéro documentaire reste :
|
||||
|
||||
```text
|
||||
0.3.5-pre.005-fix.001
|
||||
```
|
||||
|
||||
## Fichiers modifiés
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
crates/ksp-interface-lib/tests/dependency_boundary.rs
|
||||
docs/validation/022-V0_3_5_INTERFACE_ACQUISITION_EVENTS.md
|
||||
deltas/0.3.5/pre.005-fix.001.md
|
||||
```
|
||||
|
||||
## Gate demandé
|
||||
|
||||
```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.3.5
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets
|
||||
cargo test -p ksp-interface-lib
|
||||
cargo test -p ksp-program-api
|
||||
```
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/022-V0_3_5_INTERFACE_ACQUISITION_EVENTS.md -->
|
||||
<!-- version: 6 -->
|
||||
<!-- version: 7 -->
|
||||
|
||||
# Validation `0.3.5` — Interface passive acquisition events
|
||||
|
||||
@@ -17,7 +17,7 @@ workspace.package.version = 0.3.4
|
||||
Version de travail :
|
||||
|
||||
```text
|
||||
0.3.5-pre.3
|
||||
0.3.5-pre.5.fix.1
|
||||
```
|
||||
|
||||
## 2. Gate d'entrée `v0.3.4`
|
||||
@@ -750,3 +750,29 @@ cargo test -p ksp-program-api
|
||||
```
|
||||
|
||||
Les gates Cargo de `pre.005` restent à exécuter par l'opérateur dans le repository réel.
|
||||
|
||||
## 33. Gate opérateur `pre.005` et correction `pre.005-fix.001`
|
||||
|
||||
Le gate opérateur du `2026-08-31` confirme que les audits Rust/Markdown et `cargo check --workspace` sont propres, mais révèle un défaut dans le nouveau canari de manifeste :
|
||||
|
||||
```text
|
||||
v0_3_5_pre_005_manifest_keeps_exact_core_only_graph_without_features_or_hidden_dependency_sections: FAILED
|
||||
left: 2
|
||||
right: 1
|
||||
```
|
||||
|
||||
Le manifeste Interface reste pourtant strictement Core-only. Le canari comptait naïvement les occurrences textuelles de `ksp-core-lib` dans :
|
||||
|
||||
```text
|
||||
ksp-core-lib = { path = "../ksp-core-lib" }
|
||||
```
|
||||
|
||||
Le nom apparaît donc deux fois sur une seule déclaration de dépendance : une fois comme clé et une fois dans le chemin. `pre.005-fix.001` corrige uniquement ce faux négatif en réutilisant le parseur de clés de dépendances déjà présent dans `dependency_boundary.rs`. Le canari vérifie désormais que la section `[dependencies]` existe exactement une fois et que son inventaire de clés vaut exactement `ksp-core-lib`, tout en conservant les interdictions `[features]`, `[dev-dependencies]` et `[build-dependencies]`.
|
||||
|
||||
Le fix modifie une source Rust de test ; la version workspace évolue donc vers :
|
||||
|
||||
```text
|
||||
0.3.5-pre.5.fix.1
|
||||
```
|
||||
|
||||
Aucun manifeste de crate, source de production, contrat public ou dependency graph n'est modifié.
|
||||
|
||||
Reference in New Issue
Block a user