diff --git a/docs/workflow/building/libraries/webassembly-instructions.md b/docs/workflow/building/libraries/webassembly-instructions.md index 80af1a508b1067..fdc5dc31d22267 100644 --- a/docs/workflow/building/libraries/webassembly-instructions.md +++ b/docs/workflow/building/libraries/webassembly-instructions.md @@ -7,7 +7,7 @@ If you haven't already done so, please read [this document](../../README.md#Buil The **correct version** of Emscripten SDK (emsdk) needs to be installed. * Run `make -C src/mono/wasm provision-wasm` to install emsdk into `src/mono/wasm/emsdk`. * Alternatively follow the [installation guide](https://emscripten.org/docs/getting_started/downloads.html#sdk-download-and-install). -Do not install `latest` but rather specific version e.g. `./emsdk install 2.0.21`. See [emscripten-version.txt](..\..\..\..\src\mono\wasm\emscripten-version.txt) +Do not install `latest` but rather specific version e.g. `./emsdk install 2.0.23`. See [emscripten-version.txt](..\..\..\..\src\mono\wasm\emscripten-version.txt) Once installed the `EMSDK_PATH` environment variable needs to be set: diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 5c1f457ae40f4d..9c44cabfca804a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -207,9 +207,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-optimization 4e5bea15eb5a9c8cf9142195b1c9c78437a5b27f - + https://github.com/dotnet/emsdk - defa37b05c734e025292c5747664e970cd2ac444 + 617928847d1e11458527b8bbafb5577982291847 https://github.com/dotnet/hotreload-utils diff --git a/eng/Versions.props b/eng/Versions.props index a194baa33def9e..3b887fae24aa25 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -176,7 +176,7 @@ 11.1.0-alpha.1.21308.1 11.1.0-alpha.1.21308.1 - 6.0.0-preview.6.21275.1 - $(MicrosoftNETRuntimeEmscripten2021Nodewinx64Version) + 6.0.0-preview.7.21323.1 + $(MicrosoftNETRuntimeEmscripten2023Nodewinx64Version) diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index daedd73b0e4bff..defd34be84ae2e 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -219,7 +219,7 @@ jobs: targetRid: browser-wasm platform: Browser_wasm container: - image: ubuntu-18.04-webassembly-20210519131124-ba00c14 + image: ubuntu-18.04-webassembly-20210531091624-f5c7a43 registry: mcr jobParameters: runtimeFlavor: ${{ parameters.runtimeFlavor }} diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index b766f1af96aecb..7d33d26edb0128 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -189,6 +189,6 @@ jobs: # WebAssembly windows - ${{ if eq(parameters.platform, 'Browser_wasm_win') }}: - - (Windows.Server.Core.1909.Amd64.Open)windows.10.amd64.server20h1.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-2004-helix-webassembly-amd64-20210519130955-ba00c14 + - (Windows.Server.Core.1909.Amd64.Open)windows.10.amd64.server20h1.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-2004-helix-webassembly-amd64-20210531091615-f5c7a43 ${{ insert }}: ${{ parameters.jobParameters }} diff --git a/eng/testing/tests.wasm.targets b/eng/testing/tests.wasm.targets index de4432bee9f5ea..aa4fb305dbd425 100644 --- a/eng/testing/tests.wasm.targets +++ b/eng/testing/tests.wasm.targets @@ -40,7 +40,7 @@ <_AOTBuildCommand Condition="'$(ContinuousIntegrationBuild)' != 'true'">$(_AOTBuildCommand) /p:RuntimeSrcDir=$(RepoRoot) /p:RuntimeConfig=$(Configuration) - <_AOTBuildCommand>$(_AOTBuildCommand) /p:RunAOTCompilation=$(RunAOTCompilation) + <_AOTBuildCommand>$(_AOTBuildCommand) /p:RunAOTCompilation=$(RunAOTCompilation) /p:EmccLinkOptimizationFlag='-Oz -Wl%252C-O0 -Wl%252C-lto-O0' <_AOTBuildCommand>$(_AOTBuildCommand) && cd wasm_build/AppBundle $(_AOTBuildCommand) diff --git a/src/libraries/sendtohelixhelp.proj b/src/libraries/sendtohelixhelp.proj index 25d7168bdc4639..12d402fcb7e397 100644 --- a/src/libraries/sendtohelixhelp.proj +++ b/src/libraries/sendtohelixhelp.proj @@ -29,6 +29,7 @@ <_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == '' and ('$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm')">00:45:00 <_workItemTimeout Condition="'$(Scenario)' != '' and '$(_workItemTimeout)' == '' and ('$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm')">01:00:00 <_workItemTimeout Condition="'$(Scenario)' == 'BuildWasmApps' and '$(_workItemTimeout)' == ''">01:00:00 + <_workItemTimeout Condition="'$(TargetOS)' == 'Browser' and '$(NeedsToBuildWasmAppsOnHelix)' == 'true'">01:00:00 <_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == '' and '$(Outerloop)' == 'true'">00:20:00 <_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == ''">00:15:00 <_workItemTimeout Condition="'$(Scenario)' != '' and '$(_workItemTimeout)' == ''">00:30:00 diff --git a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/WorkloadManifest.json.in b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/WorkloadManifest.json.in index d783615a908e1a..4c50a08f007c82 100644 --- a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/WorkloadManifest.json.in +++ b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/WorkloadManifest.json.in @@ -270,29 +270,29 @@ "kind": "Sdk", "version": "${EmscriptenVersion}", "alias-to": { - "win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Node.win-x64", - "linux-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Node.linux-x64", - "osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Node.osx-x64", - "osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Node.osx-x64" + "win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.win-x64", + "linux-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.linux-x64", + "osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.osx-x64", + "osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.osx-x64" } }, "Microsoft.NET.Runtime.Emscripten.Python" : { "kind": "Sdk", "version": "${EmscriptenVersion}", "alias-to": { - "win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Python.win-x64", - "osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Python.osx-x64", - "osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Python.osx-x64" + "win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Python.win-x64", + "osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Python.osx-x64", + "osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Python.osx-x64" } }, "Microsoft.NET.Runtime.Emscripten.Sdk" : { "kind": "Sdk", "version": "${EmscriptenVersion}", "alias-to": { - "win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Sdk.win-x64", - "linux-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Sdk.linux-x64", - "osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Sdk.osx-x64", - "osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.21.Sdk.osx-x64" + "win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.win-x64", + "linux-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.linux-x64", + "osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.osx-x64", + "osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.osx-x64" } } } diff --git a/src/mono/wasm/README.md b/src/mono/wasm/README.md index a44edd53dc3dd1..67cf64b8c05766 100644 --- a/src/mono/wasm/README.md +++ b/src/mono/wasm/README.md @@ -13,7 +13,7 @@ Note: `EMSDK_PATH` is set by default in `src/mono/wasm/Makefile`, so building ta you are directly using the `dotnet build`, or `build.sh`. * Alternatively you can install **correct version** yourself from the [Emscripten SDK guide](https://emscripten.org/docs/getting_started/downloads.html). -Do not install `latest` but rather specific version e.g. `./emsdk install 2.0.21`. See [emscripten-version.txt](./emscripten-version.txt) +Do not install `latest` but rather specific version e.g. `./emsdk install 2.0.23`. See [emscripten-version.txt](./emscripten-version.txt) Make sure to set `EMSDK_PATH` variable, whenever building, or running tests for wasm. @@ -154,3 +154,14 @@ The samples in `src/mono/sample/wasm` can be build and run like this: `dotnet build /t:RunSample browser/Wasm.Browser.Sample.csproj` To build and run the samples with AOT, add `/p:RunAOTCompilation=true` to the above command lines. + +### Upgrading Emscripten + +Bumping Emscripten version involves these steps: + +* update https://github.com/dotnet/runtime/blob/main/src/mono/wasm/emscripten-version.txt +* bump emscripten versions in docker images in https://github.com/dotnet/dotnet-buildtools-prereqs-docker +* bump emscripten in https://github.com/dotnet/emsdk +* update version number in docs +* update `Microsoft.NET.Runtime.Emscripten..Node.win-x64` package name, version and sha hash in https://github.com/dotnet/runtime/blob/main/eng/Version.Details.xml and in https://github.com/dotnet/runtime/blob/main/eng/Versions.props. the sha is the commit hash in https://github.com/dotnet/emsdk and the package version can be found at https://dev.azure.com/dnceng/public/_packaging?_a=feed&feed=dotnet6 +* update packages in the workload manifest https://github.com/dotnet/runtime/blob/main/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/WorkloadManifest.json.in diff --git a/src/mono/wasm/emscripten-version.txt b/src/mono/wasm/emscripten-version.txt index eb4d1bc7a34e7e..8fe1046e01fc8e 100644 --- a/src/mono/wasm/emscripten-version.txt +++ b/src/mono/wasm/emscripten-version.txt @@ -1 +1 @@ -2.0.21 \ No newline at end of file +2.0.23 \ No newline at end of file