From 727890a121bd41d7a3241bfb8bd53c7d7338e28b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 23 Oct 2026 22:09:04 +0200 Subject: [PATCH 1/3] Validate Node 24.22.1 and npm 11.19.1 transport packages Consume the Node transport packages built for dotnet/node#423 from the General Testing feed and fail the browser build when the provisioned Node or npm differs from the expected version. This branch is for CI validation only and must not merge. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 41afaf08-f715-4e12-bb37-e2b101542525 --- NuGet.config | 1 + eng/AcquireEmscriptenSdk.targets | 21 ++++++++++++++ eng/Version.Details.props | 16 +++++------ eng/Version.Details.xml | 48 ++++++++++++++++---------------- 4 files changed, 54 insertions(+), 32 deletions(-) diff --git a/NuGet.config b/NuGet.config index 671ab38936c684..5b89305119684c 100644 --- a/NuGet.config +++ b/NuGet.config @@ -27,6 +27,7 @@ + diff --git a/eng/AcquireEmscriptenSdk.targets b/eng/AcquireEmscriptenSdk.targets index e0563d98ac3122..9a20446eab1175 100644 --- a/eng/AcquireEmscriptenSdk.targets +++ b/eng/AcquireEmscriptenSdk.targets @@ -235,4 +235,25 @@ JS_ENGINES = [NODE_JS] + + + + + <_NodeValidationRoot>$([MSBuild]::EnsureTrailingSlash('$(EMSDK_PATH)'))node/ + <_NodeValidationExe>$(_NodeValidationRoot)bin/node + <_NodeValidationExe Condition="'$(HostOS)' == 'windows'">$(_NodeValidationRoot)bin/node.exe + <_NodeValidationNpmCli>$(_NodeValidationRoot)lib/node_modules/npm/bin/npm-cli.js + <_NodeValidationNpmCli Condition="'$(HostOS)' == 'windows'">$(_NodeValidationRoot)bin/node_modules/npm/bin/npm-cli.js + + + + + + + + diff --git a/eng/Version.Details.props b/eng/Version.Details.props index c0c900590e8d2c..3ef8a9a91eb236 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -83,14 +83,14 @@ This file should be imported by eng/Versions.props 23.1.0-alpha.1.26505.4 23.1.0-alpha.1.26505.4 - 11.0.0-alpha.1.26517.3 - 11.0.0-alpha.1.26517.3 - 11.0.0-alpha.1.26517.3 - 11.0.0-alpha.1.26517.3 - 11.0.0-alpha.1.26517.3 - 11.0.0-alpha.1.26517.3 - 11.0.0-alpha.1.26517.3 - 11.0.0-alpha.1.26517.3 + 11.0.0-alpha.1.26523.2 + 11.0.0-alpha.1.26523.2 + 11.0.0-alpha.1.26523.2 + 11.0.0-alpha.1.26523.2 + 11.0.0-alpha.1.26523.2 + 11.0.0-alpha.1.26523.2 + 11.0.0-alpha.1.26523.2 + 11.0.0-alpha.1.26523.2 1.0.0-prerelease.26502.1 1.0.0-prerelease.26502.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 20b51a488ec4a4..45dba1b50869bc 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -385,37 +385,37 @@ https://github.com/dotnet/dotnet 6fa58a2ef810f82b3197d69763cedfb34c88b9fd - - https://github.com/dotnet/node - 1ab9161aaf6814d105d3aa78c752bfd222e0946e + + https://dev.azure.com/dnceng/internal/_git/dotnet-node + 8c288428de44adaab8f60963302d0ab511eb5887 - - https://github.com/dotnet/node - 1ab9161aaf6814d105d3aa78c752bfd222e0946e + + https://dev.azure.com/dnceng/internal/_git/dotnet-node + 8c288428de44adaab8f60963302d0ab511eb5887 - - https://github.com/dotnet/node - 1ab9161aaf6814d105d3aa78c752bfd222e0946e + + https://dev.azure.com/dnceng/internal/_git/dotnet-node + 8c288428de44adaab8f60963302d0ab511eb5887 - - https://github.com/dotnet/node - 1ab9161aaf6814d105d3aa78c752bfd222e0946e + + https://dev.azure.com/dnceng/internal/_git/dotnet-node + 8c288428de44adaab8f60963302d0ab511eb5887 - - https://github.com/dotnet/node - 1ab9161aaf6814d105d3aa78c752bfd222e0946e + + https://dev.azure.com/dnceng/internal/_git/dotnet-node + 8c288428de44adaab8f60963302d0ab511eb5887 - - https://github.com/dotnet/node - 1ab9161aaf6814d105d3aa78c752bfd222e0946e + + https://dev.azure.com/dnceng/internal/_git/dotnet-node + 8c288428de44adaab8f60963302d0ab511eb5887 - - https://github.com/dotnet/node - 1ab9161aaf6814d105d3aa78c752bfd222e0946e + + https://dev.azure.com/dnceng/internal/_git/dotnet-node + 8c288428de44adaab8f60963302d0ab511eb5887 - - https://github.com/dotnet/node - 1ab9161aaf6814d105d3aa78c752bfd222e0946e + + https://dev.azure.com/dnceng/internal/_git/dotnet-node + 8c288428de44adaab8f60963302d0ab511eb5887 https://github.com/dotnet/runtime-assets From 442d5bb2c1e458ba395bd5fd15cb13683219bc32 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 24 Oct 2026 08:53:44 +0200 Subject: [PATCH 2/3] Install the VMR Emscripten workload manifest for Node 24.22.1 Install the Emscripten workload manifest 11.0.100-rtm.26523.122 built by the dotnet/dotnet validation build that consumes the Node packages from dotnet/node#423, so that the workload tests install it from the General Testing feed. Keep the global.json SDK as the workload testing host because the SDK from the validation VMR build is not published. Run the Node validation target only for browser builds because the cross compiler legs that generate browser offsets provision no Node. This branch is for CI validation only and must not merge. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 41afaf08-f715-4e12-bb37-e2b101542525 --- eng/AcquireEmscriptenSdk.targets | 5 +++-- eng/Version.Details.props | 2 +- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 4 ++++ 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/eng/AcquireEmscriptenSdk.targets b/eng/AcquireEmscriptenSdk.targets index 9a20446eab1175..6512f2c435afb7 100644 --- a/eng/AcquireEmscriptenSdk.targets +++ b/eng/AcquireEmscriptenSdk.targets @@ -237,10 +237,11 @@ JS_ENGINES = [NODE_JS] DependsOnTargets="AcquireEmscriptenSdkUnconditional" /> + also catches a stale shared cache entry that still holds the previous Node. Cross compiler legs that only + generate browser offsets provision no Node, so only browser builds are checked. --> + Condition="'$(EMSDK_PATH)' != '' and '$(TargetsBrowser)' == 'true'"> <_NodeValidationRoot>$([MSBuild]::EnsureTrailingSlash('$(EMSDK_PATH)'))node/ <_NodeValidationExe>$(_NodeValidationRoot)bin/node diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 3ef8a9a91eb236..2963247767d7b4 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -36,7 +36,7 @@ This file should be imported by eng/Versions.props 5.12.0-1.26521.105 11.0.0 11.0.0 - 11.0.100-rtm.26521.105 + 11.0.100-rtm.26523.122 11.0.0 11.0.0 8.0.0-rc.52305 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 45dba1b50869bc..ad1d6b1453dd6e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -45,9 +45,9 @@ https://github.com/dotnet/dotnet 6fa58a2ef810f82b3197d69763cedfb34c88b9fd - + https://github.com/dotnet/dotnet - 6fa58a2ef810f82b3197d69763cedfb34c88b9fd + 2b5a4387dbee6181159f53c9ab1ada19a5ebe720 https://github.com/dotnet/dotnet diff --git a/eng/Versions.props b/eng/Versions.props index 5875ac42b07077..0137b8dea7749e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -30,6 +30,8 @@ <_DotnetSdkVersion>$(MicrosoftNETWorkloadEmscriptenCurrentManifest110100TransportVersion) $(_DotnetSdkVersion) $(_GlobalJsonSdkVersion) + + $(_GlobalJsonSdkVersion) $([System.String]::Copy('$(SdkVersionForWorkloadTesting)').Split('.')[0]) $(SdkMajorVersion).0.100 $([System.Text.RegularExpressions.Regex]::Match($(SdkVersionForWorkloadTesting), '-(?!rtm|servicing)(.+)\.[^.]+\.[^.]+$').Groups[1].Value) @@ -168,6 +170,8 @@ $(MicrosoftDotNetApiCompatTaskPackageVersion) + + $(MicrosoftNETWorkloadEmscriptenCurrentManifest110100TransportVersion) $(runtimewinx64MicrosoftNETCoreRuntimeWasmNodeTransportPackageVersion) 6.0.2 From fb8dad82a0177bd623fb23d76711d8f273cbdac2 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 24 Oct 2026 13:30:00 +0200 Subject: [PATCH 3/3] Skip the Node validation in the Mono AOT cross compiler builds The Mono AOT cross compiler build invokes `mono.proj` for browser-wasm with `BuildMonoAOTCrossCompilerOnly=true` after a restore that did not include the Emscripten packs, so no Node is provisioned and the Node validation target fails. Skip the target for those invocations. This branch is for CI validation only and must not merge. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 41afaf08-f715-4e12-bb37-e2b101542525 --- eng/AcquireEmscriptenSdk.targets | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/eng/AcquireEmscriptenSdk.targets b/eng/AcquireEmscriptenSdk.targets index 6512f2c435afb7..a30475d5fbc4bd 100644 --- a/eng/AcquireEmscriptenSdk.targets +++ b/eng/AcquireEmscriptenSdk.targets @@ -237,11 +237,12 @@ JS_ENGINES = [NODE_JS] DependsOnTargets="AcquireEmscriptenSdkUnconditional" /> + also catches a stale shared cache entry that still holds the previous Node. The Mono AOT cross compiler + build invokes mono.proj for browser-wasm without restoring the Emscripten packs, so it provisions no + Node and is not checked. --> + Condition="'$(EMSDK_PATH)' != '' and '$(TargetsBrowser)' == 'true' and '$(BuildMonoAOTCrossCompilerOnly)' != 'true'"> <_NodeValidationRoot>$([MSBuild]::EnsureTrailingSlash('$(EMSDK_PATH)'))node/ <_NodeValidationExe>$(_NodeValidationRoot)bin/node