Skip to content

Commit ac1cf4c

Browse files
lewingradical
andauthored
Move TargetsCurrent to net9 and add net8 workload (#91480)
* Move TargetsCurrent to net9 and add net8 workload * Fix version references * Update src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.targets.in * [wasm] build net8 workload * Update emsdk * Update current template to reference net9 * Bump 8.0 version used for workloads * Fix version for latest emscripten packages * fix typo in 8.0 version used for the workload * disamiguate templates * WBT: explicitly use net8.0 projects for template projects * Update emsdk dependency to get the workload fix * fix * Add some addtional workarounds for net8 * Remove extra character * Fix test * More wasi fixes * Add net8 wasi-wasm runtime pack reference * Add wasi-experimental-net8 workload * [wasi] Fix use of workload * [wasm] WBT: Fix test * wasi: Allow wasi-wasm runtimepacks even when targeting net8 * fix test --------- Co-authored-by: Ankit Jain <[email protected]>
1 parent 0392c1a commit ac1cf4c

32 files changed

+751
-45
lines changed

eng/Version.Details.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,9 @@
9090
<Sha>89be445dd4936157533ad96bafb95f701430653a</Sha>
9191
<SourceBuild RepoName="cecil" ManagedOnly="true" />
9292
</Dependency>
93-
<Dependency Name="Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport" Version="9.0.0-alpha.1.23465.3">
93+
<Dependency Name="Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport" Version="9.0.0-alpha.1.23471.2">
9494
<Uri>https://github.com/dotnet/emsdk</Uri>
95-
<Sha>bebe955e9f7d392fbca594b1c76c54ba2e27027e</Sha>
95+
<Sha>fc01829cbf76b7bbf48a39161562468715a0a3b4</Sha>
9696
<SourceBuild RepoName="emsdk" ManagedOnly="true" />
9797
</Dependency>
9898
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.23468.3">

eng/Versions.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<MinorVersion>0</MinorVersion>
88
<PatchVersion>0</PatchVersion>
99
<SdkBandVersion>9.0.100</SdkBandVersion>
10-
<PackageVersionNet8>8.0.0-rc.1.23414.4</PackageVersionNet8>
10+
<PackageVersionNet8>8.0.0-rc.2.23469.22</PackageVersionNet8>
1111
<PackageVersionNet7>7.0.8</PackageVersionNet7>
1212
<PackageVersionNet6>6.0.$([MSBuild]::Add($([System.Version]::Parse('$(PackageVersionNet7)').Build),11))</PackageVersionNet6>
1313
<PreReleaseVersionLabel>alpha</PreReleaseVersionLabel>
@@ -235,7 +235,7 @@
235235
Note: when the name is updated, make sure to update dependency name in eng/pipelines/common/xplat-setup.yml
236236
like - DarcDependenciesChanged.Microsoft_NET_Workload_Emscripten_Current_Manifest-8_0_100_Transport
237237
-->
238-
<MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportVersion>9.0.0-alpha.1.23465.3</MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportVersion>
238+
<MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportVersion>9.0.0-alpha.1.23471.2</MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportVersion>
239239
<MicrosoftNETRuntimeEmscriptenVersion>$(MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportVersion)</MicrosoftNETRuntimeEmscriptenVersion>
240240
<!-- workloads -->
241241
<SwixPackageVersion>1.1.87-gba258badda</SwixPackageVersion>

eng/testing/tests.browser.targets

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,11 @@
264264
Variant="latest"
265265
Version="$(PackageVersionForWorkloadManifests)" />
266266

267+
<WorkloadIdForTesting Include="wasm-tools-net8;wasm-experimental-net8"
268+
ManifestName="Microsoft.NET.Workload.Mono.ToolChain.net8"
269+
Variant="net8"
270+
Version="$(PackageVersionForWorkloadManifests)" />
271+
267272
<WorkloadIdForTesting Include="wasm-tools-net7;wasm-experimental-net7"
268273
ManifestName="Microsoft.NET.Workload.Mono.ToolChain.net7"
269274
Variant="net7"
@@ -277,7 +282,7 @@
277282
IgnoreErrors="$(WasmIgnoreNet6WorkloadInstallErrors)"
278283
Condition="'$(WorkloadsTestPreviousVersions)' == 'true'" />
279284

280-
<WorkloadCombinationsToInstall Include="latest" Variants="latest" />
285+
<WorkloadCombinationsToInstall Include="latest" Variants="latest;net8" />
281286
<WorkloadCombinationsToInstall Include="net7" Variants="net7" Condition="'$(WorkloadsTestPreviousVersions)' == 'true'" />
282287
<WorkloadCombinationsToInstall Include="net7+latest" Variants="net7;latest" Condition="'$(WorkloadsTestPreviousVersions)' == 'true'" />
283288
<!--<WorkloadCombinationsToInstall Include="net6" Variants="net6" />-->
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. -->
22
<Project>
33
<PropertyGroup>
4-
<WasmNativeWorkload Condition="'$(WasmNativeWorkload)' == ''">net8.0</WasmNativeWorkload>
5-
<WasmNativeWorkload8>true</WasmNativeWorkload8>
4+
<WasmNativeWorkload Condition="'$(WasmNativeWorkload)' == ''">net9.0</WasmNativeWorkload>
5+
<WasmNativeWorkload9>true</WasmNativeWorkload9>
66
<!--<WasmNativeWorkloadAvailableList>$(WasmNativeWorkloadAvailableList)+net8.0+</WasmNativeWorkloadAvailableList>-->
77
</PropertyGroup>
88
</Project>

src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest.pkgproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,10 @@
4444
<ItemGroup>
4545
<_WorkloadManifestValues Include="WorkloadVersion" Value="$(PackageVersion)" />
4646
<_WorkloadManifestValues Include="PackageVersion" Value="$(PackageVersion)" />
47+
<_WorkloadManifestValues Include="PackageVersionNet8" Value="$(PackageVersionNet8)" Condition="'$(PackageVersionNet8)' != ''" />
48+
<_WorkloadManifestValues Include="PackageVersionNet8" Value="$(PackageVersion)" Condition="'$(PackageVersionNet8)' == ''" />
49+
<_WorkloadManifestValues Include="PackageVersionNet7" Value="$(PackageVersionNet7)" />
4750
<_WorkloadManifestValues Include="PackageVersionNet6" Value="$(PackageVersionNet6)" />
48-
<_WorkloadManifestValues Include="PackageVersionNet7" Value="$(PackageVersionNet7)" Condition="'$(PackageVersionNet7)' != ''" />
49-
<_WorkloadManifestValues Include="PackageVersionNet7" Value="$(PackageVersion)" Condition="'$(PackageVersionNet7)' == ''" />
5051
<_WorkloadManifestValues Include="NetCoreAppCurrent" Value="$(NetCoreAppCurrent)" />
5152
<_WorkloadManifestValues Include="EmscriptenVersion" Value="$(MicrosoftNETRuntimeEmscriptenVersion)" />
5253
</ItemGroup>
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. -->
22
<Project>
3-
<PropertyGroup Condition="'$(RuntimeIdentifier)' == 'wasi-wasm'">
4-
<WasiNativeWorkloadAvailable Condition="'$(TargetsCurrent)' == 'true' and '$(WasiNativeWorkload)' == 'net8.0'">true</WasiNativeWorkloadAvailable>
3+
<PropertyGroup>
4+
<WasiNativeWorkloadAvailable Condition="$([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '8.0')) and '$(WasiNativeWorkload)' == 'net8.0'">true</WasiNativeWorkloadAvailable>
5+
<TargetsCurrent Condition="$([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '8.0'))">true</TargetsCurrent>
56
</PropertyGroup>
67

7-
<PropertyGroup Condition="'$(RuntimeIdentifier)' == 'wasi-wasm' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp'">
8+
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'">
89
<UsingWasiRuntimeWorkload Condition="'$(UsingWasiRuntimeWorkload)' == ''">$(WasiNativeWorkloadAvailable)</UsingWasiRuntimeWorkload>
910
</PropertyGroup>
1011
</Project>

src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.json.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"description": ".NET WebAssembly experimental tooling",
1919
"packs": [
2020
"Microsoft.NET.Runtime.WebAssembly.Templates",
21-
"Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm",
21+
"Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm"
2222
],
2323
"extends": [ "wasm-tools" ],
2424
"platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64" ]

src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.targets.in

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,22 @@
22
<Project>
33
<PropertyGroup>
44
<_RuntimePackInWorkloadVersionCurrent>${PackageVersion}</_RuntimePackInWorkloadVersionCurrent>
5+
<_RuntimePackInWorkloadVersion8>${PackageVersionNet8}</_RuntimePackInWorkloadVersion8>
56
<_RuntimePackInWorkloadVersion7>${PackageVersionNet7}</_RuntimePackInWorkloadVersion7>
67
<_RuntimePackInWorkloadVersion6>${PackageVersionNet6}</_RuntimePackInWorkloadVersion6>
78

9+
<TargetsNet9 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '9.0'))">true</TargetsNet9>
810
<TargetsNet8 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '8.0'))">true</TargetsNet8>
9-
<TargetsNet6 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '6.0'))">true</TargetsNet6>
1011
<TargetsNet7 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '7.0'))">true</TargetsNet7>
11-
<TargetsCurrent Condition="'$(TargetsNet8)' == 'true'">true</TargetsCurrent>
12+
<TargetsNet6 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '6.0'))">true</TargetsNet6>
13+
14+
<TargetsCurrent Condition="'$(TargetsNet9)' == 'true'">true</TargetsCurrent>
1215

1316
<!-- override WorkloadDetectionWhen net7 == net8 -->
1417
<WasmNativeWorkload7 Condition="'${PackageVersionNet7}' == '${PackageVersion}'">$(WasmNativeWorkload8)</WasmNativeWorkload7>
1518
</PropertyGroup>
1619

17-
<Import Project="$(MSBuildThisFileDirectory)WorkloadManifest.Wasi.targets" />
20+
<Import Project="$(MSBuildThisFileDirectory)WorkloadManifest.Wasi.targets" Condition="'$(RuntimeIdentifier)' == 'wasi-wasm'" />
1821

1922
<PropertyGroup Condition="'$(RuntimeIdentifier)' == 'browser-wasm' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp'">
2023
<_BrowserWorkloadNotSupportedForTFM Condition="$([MSBuild]::VersionLessThan($(TargetFrameworkVersion), '6.0'))">true</_BrowserWorkloadNotSupportedForTFM>
@@ -31,8 +34,9 @@
3134

3235
<PropertyGroup Condition="'$(RuntimeIdentifier)' == 'browser-wasm'">
3336
<SelfContained>true</SelfContained>
34-
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet7)' == 'true'">$(WasmNativeWorkload7)</WasmNativeWorkloadAvailable>
37+
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet9)' == 'true'">$(WasmNativeWorkload9)</WasmNativeWorkloadAvailable>
3538
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet8)' == 'true'">$(WasmNativeWorkload8)</WasmNativeWorkloadAvailable>
39+
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet7)' == 'true'">$(WasmNativeWorkload7)</WasmNativeWorkloadAvailable>
3640
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet6)' == 'true'">$(WasmNativeWorkload)</WasmNativeWorkloadAvailable>
3741
<WasmNativeWorkloadAvailable Condition="'$(WasmNativeWorkloadAvailable)' == '' or '$(WasmNativeWorkload)' == 'false'">false</WasmNativeWorkloadAvailable>
3842
<WasmNativeWorkload>$(WasmNativeWorkloadAvailable)</WasmNativeWorkload>
@@ -141,14 +145,14 @@
141145
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk" />
142146
</ImportGroup>
143147

144-
<ImportGroup Condition="'$(TargetsCurrent)' == 'true' and '$(RuntimeIdentifier)' == 'wasi-wasm' and '$(UsingWasiRuntimeWorkload)' == 'true'">
148+
<ImportGroup Condition="$([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '8.0')) and '$(RuntimeIdentifier)' == 'wasi-wasm' and '$(UsingWasiRuntimeWorkload)' == 'true'">
145149
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk" />
146150
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk" />
147151
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk" />
148152
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk" />
149153
</ImportGroup>
150154

151-
<PropertyGroup Condition="'$(TargetsCurrent)' == 'true' and ('$(UsingMobileWorkload)' == 'true' or '$(RuntimeIdentifier)' == 'browser-wasm' or '$(RuntimeIdentifier)' == 'wasi-wasm')">
155+
<PropertyGroup Condition="$([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '8.0')) and ('$(UsingMobileWorkload)' == 'true' or '$(RuntimeIdentifier)' == 'browser-wasm' or '$(RuntimeIdentifier)' == 'wasi-wasm')">
152156
<_MonoWorkloadTargetsMobile>true</_MonoWorkloadTargetsMobile>
153157
<_MonoWorkloadRuntimePackPackageVersion>$(_RuntimePackInWorkloadVersionCurrent)</_MonoWorkloadRuntimePackPackageVersion>
154158
<_KnownWebAssemblySdkPackVersion>$(_RuntimePackInWorkloadVersionCurrent)</_KnownWebAssemblySdkPackVersion>
@@ -163,7 +167,16 @@
163167
<SdkSupportedTargetPlatformVersion Include="1.0" />
164168
</ItemGroup>
165169

166-
<ItemGroup Condition="'$(TargetsCurrent)' == 'true' and '$(_MonoWorkloadTargetsMobile)' == 'true'">
170+
<!-- Support for "wasi" target platform identifier -->
171+
<PropertyGroup Condition="'$(TargetPlatformIdentifier)' == 'wasi' and $([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '8.0'))">
172+
<TargetPlatformSupported>true</TargetPlatformSupported>
173+
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">1.0</TargetPlatformVersion>
174+
</PropertyGroup>
175+
<ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'wasi' and $([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '8.0'))">
176+
<SdkSupportedTargetPlatformVersion Include="1.0" />
177+
</ItemGroup>
178+
179+
<ItemGroup Condition="(('$(RuntimeIdentifier)' == 'wasi-wasm' and '$(TargetsNet8)' == 'true') or '$(TargetsCurrent)' == 'true') and '$(_MonoWorkloadTargetsMobile)' == 'true'">
167180
<KnownRuntimePack Update="@(KnownRuntimePack)">
168181
<!-- FIXMEWASI: workaround for now -->
169182
<RuntimePackRuntimeIdentifiers Condition="'$(RuntimeIdentifier)' == 'wasi-wasm'">%(RuntimePackRuntimeIdentifiers);wasi-wasm</RuntimePackRuntimeIdentifiers>
@@ -212,6 +225,6 @@
212225
Importance="High" />
213226
</Target>
214227

215-
<Import Condition="'$(TargetsCurrent)' == 'true' and ('$(UsingBrowserRuntimeWorkload)' == 'true' or '$(UsingMobileWorkload)' == 'true')"
228+
<Import Condition="$([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '8.0')) and ('$(UsingBrowserRuntimeWorkload)' == 'true' or '$(UsingMobileWorkload)' == 'true')"
216229
Project="$(MSBuildThisFileDirectory)WorkloadTelemetry.targets" />
217230
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<Project DefaultTargets="Build">
2+
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.props))" />
3+
4+
<PropertyGroup>
5+
<PackageDescription>Internal toolchain package not meant for direct consumption. Please do not reference directly.</PackageDescription>
6+
</PropertyGroup>
7+
8+
<Target Name="_PrepareForPack" BeforeTargets="GetPackageFiles" Returns="@(PackageFile)">
9+
<Error Condition="'$(SdkBandVersionForWorkload_FromRuntimeVersions)' == ''"
10+
Text="%24(SdkBandVersionForWorkload_FromRuntimeVersions) is not set" />
11+
12+
<!-- Override the id to include the sdk band as per the workload installer spec -->
13+
<PropertyGroup>
14+
<Id>Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest-$(SdkBandVersionForWorkload_FromRuntimeVersions)</Id>
15+
</PropertyGroup>
16+
17+
<PropertyGroup>
18+
<WorkloadManifestPath>$(IntermediateOutputPath)WorkloadManifest.json</WorkloadManifestPath>
19+
<WorkloadManifestTargetsPath>$(IntermediateOutputPath)WorkloadManifest.targets</WorkloadManifestTargetsPath>
20+
</PropertyGroup>
21+
22+
<ItemGroup>
23+
<PackageFile Include="$(WorkloadManifestPath)" TargetPath="data" />
24+
<PackageFile Include="$(WorkloadManifestTargetsPath)" TargetPath="data" />
25+
</ItemGroup>
26+
27+
<ItemGroup>
28+
<File Include="localize/**/*">
29+
<TargetPath>data/localize</TargetPath>
30+
</File>
31+
</ItemGroup>
32+
</Target>
33+
34+
<!-- Running this target ensures we have the fully evaluated PackageVersion -->
35+
<Target Name="_WriteManifestValues" AfterTargets="CalculatePackageVersion">
36+
<PropertyGroup>
37+
<PackagePathVersion>PackageVersion=$(PackageVersion);</PackagePathVersion>
38+
</PropertyGroup>
39+
40+
<ItemGroup>
41+
<_WorkloadManifestValues Include="WorkloadVersion" Value="$(PackageVersion)" />
42+
<_WorkloadManifestValues Include="PackageVersionNet8" Value="$(PackageVersionNet8)" Condition="'$(PackageVersionNet8)' != ''" />
43+
<_WorkloadManifestValues Include="PackageVersionNet8" Value="$(PackageVersion)" Condition="'$(PackageVersionNet8)' == ''" />
44+
<_WorkloadManifestValues Include="EmscriptenVersion" Value="$(MicrosoftNETRuntimeEmscriptenVersion)" />
45+
<_WorkloadManifestValues Include="NetCoreAppCurrent" Value="$(NetCoreAppCurrent)" />
46+
</ItemGroup>
47+
48+
<Error Condition="'%(_WorkloadManifestValues.Value)' == ''"
49+
Text="No version specified for template variable '%(_WorkloadManifestValues.Identity)'" />
50+
51+
<GenerateFileFromTemplate
52+
TemplateFile="WorkloadManifest.json.in"
53+
Properties="@(_WorkloadManifestValues)"
54+
OutputPath="$(WorkloadManifestPath)" />
55+
56+
<GenerateFileFromTemplate
57+
TemplateFile="WorkloadManifest.targets.in"
58+
Properties="@(_WorkloadManifestValues)"
59+
OutputPath="$(WorkloadManifestTargetsPath)" />
60+
</Target>
61+
62+
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.targets))" />
63+
</Project>

0 commit comments

Comments
 (0)