Skip to content

Commit d4ee9de

Browse files
lewingradical
andauthored
[mono][workloads] Allow overriding the current version (#93031)
* Allow overriding the current version * [wasm] WBT: Disable WasmOverridePacks.targets --------- Co-authored-by: Ankit Jain <radical@gmail.com>
1 parent b7448cd commit d4ee9de

File tree

6 files changed

+25
-16
lines changed

6 files changed

+25
-16
lines changed

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

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,16 @@
66
<_RuntimePackInWorkloadVersion7>${PackageVersionNet7}</_RuntimePackInWorkloadVersion7>
77
<_RuntimePackInWorkloadVersion6>${PackageVersionNet6}</_RuntimePackInWorkloadVersion6>
88

9-
<TargetsNet9 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '9.0'))">true</TargetsNet9>
9+
<TargetsCurrent Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '9.0'))">true</TargetsCurrent>
10+
<!-- force net8 to use the current targets until the SDK can target net9 -->
11+
<ForceNet8Current Condition="'$(ForceNet8Current)' == ''">true</ForceNet8Current>
12+
<TargetsCurrent Condition="'$(ForceNet8Current)' == 'true' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '8.0'))">true</TargetsCurrent>
13+
</PropertyGroup>
14+
<PropertyGroup Condition="'$(TargetsCurrent)' != 'true'">
1015
<TargetsNet8 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '8.0'))">true</TargetsNet8>
1116
<TargetsNet7 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '7.0'))">true</TargetsNet7>
1217
<TargetsNet6 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '6.0'))">true</TargetsNet6>
1318

14-
<TargetsCurrent Condition="'$(TargetsNet9)' == 'true'">true</TargetsCurrent>
15-
1619
<!-- override WorkloadDetectionWhen net7 == net8 -->
1720
<WasmNativeWorkload7 Condition="'${PackageVersionNet7}' == '${PackageVersion}'">$(WasmNativeWorkload8)</WasmNativeWorkload7>
1821
</PropertyGroup>
@@ -24,17 +27,11 @@
2427
<_BrowserWorkloadDisabled>$(_BrowserWorkloadNotSupportedForTFM)</_BrowserWorkloadDisabled>
2528

2629
<_UsingBlazorOrWasmSdk Condition="'$(UsingMicrosoftNETSdkBlazorWebAssembly)' == 'true' or '$(UsingMicrosoftNETSdkWebAssembly)' == 'true'">true</_UsingBlazorOrWasmSdk>
27-
28-
<!-- Is the workload for the target framework available -->
29-
<!--<WasmNativeWorkloadAvailable />-->
30-
<!--<WasmNativeWorkloadAvailable Condition="'$(TargetsNet8)' == 'true' and $(WasmNativeWorkloadAvailableList.Contains('+net8.0+'))">true</WasmNativeWorkloadAvailable>-->
31-
<!--<WasmNativeWorkloadAvailable Condition="'$(TargetsNet7)' == 'true' and $(WasmNativeWorkloadAvailableList.Contains('+net7.0+'))">true</WasmNativeWorkloadAvailable>-->
32-
<!--<WasmNativeWorkloadAvailable Condition="'$(TargetsNet6)' == 'true' and $(WasmNativeWorkloadAvailableList.Contains('+net6.0+'))">true</WasmNativeWorkloadAvailable>-->
3330
</PropertyGroup>
3431

3532
<PropertyGroup Condition="'$(RuntimeIdentifier)' == 'browser-wasm'">
3633
<SelfContained>true</SelfContained>
37-
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet9)' == 'true'">$(WasmNativeWorkload9)</WasmNativeWorkloadAvailable>
34+
<WasmNativeWorkloadAvailable Condition="'$(TargetsCurrent)' == 'true'">$(WasmNativeWorkload9)</WasmNativeWorkloadAvailable>
3835
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet8)' == 'true'">$(WasmNativeWorkload8)</WasmNativeWorkloadAvailable>
3936
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet7)' == 'true'">$(WasmNativeWorkload7)</WasmNativeWorkloadAvailable>
4037
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet6)' == 'true'">$(WasmNativeWorkload)</WasmNativeWorkloadAvailable>
@@ -181,12 +178,13 @@
181178
<!-- FIXMEWASI: workaround for now -->
182179
<RuntimePackRuntimeIdentifiers Condition="'$(RuntimeIdentifier)' == 'wasi-wasm'">%(RuntimePackRuntimeIdentifiers);wasi-wasm</RuntimePackRuntimeIdentifiers>
183180

184-
<LatestRuntimeFrameworkVersion Condition="'%(KnownRuntimePack.TargetFramework)' == '${NetCoreAppCurrent}' and '%(KnownRuntimePack.RuntimePackLabels)' == 'Mono'">$(_MonoWorkloadRuntimePackPackageVersion)</LatestRuntimeFrameworkVersion>
181+
<LatestRuntimeFrameworkVersion Condition="'$(TargetsCurrent)' == 'true' and '%(KnownRuntimePack.RuntimePackLabels)' == 'Mono'">$(_MonoWorkloadRuntimePackPackageVersion)</LatestRuntimeFrameworkVersion>
185182
<!-- Overrides for wasm threading support -->
186183
<RuntimePackNamePatterns Condition="'$(RuntimeIdentifier)' == 'browser-wasm' and '$(WasmEnableThreads)' == 'true'">Microsoft.NETCore.App.Runtime.Mono.multithread.**RID**</RuntimePackNamePatterns>
187184
</KnownRuntimePack>
188185
<KnownWebAssemblySdkPack Update="@(KnownWebAssemblySdkPack)">
189186
<WebAssemblySdkPackVersion Condition="'%(KnownWebAssemblySdkPack.TargetFramework)' == '${NetCoreAppCurrent}'">$(_KnownWebAssemblySdkPackVersion)</WebAssemblySdkPackVersion>
187+
<WebAssemblySdkPackVersion Condition="'%(KnownWebAssemblySdkPack.TargetFramework)' == 'net8.0'">$(_KnownWebAssemblySdkPackVersion)</WebAssemblySdkPackVersion>
190188
</KnownWebAssemblySdkPack>
191189
</ItemGroup>
192190

src/mono/wasm/Wasm.Build.Tests/Blazor/BlazorWasmTestBase.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ public void InitBlazorWasmProjectDir(string id, string targetFramework = Default
3939

4040
File.Copy(Path.Combine(BuildEnvironment.TestDataPath, "Blazor.Directory.Build.props"), Path.Combine(_projectDir, "Directory.Build.props"));
4141
File.Copy(Path.Combine(BuildEnvironment.TestDataPath, "Blazor.Directory.Build.targets"), Path.Combine(_projectDir, "Directory.Build.targets"));
42-
File.Copy(BuildEnvironment.WasmOverridePacksTargetsPath, Path.Combine(_projectDir, Path.GetFileName(BuildEnvironment.WasmOverridePacksTargetsPath)), overwrite: true);
42+
if (BuildEnvironment.UseWBTOverridePackTargets)
43+
File.Copy(BuildEnvironment.WasmOverridePacksTargetsPath, Path.Combine(_projectDir, Path.GetFileName(BuildEnvironment.WasmOverridePacksTargetsPath)), overwrite: true);
4344
}
4445

4546
public string CreateBlazorWasmTemplateProject(string id)

src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,8 @@ protected void InitProjectDir(string dir, bool addNuGetSourceForLocalPackages =
339339
Directory.CreateDirectory(dir);
340340
File.WriteAllText(Path.Combine(dir, "Directory.Build.props"), s_buildEnv.DirectoryBuildPropsContents);
341341
File.WriteAllText(Path.Combine(dir, "Directory.Build.targets"), s_buildEnv.DirectoryBuildTargetsContents);
342-
File.Copy(BuildEnvironment.WasmOverridePacksTargetsPath, Path.Combine(dir, Path.GetFileName(BuildEnvironment.WasmOverridePacksTargetsPath)), overwrite: true);
342+
if (BuildEnvironment.UseWBTOverridePackTargets)
343+
File.Copy(BuildEnvironment.WasmOverridePacksTargetsPath, Path.Combine(dir, Path.GetFileName(BuildEnvironment.WasmOverridePacksTargetsPath)), overwrite: true);
343344

344345
string targetNuGetConfigPath = Path.Combine(dir, "nuget.config");
345346
if (addNuGetSourceForLocalPackages)

src/mono/wasm/Wasm.Build.Tests/Common/BuildEnvironment.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@ public class BuildEnvironment
2727
public bool IsWorkloadWithMultiThreadingForDefaultFramework { get; init; }
2828
public bool IsRunningOnCI => EnvironmentVariables.IsRunningOnCI;
2929

30+
/* This will trigger importing WasmOverridePacks.targets for the tests,
31+
* which will override the runtime pack with with the locally built one.
32+
* But note that this only partially helps with "switching workloads" because
33+
* the tasks/targets, aot compiler, etc would still be from the old version
34+
*/
35+
public static readonly bool UseWBTOverridePackTargets = false;
36+
3037
public static readonly string RelativeTestAssetsPath = @"..\testassets\";
3138
public static readonly string TestAssetsPath = Path.Combine(AppContext.BaseDirectory, "testassets");
3239
public static readonly string TestDataPath = Path.Combine(AppContext.BaseDirectory, "data");
@@ -121,7 +128,7 @@ public BuildEnvironment()
121128
EnvVars["DOTNET_SKIP_FIRST_TIME_EXPERIENCE"] = "1";
122129
EnvVars["PATH"] = $"{sdkForWorkloadPath}{Path.PathSeparator}{Environment.GetEnvironmentVariable("PATH")}";
123130
EnvVars["EM_WORKAROUND_PYTHON_BUG_34780"] = "1";
124-
if (IsWorkload)
131+
if (UseWBTOverridePackTargets && IsWorkload)
125132
EnvVars["WBTOverrideRuntimePack"] = "true";
126133

127134
if (!UseWebcil)

src/mono/wasm/Wasm.Build.Tests/SatelliteAssembliesTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ public void ResourcesFromProjectReference(BuildArgs buildArgs,
110110
// affect the non-wasm library project
111111
File.Move(Path.Combine(rootDir, "Directory.Build.props"), Path.Combine(_projectDir, "Directory.Build.props"));
112112
File.Move(Path.Combine(rootDir, "Directory.Build.targets"), Path.Combine(_projectDir, "Directory.Build.targets"));
113-
File.Move(Path.Combine(rootDir, "WasmOverridePacks.targets"), Path.Combine(_projectDir, "WasmOverridePacks.targets"));
113+
if (BuildEnvironment.UseWBTOverridePackTargets)
114+
File.Move(Path.Combine(rootDir, "WasmOverridePacks.targets"), Path.Combine(_projectDir, "WasmOverridePacks.targets"));
114115

115116
CreateProgramForCultureTest(_projectDir, "LibraryWithResources.resx.words", "LibraryWithResources.Class1");
116117

src/mono/wasm/Wasm.Build.Tests/WasmTemplateTestBase.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ public string CreateWasmTemplateProject(string id, string template = "wasmbrowse
3737
<Import Project="WasmOverridePacks.targets" Condition="'$(WBTOverrideRuntimePack)' == 'true'" />
3838
</Project>
3939
""");
40-
File.Copy(BuildEnvironment.WasmOverridePacksTargetsPath, Path.Combine(_projectDir, Path.GetFileName(BuildEnvironment.WasmOverridePacksTargetsPath)), overwrite: true);
40+
if (BuildEnvironment.UseWBTOverridePackTargets)
41+
File.Copy(BuildEnvironment.WasmOverridePacksTargetsPath, Path.Combine(_projectDir, Path.GetFileName(BuildEnvironment.WasmOverridePacksTargetsPath)), overwrite: true);
4142

4243
if (addFrameworkArg)
4344
extraArgs += $" -f {DefaultTargetFramework}";

0 commit comments

Comments
 (0)