Repository navigation
Install CoreCLR WASM runtime pack at the local package version - #5359
Merged
Merged
Conversation
build_wasm_coreclr_payload picked the runtime pack version from os.listdir(packs/Microsoft.NETCore.App.Ref)[0]. The BrowserWasmCoreCLR SDK now ships both its bundled Ref version and the locally built 12.0.0-ci Ref, so the choice depended on filesystem order. When it picked the bundled version, PERFLAB_WASM_PACKAGE_VERSION=12.0.0-ci could not resolve the runtime pack and every work item in the job failed with NETSDK1112. Install the pack under the local package version instead, which is the version run setup exports as PERFLAB_WASM_PACKAGE_VERSION. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues remain for the change to use the selected local runtime-pack version.
No open issues 🎉
What changed in this PR
Makes CoreCLR WASM runtime-pack installation deterministic by using the local package version selected by PERFLAB_WASM_PACKAGE_VERSION, addressing intermittent NETSDK1112 failures in performance jobs.
Changes:
- Replaces reference-pack directory enumeration with the detected local package version.
- Extends regression coverage to verify the runtime pack and its manifest are staged only under the expected local version.
| File | Description |
|---|---|
scripts/tests/test_wasm_coreclr_r2r.py |
Adds assertions for the runtime-pack version directory and copied manifest. |
scripts/build_runtime_payload.py |
Installs and logs the runtime pack using local_package_version. |
Review effort: Balanced
DrewScoggins
enabled auto-merge (squash)
November 11, 2026 01:00
DrewScoggins
deleted the
lewing-fix-wasm-coreclr-runtime-pack-version
branch
November 11, 2026 01:59
LoopedBard3
pushed a commit
to LoopedBard3/performance
that referenced
this pull request
Nov 11, 2026
Retain the cohort identity fix and regression from dotnet#5359. Keep the remaining archive staging, required metadata, and pre/post SDK collision protection with separate focused tests. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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.
The CoreCLR WASM perf jobs (
coreclr_v8,coreclr_r2r_v8,coreclr_r2r_composite_v8) have been intermittently failing a whole job at a time: all 15 work items in the job fail with:Cause
build_wasm_coreclr_payloadpicked the runtime pack's install version fromos.listdir(dotnet/packs/Microsoft.NETCore.App.Ref)[0]. Thedotnet-noneSDK in the BrowserWasmCoreCLR artifact contains two Ref versions: the bootstrap SDK's bundled one (12.0.0-alpha.1.26528.120) and the locally built12.0.0-ci. The result depended on filesystem order. When it picked the bundled version,PERFLAB_WASM_PACKAGE_VERSION=12.0.0-cicouldn't resolve the runtime pack, becauseWasmOverridePacks.targetsremoves itsPackageDownload.In the internal
dotnet-runtime-perfruns I checked, the job log lineInstalled CoreCLR browser-wasm runtime pack version ...matches the outcome every time:coreclr_v812.0.0-cicoreclr_r2r_v812.0.0-cicoreclr_r2r_composite_v812.0.0-alpha.1.26528.12012.0.0-alpha.1.26528.120Fix
Install the runtime pack under the local package version detected from
built-nugets, which run setup exports asPERFLAB_WASM_PACKAGE_VERSION. This works for-ci,-devand official versions.Validation
python -m pytest -q scripts/tests/test_wasm_coreclr_r2r.py: 130 passed.test_coreclr_payload_detects_local_toolchain_package_versionnow also checks that the runtime pack is installed only under the local version. It fails on the previous code (['11.0.0-rc.1.26431.109'] == ['11.0.0-ci']).Note
This PR description was written with GitHub Copilot.