v0.3.8-pre.012-fix.001
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
# file: Cargo.toml
|
||||
# version: 471
|
||||
# version: 472
|
||||
|
||||
[workspace]
|
||||
resolver = "3"
|
||||
members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-store-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-lib", "crates/ksp-job-api", "crates/ksp-job-backfill-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.8-pre.12"
|
||||
version = "0.3.8-pre.12.fix.1"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-app-store-desk/tests/desktop_contract.rs
|
||||
// version: 9
|
||||
// version: 10
|
||||
|
||||
//! Desktop template and frontend contract tests for the Store Desk scaffold.
|
||||
|
||||
@@ -37,6 +37,13 @@ fn pre_002_fix_001_vite_config_matches_ksp_desk_template_except_identity_ports_a
|
||||
assert_eq!(store, reference);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_012_fix_001_tsconfig_matches_common_ksp_desk_template_byte_exact() {
|
||||
let store = include_str!("../tsconfig.json");
|
||||
let reference = include_str!("../../ksp-app-backfill-desk/tsconfig.json");
|
||||
assert_eq!(store, reference);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_002_frontend_dependency_baseline_is_ksp_owned_and_select_free() {
|
||||
let parsed = parse_json(include_str!("../package.json"));
|
||||
|
||||
@@ -3,17 +3,29 @@
|
||||
"target": "ES2022",
|
||||
"useDefineForClassFields": true,
|
||||
"module": "ESNext",
|
||||
"lib": ["ES2022", "DOM", "DOM.Iterable"],
|
||||
"lib": [
|
||||
"ES2022",
|
||||
"DOM",
|
||||
"DOM.Iterable"
|
||||
],
|
||||
"skipLibCheck": true,
|
||||
"allowJs": false,
|
||||
"esModuleInterop": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"strict": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"moduleResolution": "Bundler",
|
||||
"moduleResolution": "bundler",
|
||||
"allowImportingTsExtensions": true,
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"noEmit": true
|
||||
"noEmit": true,
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"types": [
|
||||
"vite/client",
|
||||
"node"
|
||||
]
|
||||
},
|
||||
"include": ["frontend/ts/**/*.ts", "vite.config.ts"]
|
||||
"include": [
|
||||
"frontend",
|
||||
"vite.config.ts"
|
||||
]
|
||||
}
|
||||
|
||||
54
deltas/0.3.8/pre.012-fix.001.md
Normal file
54
deltas/0.3.8/pre.012-fix.001.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# Delta 0.3.8-pre.012-fix.001 — réalignement TypeScript Store Desk
|
||||
|
||||
## Base requise
|
||||
|
||||
- delivery : `0.3.8-pre.012` ;
|
||||
- `workspace.package.version` : `0.3.8-pre.12`.
|
||||
|
||||
## Défaut observé
|
||||
|
||||
Le gate technique final était vert jusqu'au build Tauri Store Desk. `npm run build` échouait dans TypeScript avec `TS2882` sur l'import side-effect :
|
||||
|
||||
```text
|
||||
datatables.net-bs5/css/dataTables.bootstrap5.css
|
||||
```
|
||||
|
||||
Une réinstallation npm ne modifiait rien. Le `tsconfig.json` Store Desk était le seul Desk KSP à ne plus correspondre au gabarit commun Config/Wallet/SOL Prices/Backfill. Après réalignement sur ce gabarit, `tsc && vite build` puis `cargo tauri build --bundles deb,rpm` ont réussi.
|
||||
|
||||
## Correction
|
||||
|
||||
- remplacer `crates/ksp-app-store-desk/tsconfig.json` par le gabarit Desk commun byte-for-byte ;
|
||||
- rétablir notamment `types = ["vite/client", "node"]`, `allowImportingTsExtensions = true` et les garde-fous TypeScript communs ;
|
||||
- ajouter un canari `desktop_contract` imposant l'identité exacte avec le `tsconfig.json` Backfill Desk ;
|
||||
- documenter la preuve et le besoin de rejouer le gate final sur l'overlay officiel.
|
||||
|
||||
## Scope négatif
|
||||
|
||||
Aucun changement de runtime Rust, frontend TypeScript/HTML/SASS métier, DTO, IPC, Store API/façade, PostgreSQL, SQL, migration, Config métier, Tauri capability ou dépendance npm.
|
||||
|
||||
## Version
|
||||
|
||||
`workspace.package.version = 0.3.8-pre.12.fix.1` : le fix touche une configuration de build frontend et un test Rust.
|
||||
|
||||
## Gate opérateur
|
||||
|
||||
```bash
|
||||
cargo fmt --all -- --check
|
||||
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
|
||||
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||
cargo test --workspace --all-targets --all-features
|
||||
cargo check -p ksp-store-lib --no-default-features
|
||||
|
||||
cargo tree -p ksp-app-store-desk --edges normal
|
||||
cargo tree -p ksp-app-store-desk -e features
|
||||
cargo tree -p ksp-store-lib --edges normal
|
||||
cargo tree -p ksp-store-lib -e features
|
||||
cargo tree --duplicates
|
||||
|
||||
(cd crates/ksp-app-store-desk && cargo tauri build --bundles deb,rpm)
|
||||
```
|
||||
|
||||
Un échec intermédiaire invalide le gate, même si le shell poursuit les commandes suivantes.
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/025-V0_3_8_STORE_DESK.md -->
|
||||
<!-- version: 27 -->
|
||||
<!-- version: 28 -->
|
||||
|
||||
# Validation v0.3.8 — Store Desk V1 RAW
|
||||
|
||||
@@ -891,3 +891,25 @@ Après tous les contrôles précédents, le build Store Desk est exécuté **en
|
||||
|
||||
Tout défaut ouvre `pre.012-fix.NNN` avant `pre.013`.
|
||||
|
||||
## 41. `pre.012-fix.001` — réalignement TypeScript Store Desk et fermeture du build frontend
|
||||
|
||||
Le gate technique final `pre.012` a confirmé que le format Rust, les audits, `cargo check`, Clippy `--all-targets --all-features -D warnings`, les tests workspace et le check Store sans feature par défaut sont verts. Le smoke Store Desk read-only a également fermé proprement le runtime.
|
||||
|
||||
Le build Tauri final a toutefois révélé un défaut de configuration frontend :
|
||||
|
||||
```text
|
||||
TS2882: Cannot find module or type declarations for side-effect import of
|
||||
'datatables.net-bs5/css/dataTables.bootstrap5.css'
|
||||
```
|
||||
|
||||
Le `tsconfig.json` de Store Desk avait divergé du gabarit commun Config/Wallet/SOL Prices/Backfill et ne déclarait notamment pas les types `vite/client` et `node`. Un `npm i -D` sans changement de dépendances n'a pas corrigé le problème ; le réalignement de `tsconfig.json` sur le gabarit Desk commun a ensuite permis à `tsc && vite build` de passer et au build Tauri de produire les bundles `.deb` et `.rpm`.
|
||||
|
||||
`pre.012-fix.001` officialise strictement cette correction :
|
||||
|
||||
- [X] `crates/ksp-app-store-desk/tsconfig.json` est byte-for-byte identique au gabarit `ksp-app-backfill-desk/tsconfig.json`, lui-même aligné avec Config/Wallet/SOL Prices ;
|
||||
- [X] `moduleResolution = "bundler"`, `allowImportingTsExtensions = true`, `types = ["vite/client", "node"]` et les garde-fous TypeScript communs sont présents ;
|
||||
- [X] un canari `desktop_contract` impose désormais cet alignement exact ;
|
||||
- [X] aucun runtime Rust, DTO, IPC, Store API/façade, PostgreSQL, SQL, migration, Config métier, capability Tauri ou dépendance npm n'est modifié ;
|
||||
- [X] `workspace.package.version` devient `0.3.8-pre.12.fix.1` car `tsconfig.json` est un changement build/config et un test Rust est ajouté.
|
||||
|
||||
Le gate final doit être rejoué sur l'overlay officiel. Le build Tauri reste la dernière opération lourde et doit passer avec le `tsconfig.json` versionné par ce fix, sans correction locale supplémentaire.
|
||||
|
||||
Reference in New Issue
Block a user