From 6a4cf3fc2ba571482f432b0c8e58384e482adf44 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Sat, 15 Aug 2026 00:33:56 +0000 Subject: [PATCH] Package Windows with statically linked ONNX Runtime. --- README.md | 2 +- crates/bds-release/src/packaging.rs | 5 ++--- crates/bds-ui/tests/packaging_assets.rs | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a13b971..0e1b311 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ RuDS uses no JavaScript application runtime and loads no CSS or JavaScript from The packaged Apple Silicon application requires macOS 26 or newer. -Packaged executables share native `bds-core` and `bds-server` dynamic libraries. macOS and Linux link ONNX Runtime statically into `bds-core`; Windows archives carry the matching ONNX Runtime DLL plus Microsoft's DirectML redistributable and license for GPU-accelerated local embeddings. The **Install CLI** action replaces `~/.local/bin/bds-cli` with a symbolic link to the packaged CLI, so the command executes beside the same runtime libraries and always follows the package selected by the latest installation. +Packaged executables share native `bds-core` and `bds-server` dynamic libraries and link ONNX Runtime statically into `bds-core`. Windows archives additionally carry Microsoft's DirectML redistributable and license for GPU-accelerated local embeddings. The **Install CLI** action replaces `~/.local/bin/bds-cli` with a symbolic link to the packaged CLI, so the command executes beside the same runtime libraries and always follows the package selected by the latest installation. Local macOS packages are ad-hoc signed without hardened runtime. A Developer ID and notarization remain optional release-channel steps for downloads that should pass Gatekeeper without a user override. diff --git a/crates/bds-release/src/packaging.rs b/crates/bds-release/src/packaging.rs index 24f7a86..4caece7 100644 --- a/crates/bds-release/src/packaging.rs +++ b/crates/bds-release/src/packaging.rs @@ -271,7 +271,7 @@ fn runtime_files( .filter_map(|name| name.into_string().ok()) .filter(|name| name.starts_with("libonnxruntime.so")) .collect::>(), - Platform::Windows => ["onnxruntime.dll", "DirectML.dll", "DirectML-LICENSE.txt"] + Platform::Windows => ["DirectML.dll", "DirectML-LICENSE.txt"] .into_iter() .map(str::to_owned) .collect(), @@ -640,7 +640,6 @@ mod tests { "bds-mcp.exe", "bds_core.dll", "bds_server.dll", - "onnxruntime.dll", "DirectML.dll", "DirectML-LICENSE.txt", ] { @@ -663,7 +662,7 @@ mod tests { .by_name("bds-desktop-v1.2.3-windows-x64/bds_core.dll") .is_ok() ); - for runtime in ["onnxruntime.dll", "DirectML.dll", "DirectML-LICENSE.txt"] { + for runtime in ["DirectML.dll", "DirectML-LICENSE.txt"] { assert!( archive .by_name(&format!("bds-desktop-v1.2.3-windows-x64/{runtime}")) diff --git a/crates/bds-ui/tests/packaging_assets.rs b/crates/bds-ui/tests/packaging_assets.rs index 31b0ea0..18c8d5a 100644 --- a/crates/bds-ui/tests/packaging_assets.rs +++ b/crates/bds-ui/tests/packaging_assets.rs @@ -167,7 +167,7 @@ fn tagged_releases_are_built_and_packaged_with_rust_tools() { } assert!( !workflow.contains("target-feature=+crt-static"), - "Windows and downloaded ONNX Runtime must use the same dynamic CRT" + "Windows system dependencies must use the dynamic CRT" ); assert!( !workflow.contains("run --release --locked --package bds-release"),