v0.1.4-pre.004-fix.001
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
# file: Cargo.toml
|
||||
# version: 65
|
||||
# version: 66
|
||||
|
||||
[workspace]
|
||||
resolver = "3"
|
||||
members = ["crates/ksp-app-config-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib"]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.1.4-pre.4"
|
||||
version = "0.1.4-pre.4.fix.1"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||
|
||||
139
deltas/0.1.4/pre.004-fix.001.md
Normal file
139
deltas/0.1.4/pre.004-fix.001.md
Normal file
@@ -0,0 +1,139 @@
|
||||
<!-- file: deltas/0.1.4/pre.004-fix.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.1.4-pre.004-fix.001 — correction Clippy du verrou single-instance
|
||||
|
||||
## Base requise
|
||||
|
||||
```text
|
||||
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, `87` tests unitaires + `4` tests ownership + `12` tests API publique ;
|
||||
- `cargo tree -p ksp-app-config-desk` : exécuté ;
|
||||
- `cargo clippy --workspace --all-targets` : compilation réussie mais avec un warning `clippy::suspicious_open_options` dans `src/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 :
|
||||
|
||||
```text
|
||||
0.1.4-pre.4
|
||||
```
|
||||
|
||||
à :
|
||||
|
||||
```text
|
||||
0.1.4-pre.4.fix.1
|
||||
```
|
||||
|
||||
L'identifiant documentaire de livraison reste :
|
||||
|
||||
```text
|
||||
0.1.4-pre.004-fix.001
|
||||
```
|
||||
|
||||
## 1. Cause du warning
|
||||
|
||||
Le launcher ouvre le fichier utilisé pour le verrou single-instance avec :
|
||||
|
||||
```rust
|
||||
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 :
|
||||
|
||||
```rust
|
||||
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 à :
|
||||
|
||||
```json
|
||||
"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 :
|
||||
|
||||
```text
|
||||
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 :
|
||||
|
||||
```bash
|
||||
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 :
|
||||
|
||||
```text
|
||||
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.
|
||||
Reference in New Issue
Block a user