fix: exclude WASI example from workspace to avoid linker errors (#541)

* fix: exclude WASI example from workspace to avoid linker errors on Mac/arm64

Cargo uses the macOS host linker for workspace builds,
but that linker cannot resolve WASI WebAssembly imports
(such as _wasi:cli/run@0.2.x). As a result, including a WASI
crate in the workspace causes builds to fail on macOS systems using arm64.

Solution: Mark the WASI example as non-default by excluding it from the
workspace members. This makes the WASI package optional, so `cargo build`
won't touch it, and it can be built explicitly when needed with:
  cargo build -p wasi-mcp-example --target wasm32-wasip2

Signed-off-by: tanish111 <tanishdesai37@gmail.com>

* fix: make WASI example standalone for CI compatibility

Replace workspace inheritance with explicit values in examples/wasi/Cargo.toml
since excluded packages cannot inherit from workspace. This fixes CI manifest
parsing errors when building WASI example explicitly.

Signed-off-by: tanish111 <tanishdesai37@gmail.com>

* fix: exclude examples from default builds using default-members

Only core crates are built by default, preventing WASI linker errors
on macOS while keeping it in workspace for property inheritance.

Signed-off-by: tanish111 <tanishdesai37@gmail.com>

---------

Signed-off-by: tanish111 <tanishdesai37@gmail.com>
This commit is contained in:
Tanish Desai 2025-11-18 06:58:41 +05:30 committed by GitHub
parent b6cbd39503
commit 1d38d68709
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,5 +1,6 @@
[workspace]
members = ["crates/rmcp", "crates/rmcp-macros", "examples/*"]
default-members = ["crates/rmcp", "crates/rmcp-macros"]
resolver = "2"
[workspace.dependencies]