[WSLC] Consume WSLC SDK from MxcDependencies feed (2.9.3) - #664
Merged
Soham Das (SohamDas2021) merged 4 commits intoJul 22, 2026
Merged
Conversation
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates MXC’s WSLC backend to consume the Microsoft.WSL.Containers SDK from the public, anonymous-read MxcDependencies Azure Artifacts feed (instead of relying solely on a locally vendored .nupkg), and bumps the pinned SDK/runtime version to 2.9.3. It also updates Rust/TypeScript/docs references to remove hard-coded “2.8.1 vendored runtime” wording and aligns bindings/call sites with the newer SDK surface.
Changes:
- Update
wslc_commonbuild script to download/extract the WSLC SDK.nupkgfrom the MxcDependencies feed (withWSLC_SDK_PATHoverride and vendored fallback). - Update WSLC FFI bindings + runner to reflect SDK ABI/symbol changes (e.g.,
WslcGetMissingComponents, working directory setter, struct sizes). - Refresh schema / generated wire docs / SDK docs and tests to remove version-pinned wording and reflect the new consumption model.
Reviewed changes
Copilot reviewed 13 out of 16 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/core/wxc_common/src/wire.rs | Updates WSLC port_mappings docstring to remove the old “vendored 2.8.1” wording while keeping UDP limitation note. |
| src/core/wxc_common/src/config_parser.rs | Updates TCP-only/UDP-rejection comments and keeps the UDP rejection test aligned. |
| src/backends/wslc/common/src/wslc_bindings.rs | Updates SDK ABI details (opaque struct sizes, new component flag, renamed/updated function types, pull options field rename). |
| src/backends/wslc/common/src/wsl_container_runner.rs | Switches preflight from WslcCanRun to WslcGetMissingComponents, updates working directory setter name, and updates pull options field usage. |
| src/backends/wslc/common/build.rs | Downloads the .nupkg from the MxcDependencies feed, extracts it, and copies wslcsdk.dll next to the built binary; retains vendored fallback. |
| sdk/node/tests/integration/wslc-e2e.test.ts | Updates test comment wording about UDP limitation to avoid pinning to 2.8.1. |
| sdk/node/src/types.ts | Updates public SDK doc comments for WSLC port mappings to remove “vendored 2.8.1” wording. |
| sdk/node/src/generated/wire.ts | Regenerates/updates wire doc text for WSLC port mappings. |
| schemas/dev/mxc-config.schema.0.8.0-dev.json | Updates schema description text for WSLC port mappings to remove “vendored 2.8.1” wording. |
| external/wslc-sdk/README.md | Documents the new feed-based resolution order, version pin location, and update process. |
| docs/wsl/wsl-container-support-plan.md | Updates WSLC SDK version and consumption description (but still contains some outdated API-name references). |
| docs/wsl/wsl-container-getting-started.md | Bumps documented WSL minimum/runtime expectation to 2.9.3+. |
| docs/schema.md | Updates example comment wording around WSLC UDP limitation to remove “vendored 2.8.1”. |
| docs/linux-wsl-roadmap-june-2026.md | Updates wording around UDP limitation to remove “Microsoft.WSL.Containers 2.8.1” mention. |
Comments suppressed due to low confidence (1)
docs/wsl/wsl-container-support-plan.md:200
- This section still lists
WslcCanRun()as the preflight API, but the implementation has switched toWslcGetMissingComponents(). Updating this keeps the support plan aligned with the current code and SDK surface.
Rust FFI declarations for the WSLC SDK C API (v2.9.3). Hand-written `extern "C"`
blocks from `wslcsdk.h`. Key bindings (actual API names from the SDK):
Session APIs:
- `WslcCanRun()` — preflight: check if WSLC runtime is available
Soham Das (SohamDas2021)
marked this pull request as ready for review
July 21, 2026 20:04
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
Branden Bonaby (bbonaby)
approved these changes
Jul 22, 2026
Soham Das (SohamDas2021)
deleted the
user/sodas/wslc-public-nuget-consumption
branch
July 22, 2026 17:10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📖 Description
Migrates the WSLc SDK (
Microsoft.WSL.Containers) from a local.nupkgto consuming it from the anonymous read MxcDependencies Azure Artifacts feed and bumps the pinned version from2.8.1to2.9.3.nuget.orgis not allowlisted in the 1ES build pool, so the feed is used directly via a stable content URL.Swapped local
2.8.1.nupkg->2.9.3.nupkg;external/wslc-sdk/README.mdrewritten for the feed-first + fallback flow.🔗 References
🔍 Validation
✅ Checklist
Cargo.lock, thedependency-feed-checkcheck passes (see docs/pull-requests.md)📋 Issue Type
GitHub Actions runs the PR validation build automatically. The ADO pipeline
(
MXC-PR-Build) is the Azure version of the PR pipeline, kept in parity with the GitHubActions build; it runs on merge to
main, and Microsoft reviewers with write access can trigger iton a PR with
/azp run. See docs/pull-requests.md.If the
dependency-feed-checkcheck fails on a new dependency, the crate must be added tothe feed before the PR can pass. See docs/pull-requests.md
for the steps.