Audit and remove unused dependencies, resolve crate duplication, and optimize build performance #38

Closed
opened 2026-08-24 09:43:25 +01:00 by gronod · 0 comments
Owner

Summary

Builds in CI/CD take a long time due to dependency compilation overhead and duplicate crate versions. This issue tracks auditing and removing unused dependencies, trimming crate features, resolving crate version conflicts, and configuring cargo release profile optimizations.

Scope of Changes

  1. Remove Unused Dependencies:
    • Remove tauri-plugin-opener Rust crate and plugin registration (Cargo.toml, src/lib.rs, capabilities/default.json).
    • Remove unused @tauri-apps/plugin-dialog from package.json.
  2. Trim Crate Features & Cross-Platform Scoping:
    • Reduce tokio features from ["full"] to ["process", "io-util", "sync", "time", "rt-multi-thread"].
    • Restrict image crate to Windows targets ([target.'cfg(windows)'.dependencies]) with only features = ["tiff"], eliminating image decoding crates on Linux and macOS.
  3. Unify Windows SDK Bindings:
    • Upgrade windows to 0.61 in Cargo.toml to unify with Tauri 2 internals and eliminate duplicate compilation of windows v0.58, windows-core, windows-result, windows-strings, and syn v2.
    • Remove unused "Win32_Storage_FileSystem" feature flag.
  4. Cargo Build Optimization:
    • Add [profile.release] with panic = "abort", codegen-units = 1, lto = "thin", and strip = true.
  5. Version Management:
    • Increment point version from 0.1.3 to 0.1.4 across package.json, Cargo.toml, and tauri.conf.json.
    • Update package.json package name to iccery.
### Summary Builds in CI/CD take a long time due to dependency compilation overhead and duplicate crate versions. This issue tracks auditing and removing unused dependencies, trimming crate features, resolving crate version conflicts, and configuring cargo release profile optimizations. ### Scope of Changes 1. **Remove Unused Dependencies**: - Remove `tauri-plugin-opener` Rust crate and plugin registration (`Cargo.toml`, `src/lib.rs`, `capabilities/default.json`). - Remove unused `@tauri-apps/plugin-dialog` from `package.json`. 2. **Trim Crate Features & Cross-Platform Scoping**: - Reduce `tokio` features from `["full"]` to `["process", "io-util", "sync", "time", "rt-multi-thread"]`. - Restrict `image` crate to Windows targets (`[target.'cfg(windows)'.dependencies]`) with only `features = ["tiff"]`, eliminating image decoding crates on Linux and macOS. 3. **Unify Windows SDK Bindings**: - Upgrade `windows` to `0.61` in `Cargo.toml` to unify with Tauri 2 internals and eliminate duplicate compilation of `windows v0.58`, `windows-core`, `windows-result`, `windows-strings`, and `syn v2`. - Remove unused `"Win32_Storage_FileSystem"` feature flag. 4. **Cargo Build Optimization**: - Add `[profile.release]` with `panic = "abort"`, `codegen-units = 1`, `lto = "thin"`, and `strip = true`. 5. **Version Management**: - Increment point version from `0.1.3` to `0.1.4` across `package.json`, `Cargo.toml`, and `tauri.conf.json`. - Update `package.json` package name to `iccery`.
Sign in to join this conversation.