122 lines
4.2 KiB
Markdown
122 lines
4.2 KiB
Markdown
<!-- file: deltas/0.2.6/pre.018-fix.001.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta `0.2.6-pre.018-fix.001` — ownership Config du canari resources et resynchronisation candidate
|
|
|
|
## Base requise
|
|
|
|
```text
|
|
0.2.6-pre.018 appliquée
|
|
workspace.package.version = 0.2.6-pre.18
|
|
```
|
|
|
|
Le gate opérateur du 22 août 2026 confirme :
|
|
|
|
```text
|
|
cargo fmt --all OK
|
|
python3 scripts/audit_rust_workspace_rules.py clean
|
|
cargo check --workspace OK
|
|
cargo clippy --workspace --all-targets OK
|
|
cargo test -p ksp-wallet-lib 84 passed / 1 ignored
|
|
cargo test -p ksp-app-config-desk OK
|
|
cargo test -p ksp-app-wallet-desk OK
|
|
```
|
|
|
|
`cargo test -p ksp-config-lib` puis `cargo test --workspace` échouent toutefois sur le canari d'ownership :
|
|
|
|
```text
|
|
workspace_crates_do_not_hardcode_config_managed_physical_files
|
|
```
|
|
|
|
La cause est locale à `crates/ksp-app-wallet-desk/tests/release_compliance.rs` : le nouveau test de resources de `pre.018` recopie littéralement le nom physique du dotenv alors que KSP-CONFIG impose que ce nom reste possédé par `ksp-config-lib`.
|
|
|
|
Le `cargo tauri build` lancé ensuite a techniquement produit les bundles `.deb`, `.rpm` et `.AppImage`, mais **ne constitue pas la preuve finale de release**, puisque le gate Rust précédent était rouge. Il devra être rejoué après ce fix et redevenir l'absolue dernière opération.
|
|
|
|
## Signal technique
|
|
|
|
```text
|
|
workspace.package.version = 0.2.6-pre.18.fix.1
|
|
package.json Config Desk = 0.2.6-pre.18.fix.1
|
|
package.json Wallet Desk = 0.2.6-pre.18.fix.1
|
|
tauri.conf Config Desk = 0.2.6-pre.18.fix.1
|
|
tauri.conf Wallet Desk = 0.2.6-pre.18.fix.1
|
|
commit = v0.2.6-pre.018-fix.001
|
|
```
|
|
|
|
Aucun tag prerelease.
|
|
|
|
## Correction ownership
|
|
|
|
Le canari Wallet Desk conserve exactement son objectif de sécurité, mais ne possède plus le nom physique du dotenv :
|
|
|
|
```rust
|
|
ksp_config_lib::DEFAULT_DOTENV_PATH
|
|
```
|
|
|
|
remplace le littéral local. La règle `ksp-config-lib/tests/ownership.rs` reste donc stricte ; aucun contournement, exclusion ou `allow` n'est ajouté.
|
|
|
|
Les autres interdictions du canari (`wallets`, `logs`, `secret`, `private`) restent inchangées car elles vérifient le contenu des resources Tauri et ne redéfinissent pas un nom de document Config enregistré.
|
|
|
|
## Versions candidate
|
|
|
|
Les versions Cargo, npm et Tauri des deux Desks sont resynchronisées sur `pre.18.fix.1`. Le badge Wallet Desk suit le même signal.
|
|
|
|
Les canaris `pre.018` ne figent plus une chaîne prerelease particulière : ils comparent maintenant `package.json`, `tauri.conf.json` et le badge Wallet Desk à `env!("CARGO_PKG_VERSION")`. Un futur `pre.018-fix.NNN` ne pourra donc pas introduire une divergence de version simplement parce qu'un test contient encore l'ancien numéro.
|
|
|
|
## Parcours Tauri dev
|
|
|
|
Le parcours essayé avec :
|
|
|
|
```text
|
|
bash -lc 'cd crates/ksp-app-wallet-desk && cargo tauri dev'
|
|
```
|
|
|
|
n'est pas retenu : dans l'environnement opérateur, le login shell remplace le `PATH` et perd Cargo.
|
|
|
|
La forme canonique reste crate-local, sans login shell :
|
|
|
|
```bash
|
|
cd crates/ksp-app-wallet-desk
|
|
KSP_WALLETS_DIRECTORY=var/wallet-desk-pre018-fix001 cargo tauri dev
|
|
```
|
|
|
|
ou, depuis la racine :
|
|
|
|
```bash
|
|
(cd crates/ksp-app-wallet-desk && KSP_WALLETS_DIRECTORY=var/wallet-desk-pre018-fix001 cargo tauri dev)
|
|
```
|
|
|
|
## Validation opérateur requise
|
|
|
|
Rejouer le gate depuis le début :
|
|
|
|
```bash
|
|
cargo fmt --all
|
|
python3 scripts/audit_rust_workspace_rules.py
|
|
cargo check --workspace
|
|
cargo clippy --workspace --all-targets
|
|
cargo test -p ksp-config-lib
|
|
cargo test -p ksp-wallet-lib
|
|
cargo test -p ksp-app-config-desk
|
|
cargo test -p ksp-app-wallet-desk
|
|
cargo test --workspace
|
|
```
|
|
|
|
Puis les audits de dépendances si souhaités :
|
|
|
|
```bash
|
|
cargo tree -p ksp-config-lib --depth 1
|
|
cargo tree -p ksp-app-wallet-desk --depth 1
|
|
cargo tree -p ksp-app-wallet-desk -d
|
|
```
|
|
|
|
Le parcours fonctionnel `cargo tauri dev` et les smokes live retenus sont exécutés **avant** le build.
|
|
|
|
Après tout ce qui précède, l'absolue dernière opération est :
|
|
|
|
```bash
|
|
(cd crates/ksp-app-wallet-desk && cargo tauri build)
|
|
```
|
|
|
|
Si ce build est vert, `0.2.6-pre.018-fix.001` devient la candidate validée et la seule étape suivante est `0.2.6-rel.001` + tag stable `v0.2.6`.
|