v0.1.4-pre.005-fix.001
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
# file: Cargo.toml
|
||||
# version: 67
|
||||
# version: 68
|
||||
|
||||
[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.5"
|
||||
version = "0.1.4-pre.5.fix.1"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: crates/ksp-app-config-desk/README.md -->
|
||||
<!-- version: 2 -->
|
||||
<!-- version: 3 -->
|
||||
|
||||
# `ksp-app-config-desk`
|
||||
|
||||
@@ -82,4 +82,6 @@ Le port HTTP est strict. Les futures applications desk utilisent les couples sui
|
||||
|
||||
## Dépendances frontend
|
||||
|
||||
Les dépendances frontend sont déclarées comme dépendances de développement car elles sont bundlées dans l'application desktop. Les commandes npm directes sont réservées à leur installation/mise à jour. Le cycle normal de développement et de build passe par Tauri, qui déclenche les scripts `dev` et `build`.
|
||||
Les bibliothèques consommées par le bundle applicatif sont déclarées sous `dependencies` : `@fltsci/tauri-plugin-tracing`, `@fortawesome/fontawesome-free`, `@tauri-apps/api`, `bootstrap`, `simplebar` et `resize-observer-polyfill`.
|
||||
|
||||
Les outils de compilation/développement et déclarations de types appartiennent à `devDependencies`, notamment `@tauri-apps/cli`, `@types/bootstrap`, `@types/node`, `sass-embedded`, `typescript` et `vite`. Les commandes npm directes sont réservées à l'installation ou à la mise à jour de ces dépendances ; le cycle normal de développement et de build est lancé depuis la racine du workspace par Tauri avec la configuration explicite de l'application.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: crates/ksp-app-config-desk/USAGE.md -->
|
||||
<!-- version: 2 -->
|
||||
<!-- version: 3 -->
|
||||
|
||||
# Utilisation de `ksp-app-config-desk`
|
||||
|
||||
@@ -21,16 +21,17 @@ installer les dépendances déclarées avec la commande de gestion prévue par l
|
||||
|
||||
```bash
|
||||
npm i -D
|
||||
cd ../../
|
||||
```
|
||||
|
||||
Les lockfiles frontend restent ignorés et ne sont pas versionnés.
|
||||
`npm i -D` sans nom de package installe les dépendances déclarées du package ; la classification `dependencies` / `devDependencies` reste celle de `package.json`. Les lockfiles frontend restent ignorés et ne sont pas versionnés. Après cette installation, les commandes Cargo/Tauri sont exécutées depuis la racine du workspace.
|
||||
|
||||
## Développement normal
|
||||
|
||||
Le frontend n'est pas lancé directement avec npm. Depuis la crate ou avec le package explicitement sélectionné selon l'environnement Cargo/Tauri, utiliser le cycle Tauri habituel :
|
||||
Le frontend n'est pas lancé directement avec npm. KSP est un workspace Rust multi-app : depuis la racine du workspace, la configuration Tauri de l'application doit être sélectionnée explicitement :
|
||||
|
||||
```bash
|
||||
cargo tauri dev
|
||||
cargo tauri dev -c crates/ksp-app-config-desk/tauri.conf.json
|
||||
```
|
||||
|
||||
Tauri exécute alors le hook :
|
||||
@@ -50,7 +51,13 @@ Si le port HTTP est déjà occupé, le démarrage doit échouer au lieu de séle
|
||||
|
||||
## Build frontend
|
||||
|
||||
Le build de l'application passe également par Tauri. `beforeBuildCommand` déclenche :
|
||||
Le build de l'application passe également par Tauri. Depuis la racine du workspace :
|
||||
|
||||
```bash
|
||||
cargo tauri build -c crates/ksp-app-config-desk/tauri.conf.json
|
||||
```
|
||||
|
||||
`beforeBuildCommand` déclenche :
|
||||
|
||||
```text
|
||||
npm run build
|
||||
|
||||
@@ -5,17 +5,23 @@
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "tsc && vite build"
|
||||
"build": "tsc && vite build",
|
||||
"preview": "vite preview",
|
||||
"tauri": "tauri"
|
||||
},
|
||||
"devDependencies": {
|
||||
"dependencies": {
|
||||
"@fltsci/tauri-plugin-tracing": "^0.3",
|
||||
"@fortawesome/fontawesome-free": "^7.3",
|
||||
"@tauri-apps/api": "^2.11",
|
||||
"@types/node": "^26.1",
|
||||
"bootstrap": "^5.3",
|
||||
"resize-observer-polyfill": "^1.5",
|
||||
"simplebar": "^6.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tauri-apps/cli": "^2.11",
|
||||
"@types/bootstrap": "^5.2",
|
||||
"@types/node": "^26.1",
|
||||
"sass-embedded": "^1.102",
|
||||
"simplebar": "^6.3",
|
||||
"typescript": "^7.0",
|
||||
"vite": "^8.2"
|
||||
}
|
||||
|
||||
128
deltas/0.1.4/pre.005-fix.001.md
Normal file
128
deltas/0.1.4/pre.005-fix.001.md
Normal file
@@ -0,0 +1,128 @@
|
||||
<!-- file: deltas/0.1.4/pre.005-fix.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# `0.1.4-pre.005-fix.001` — Classification npm et commande Tauri workspace
|
||||
|
||||
## 1. Motif du fix
|
||||
|
||||
`pre.005` a correctement introduit le frontend Tauri/Vite et le plugin tracing, mais son `package.json` classait à tort toutes les dépendances frontend sous `devDependencies`. La documentation de lancement utilisait également une forme `cargo tauri dev` adaptée à une application isolée, alors que KSP est un workspace Rust destiné à contenir plusieurs applications Tauri.
|
||||
|
||||
Le correctif ne modifie pas le périmètre fonctionnel de `pre.005`.
|
||||
|
||||
## 2. Version technique
|
||||
|
||||
Le fix modifie `package.json` et la configuration de développement effective ; le signal Cargo devient donc :
|
||||
|
||||
```text
|
||||
workspace.package.version = "0.1.4-pre.5.fix.1"
|
||||
```
|
||||
|
||||
La version applicative frontend/Tauri reste `0.1.4`, conformément à la politique KSP actuelle.
|
||||
|
||||
## 3. Classification npm corrigée
|
||||
|
||||
Les bibliothèques consommées par le bundle applicatif sont sous `dependencies` :
|
||||
|
||||
```text
|
||||
@fltsci/tauri-plugin-tracing
|
||||
@fortawesome/fontawesome-free
|
||||
@tauri-apps/api
|
||||
bootstrap
|
||||
resize-observer-polyfill
|
||||
simplebar
|
||||
```
|
||||
|
||||
Les outils de build/développement et typings sont sous `devDependencies` :
|
||||
|
||||
```text
|
||||
@tauri-apps/cli
|
||||
@types/bootstrap
|
||||
@types/node
|
||||
sass-embedded
|
||||
typescript
|
||||
vite
|
||||
```
|
||||
|
||||
Les contraintes restent volontairement au niveau de génération compatible. `@types/bootstrap` utilise `^5.2` et `@tauri-apps/cli` `^2.11`.
|
||||
|
||||
Les scripts `preview` et `tauri` du gabarit bot3 sont également restaurés. Le workflow opérateur KSP n'utilise toutefois pas npm pour lancer directement l'application.
|
||||
|
||||
## 4. Workflow d'installation et de lancement
|
||||
|
||||
La première installation frontend se fait depuis la crate :
|
||||
|
||||
```bash
|
||||
cd crates/ksp-app-config-desk
|
||||
npm i -D
|
||||
cd ../../
|
||||
```
|
||||
|
||||
`npm i -D` sans nom de package installe les dépendances déjà déclarées dans `package.json`; il ne change pas leur classification existante. Les lockfiles restent ignorés et non versionnés.
|
||||
|
||||
Le développement reprend ensuite depuis la racine du workspace :
|
||||
|
||||
```bash
|
||||
cargo tauri dev -c crates/ksp-app-config-desk/tauri.conf.json
|
||||
```
|
||||
|
||||
Le build utilise de même :
|
||||
|
||||
```bash
|
||||
cargo tauri build -c crates/ksp-app-config-desk/tauri.conf.json
|
||||
```
|
||||
|
||||
Cette sélection explicite par `-c` est nécessaire au gabarit KSP multi-app et évite toute ambiguïté lorsque plusieurs crates Tauri coexistent dans le même workspace.
|
||||
|
||||
## 5. Règles et plan synchronisés
|
||||
|
||||
`RULES_KSP.md` distingue désormais explicitement :
|
||||
|
||||
- `dependencies` pour les bibliothèques runtime/bundle frontend ;
|
||||
- `devDependencies` pour tooling et `@types/*` ;
|
||||
- npm direct uniquement pour la gestion des dépendances ;
|
||||
- retour à la racine du workspace après installation npm ;
|
||||
- sélection de chaque application Tauri avec `-c crates/<app>/tauri.conf.json`.
|
||||
|
||||
Le plan `0.1.4` est synchronisé avec la même convention.
|
||||
|
||||
## 6. Tracing
|
||||
|
||||
La correction ne retire ni ne modifie l'intégration tracing de `pre.005` :
|
||||
|
||||
```text
|
||||
Rust : tauri-plugin-tracing
|
||||
Frontend : @fltsci/tauri-plugin-tracing
|
||||
Capability: tracing:default
|
||||
```
|
||||
|
||||
## 7. Fichiers modifiés
|
||||
|
||||
| Fichier | Action |
|
||||
| ---------------------------------------------- | ------: |
|
||||
| `Cargo.toml` | modifié |
|
||||
| `crates/ksp-app-config-desk/package.json` | modifié |
|
||||
| `crates/ksp-app-config-desk/README.md` | modifié |
|
||||
| `crates/ksp-app-config-desk/USAGE.md` | modifié |
|
||||
| `docs/rules/RULES_KSP.md` | modifié |
|
||||
| `docs/plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md` | modifié |
|
||||
| `deltas/0.1.4/pre.005-fix.001.md` | ajouté |
|
||||
|
||||
## 8. Validations à exécuter après application
|
||||
|
||||
Depuis la racine du workspace, après installation npm :
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets
|
||||
cargo test -p ksp-app-config-desk
|
||||
cargo test -p ksp-config-lib
|
||||
cargo tree -p ksp-app-config-desk
|
||||
cargo tauri dev -c crates/ksp-app-config-desk/tauri.conf.json
|
||||
```
|
||||
|
||||
Le test desktop doit confirmer au minimum que Tauri lance lui-même `npm run dev`, que Vite reste sur `1430/1431`, que la fenêtre splash s'ouvre et qu'aucune commande npm de démarrage manuel n'est nécessaire.
|
||||
|
||||
## 9. Suite
|
||||
|
||||
Après validation de ce fix, la tranche suivante reste `pre.006` : bootstrap backend, `AppState`, intégration `ksp-config-lib` / `ksp-logging-lib`, ownership du `LoggingGuard` et premiers DTO TS-RS réels.
|
||||
@@ -263,7 +263,7 @@ Le premier `cargo tauri dev` doit donc au minimum prouver :
|
||||
## 12. Fichiers modifiés
|
||||
|
||||
| Fichier | Version précédente | Nouvelle version |
|
||||
| -------------------------------------------------------------- | ------------------: | ---------------: |
|
||||
|--------------------------------------------------------|-------------------:|-----------------:|
|
||||
| `Cargo.toml` | 66 | 67 |
|
||||
| `crates/ksp-app-config-desk/Cargo.toml` | 1 | 2 |
|
||||
| `crates/ksp-app-config-desk/src/tauri.rs` | 1 | 2 |
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md -->
|
||||
<!-- version: 5 -->
|
||||
<!-- version: 6 -->
|
||||
|
||||
# Plan `0.1.4` — `ksp-app-config-desk`
|
||||
|
||||
@@ -230,9 +230,9 @@ Les artefacts frontend construits doivent être séparés des sources. Pour `ksp
|
||||
../../builds/khadhroony-solana-project/ksp-app-config-desk/dist
|
||||
```
|
||||
|
||||
Cette valeur est utilisée par `build.frontendDist` dans `tauri.conf.json`. `vite.config.ts` utilisera la même destination comme `build.outDir` lors de son introduction. Elle remplace le `../dist`/`../../dist` historique du gabarit bot3.
|
||||
Cette valeur est utilisée par `build.frontendDist` dans `tauri.conf.json`. `vite.config.ts` utilise la même destination comme `build.outDir` depuis son introduction en `pre.005`. Elle remplace le `../dist`/`../../dist` historique du gabarit bot3.
|
||||
|
||||
La gestion npm suit une règle simple : npm est utilisé directement pour installer ou mettre à jour les dépendances (`npm i -D ...`). Le cycle normal de développement et de build passe par Tauri ; `cargo tauri dev` et `cargo tauri build` déclenchent eux-mêmes `npm run dev` / `npm run build` au travers des hooks Tauri. Il n'est pas demandé à l'opérateur de lancer séparément le serveur Vite. Aucun lockfile npm n'est versionné.
|
||||
La gestion npm distingue le runtime frontend du tooling. Les bibliothèques consommées par le bundle appartiennent à `dependencies`; les outils de compilation/développement (`@tauri-apps/cli`, Vite, TypeScript, Sass) et les paquets `@types/*` appartiennent à `devDependencies`. npm est utilisé directement uniquement pour installer ou mettre à jour ces dépendances. Pour la première installation, l'opérateur se place dans `crates/ksp-app-config-desk`, exécute `npm i -D`, puis revient à la racine avec `cd ../../`. Le cycle normal de développement et de build passe ensuite par Tauri depuis la racine du workspace, avec configuration explicite de l'application : `cargo tauri dev -c crates/ksp-app-config-desk/tauri.conf.json` et `cargo tauri build -c crates/ksp-app-config-desk/tauri.conf.json`. Tauri déclenche lui-même `npm run dev` / `npm run build` au travers des hooks configurés. Aucun lockfile npm n'est versionné.
|
||||
|
||||
Chaque application Tauri desk KSP reçoit un couple de ports Vite/HMR propre. La première application réserve :
|
||||
|
||||
@@ -256,6 +256,7 @@ Aucune dépendance n'est ajoutée par `pre.001`. Les versions suivantes ont ét
|
||||
| `@fltsci/tauri-plugin-tracing` | `0.3.4` | package frontend compagnon du plugin tracing |
|
||||
| `@tauri-apps/api` | `2.11.1` | frontend Tauri |
|
||||
| `@tauri-apps/cli` | `2.11.4` | dev/build desktop |
|
||||
| `@types/bootstrap` | `5.2.11` | typings Bootstrap |
|
||||
| `vite` | `8.2.1` | build frontend |
|
||||
| `typescript` | `7.0.2` | frontend TypeScript |
|
||||
| `sass-embedded` | `1.102.0` | compilation SCSS |
|
||||
@@ -273,6 +274,7 @@ Sources d'audit :
|
||||
- <https://github.com/fltsci/tauri-plugin-tracing/blob/main/package.json>
|
||||
- <https://www.npmjs.com/package/@tauri-apps/api>
|
||||
- <https://www.npmjs.com/package/@tauri-apps/cli>
|
||||
- <https://www.npmjs.com/package/@types/bootstrap>
|
||||
- <https://www.npmjs.com/package/vite>
|
||||
- <https://www.npmjs.com/package/typescript>
|
||||
- <https://www.npmjs.com/package/sass-embedded>
|
||||
@@ -1279,22 +1281,31 @@ ts-rs
|
||||
|
||||
### Frontend
|
||||
|
||||
`dependencies` :
|
||||
|
||||
```text
|
||||
@fltsci/tauri-plugin-tracing
|
||||
@tauri-apps/api
|
||||
@tauri-apps/cli
|
||||
vite
|
||||
typescript
|
||||
sass-embedded
|
||||
bootstrap
|
||||
@fortawesome/fontawesome-free
|
||||
@tauri-apps/api
|
||||
bootstrap
|
||||
simplebar
|
||||
resize-observer-polyfill
|
||||
```
|
||||
|
||||
`devDependencies` :
|
||||
|
||||
```text
|
||||
@tauri-apps/cli
|
||||
@types/bootstrap
|
||||
@types/node
|
||||
sass-embedded
|
||||
typescript
|
||||
vite
|
||||
```
|
||||
|
||||
DataTables est ajouté à la première tranche qui introduit un tableau nécessitant tri/filtrage/sélection/checkboxes, avec le couple bot3 `datatables.net-bs5` + `datatables.net-select-bs5` comme référence à réauditer avant ajout. Il n'est pas ajouté au squelette vide uniquement par symétrie.
|
||||
|
||||
`@types/node` ne sera ajouté que si la configuration Vite TypeScript en a réellement besoin. ECharts, `@andypf/json-viewer` et les autres packages métier/démo bot3 restent exclus tant qu'une tranche n'en démontre pas l'usage immédiat.
|
||||
`@types/node` est requis par la configuration Vite TypeScript actuelle. Les autres paquets `@types/*` sont ajoutés uniquement lorsqu'une dépendance réellement utilisée en a besoin. ECharts, `@andypf/json-viewer` et les autres packages métier/démo bot3 restent exclus tant qu'une tranche n'en démontre pas l'usage immédiat.
|
||||
|
||||
La politique KSP sans lockfile versionné reste inchangée.
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/rules/RULES_KSP.md -->
|
||||
<!-- version: 23 -->
|
||||
<!-- version: 24 -->
|
||||
|
||||
# Règles spécifiques à KSP
|
||||
|
||||
@@ -217,7 +217,8 @@
|
||||
- **KSP-APP-022** — La construction d'un `tauri::Builder` KSP reste progressive et lisible : une variable builder est configurée/réassignée par étapes courtes ou helpers ciblés plutôt qu'au moyen d'une longue chaîne monolithique, afin qu'un plugin, state, setup ou groupe de commandes puisse être désactivé sans restructurer l'ensemble du runtime.
|
||||
- **KSP-APP-023** — Le gabarit Tauri KSP place les sources web sous `frontend/`, les modules TypeScript sous `frontend/ts/`, les styles SCSS sous `frontend/sass/` et les bindings TS-RS générés sous `frontend/ts/bindings/`. Les bindings et artefacts générés ne sont pas versionnés ; les DTO Rust applicatifs restent la source des contrats TS-RS.
|
||||
- **KSP-APP-024** — Chaque application desk Tauri KSP possède un couple de ports Vite/HMR exclusif. L'allocation commence à `1430/1431` pour `ksp-app-config-desk` puis progresse par paires (`1432/1433`, `1434/1435`, etc.). Le port Vite est strict afin qu'une collision échoue explicitement au lieu de sélectionner silencieusement un autre port.
|
||||
- **KSP-APP-025** — npm est utilisé directement pour installer ou mettre à jour les dépendances frontend (`npm i -D ...`). Le cycle normal de développement/build d'une application Tauri passe par les commandes Tauri, qui déclenchent les scripts npm configurés via `beforeDevCommand`/`beforeBuildCommand`; les lockfiles frontend restent non versionnés.
|
||||
- **KSP-APP-025** — Dans `package.json`, les bibliothèques consommées par le bundle applicatif appartiennent à `dependencies`; les outils de build/développement et paquets `@types/*` appartiennent à `devDependencies`. npm est utilisé directement uniquement pour installer ou mettre à jour ces dépendances. Le cycle normal de développement/build passe par Tauri, qui déclenche les scripts npm configurés via `beforeDevCommand`/`beforeBuildCommand`; les lockfiles frontend restent non versionnés.
|
||||
- **KSP-APP-026** — KSP étant un workspace Rust multi-app, les commandes Tauri lancées depuis la racine sélectionnent explicitement la configuration de l'application avec `-c crates/<app>/tauri.conf.json` (par exemple `cargo tauri dev -c crates/ksp-app-config-desk/tauri.conf.json`). Après une installation npm effectuée depuis `crates/<app>`, l'opérateur revient à la racine du workspace avant le cycle Cargo/Tauri.
|
||||
|
||||
## Data plane / control plane
|
||||
|
||||
|
||||
Reference in New Issue
Block a user