4.0 KiB
Delta 0.1.4-pre.004-fix.001 — correction Clippy du verrou single-instance
Base requise
0.1.4-pre.004
workspace.package.version = "0.1.4-pre.4"
La tranche pre.004 a été appliquée puis validée localement. Les contrôles fournis ont montré :
cargo fmt --all: succès ;cargo check --workspace: succès ;cargo test -p ksp-app-config-desk: succès, dont le test d'API publique ;cargo test -p ksp-config-lib: succès,87tests unitaires +4tests ownership +12tests API publique ;cargo tree -p ksp-app-config-desk: exécuté ;cargo clippy --workspace --all-targets: compilation réussie mais avec un warningclippy::suspicious_open_optionsdanssrc/main.rs.
Ce fix corrige uniquement ce warning avant de poursuivre vers le frontend de pre.005.
Version Cargo
Le correctif touche un fichier Rust consommé par le runtime. Conformément à VER-ID-007 et VER-ID-010, workspace.package.version passe de :
0.1.4-pre.4
à :
0.1.4-pre.4.fix.1
L'identifiant documentaire de livraison reste :
0.1.4-pre.004-fix.001
1. Cause du warning
Le launcher ouvre le fichier utilisé pour le verrou single-instance avec :
std::fs::OpenOptions::new()
.read(true)
.write(true)
.create(true)
Comme create(true) est demandé, Clippy exige que le comportement de troncature soit explicite. Le fichier n'est pas un fichier de contenu à réécrire : il sert uniquement de support au verrou exclusif inter-processus.
Le troncage n'est donc pas souhaité.
2. Correction
L'ouverture devient explicitement non destructive :
std::fs::OpenOptions::new()
.read(true)
.write(true)
.create(true)
.truncate(false)
.open(&lock_path)
Cette modification :
- supprime l'ambiguïté signalée par
clippy::suspicious_open_options; - ne modifie pas le lifecycle du verrou ;
- ne vide pas inutilement un fichier de lock existant ;
- conserve
try_lock_exclusive()comme mécanisme single-instance effectif.
Aucune suppression du fichier de lock n'est introduite : le verrou appartient au descripteur ouvert et est libéré lorsque le processus ferme ce descripteur.
3. Capability tracing à venir
tauri-plugin-tracing n'est pas encore installé dans pre.004-fix.001. La capability actuelle reste donc volontairement limitée à :
"permissions": [
"core:default"
]
Lors de l'introduction effective de tauri-plugin-tracing, prévue avec le frontend/tracing de pre.005, crates/ksp-app-config-desk/capabilities/default.json devra ajouter dans le même delta :
tracing:default
Le permissionnement ne doit pas être ajouté avant le plugin auquel il correspond.
4. Fichiers modifiés
| Fichier | Type | Rôle |
|---|---|---|
Cargo.toml |
build | version technique du fix |
crates/ksp-app-config-desk/src/main.rs |
Rust | politique de troncature explicite |
deltas/0.1.4/pre.004-fix.001.md |
Markdown | traçabilité du correctif |
5. Hors scope
Ce correctif n'ajoute pas :
tauri-plugin-tracing;tracing:default;- packages npm ;
- frontend Vite/TypeScript/SCSS ;
- Config/Logging runtime applicatif ;
- commande Tauri ;
- DTO TS-RS.
Ces éléments restent dans les tranches prévues à partir de pre.005.
6. Validations demandées
Après application du fix :
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-app-config-desk
cargo tree -p ksp-app-config-desk
Le résultat attendu de cargo clippy --workspace --all-targets est l'absence du warning :
clippy::suspicious_open_options
Aucun test Config supplémentaire n'est requis pour cette correction localisée au launcher de l'application ; ksp-config-lib n'est pas modifiée.