[net9.0] Bump to Xcode 15.4 packages instead of Xcode 15.1 packages as the latest .NET 8 stable. (#20888)

This also required some changes to the generation of the workload
manifest files, since the Xcode 15.4 packages support multi-targeting.

---------

Co-authored-by: Alex Soto <alex@soto.dev>
This commit is contained in:
Rolf Bjarne Kvinge 2024-07-15 19:55:15 +02:00 коммит произвёл GitHub
Родитель 896b26b76c
Коммит e1290d2f15
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
7 изменённых файлов: 54 добавлений и 30 удалений

Просмотреть файл

@ -146,3 +146,8 @@ SUPPORTED_API_VERSIONS_IOS+=net8.0-17.0
SUPPORTED_API_VERSIONS_TVOS+=net8.0-17.0
SUPPORTED_API_VERSIONS_MACOS+=net8.0-14.0
SUPPORTED_API_VERSIONS_MACCATALYST+=net8.0-17.0
SUPPORTED_API_VERSIONS_IOS+=net8.0-17.5
SUPPORTED_API_VERSIONS_TVOS+=net8.0-17.5
SUPPORTED_API_VERSIONS_MACOS+=net8.0-14.5
SUPPORTED_API_VERSIONS_MACCATALYST+=net8.0-17.5

Просмотреть файл

@ -181,7 +181,7 @@ Workloads/Microsoft.NET.Sdk.$(1)/WorkloadManifest.json: Makefile $(TOP)/Make.con
Workloads/Microsoft.NET.Sdk.$(1)/WorkloadManifest.targets: Makefile $(TOP)/Make.config.inc $(GIT_DIRECTORY)/HEAD $(GIT_DIRECTORY)/index Makefile generate-workloadmanifest-targets.csharp | Workloads/Microsoft.NET.Sdk.$(1)
$$(Q) rm -f $$@.tmp
$$(Q_GEN) ./generate-workloadmanifest-targets.csharp "$(1)" "$$@.tmp" "$$(DOTNET_WINDOWS_PLATFORMS)" "$(DOTNET_TFM)_$$($(4)_NUGET_OS_VERSION)" "net8.0" "$(SUPPORTED_API_VERSIONS_$(4))"
$$(Q_GEN) ./generate-workloadmanifest-targets.csharp "$(1)" "$$@.tmp" "$$(DOTNET_WINDOWS_PLATFORMS)" "$(DOTNET_TFM)_$$($(4)_NUGET_OS_VERSION)" "$(SUPPORTED_API_VERSIONS_$(4))"
$$(Q) mv $$@.tmp $$@
Workloads/Microsoft.NET.Sdk.$(1)/LICENSE: $(TOP)/LICENSE | Workloads/Microsoft.NET.Sdk.$(1)

Просмотреть файл

@ -28,7 +28,6 @@ var versionsPropsPath = args [argumentIndex++];
var platformLowerCase = platform.ToLowerInvariant ();
var allApiVersions = new List<string> (supportedApiVersions);
allApiVersions.Add ("net8.0");
allApiVersions = allApiVersions.Select (v => v.Replace ('-', '_')).ToList ();
var versionsPropsTable = File.ReadAllLines (versionsPropsPath).

Просмотреть файл

@ -6,7 +6,7 @@ using System.IO;
using System.Xml;
var args = Args;
var expectedArgumentCount = 6;
var expectedArgumentCount = 5;
if (args.Length != expectedArgumentCount) {
Console.WriteLine ($"Need {expectedArgumentCount} arguments, got {args.Length}");
Environment.Exit (1);
@ -19,7 +19,6 @@ var outputPath = args [argumentIndex++];
var windowsPlatforms = args [argumentIndex++].Split (new char [] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var hasWindows = Array.IndexOf (windowsPlatforms, platform) >= 0;
var currentApiVersion = args [argumentIndex++];
var olderApiVersions = args [argumentIndex++];
var supportedApiVersions = args [argumentIndex++];
var platformLowerCase = platform.ToLowerInvariant ();
@ -28,25 +27,46 @@ var tfm = currentApiVersion;
var supportedTFMs = new List<string> ();
supportedTFMs.AddRange (supportedApiVersions.Split (' ').Select (v => v.Replace ('-', '_')));
supportedTFMs.Sort ();
supportedTFMs.AddRange (olderApiVersions.Split (' '));
var supportedTFVs = new List<string> ();
var tfmToTpvAndTfv = new Func<string, (string Tfv, string Tpv)> (tfm => {
var tfv = tfm.Replace ("net", "");
var sep = tfv.IndexOfAny (new char [] { '-', '_' });
var tpv = "";
if (sep >= 0) {
tpv = tfv.Substring (sep + 1);
tfv = tfv.Substring (0, sep);
}
return (tfv, tpv);
})
// Find the latest TFM for each major .NET version.
// We import the workload for this TFM if there's no TPV specified in the TargetFramework.
var groupedByMajorDotNetVersion = supportedTFMs.
Where (v => v.IndexOfAny (new char [] { '-', '_' }) >= 0).
GroupBy (v => v.Split (new char [] { '-', '_' }) [0]);
var highestTpvPerMajorDotNet = groupedByMajorDotNetVersion.
Select (gr => {
var max = gr.OrderByDescending (el => {
var rv = tfmToTpvAndTfv (el);
return float.Parse (rv.Tpv, System.Globalization.CultureInfo.InvariantCulture);
}).First ();
return max;
}).
ToHashSet ();
using (var writer = new StreamWriter (outputPath)) {
writer.WriteLine ($"<Project>");
foreach (var tfm in supportedTFMs) {
var tfv = tfm.Replace ("net", "");
var sep = tfv.IndexOfAny (new char [] { '-', '_' });
var tpv = "";
if (sep >= 0) {
tpv = tfv.Substring (sep + 1);
tfv = tfv.Substring (0, sep);
}
var parsed = tfmToTpvAndTfv (tfm);
var tfv = parsed.Tfv;
var tpv = parsed.Tpv;
supportedTFVs.Add (tfv);
var workloadVersion = tfm;
if (tfv [0] == '7')
workloadVersion = tfm.Replace (".0", "");
if (tfm == currentApiVersion) {
if (highestTpvPerMajorDotNet.Contains (tfm)) {
writer.WriteLine ($" <ImportGroup Condition=\" '$(TargetPlatformIdentifier)' == '{platform}' And '$(UsingAppleNETSdk)' != 'true' And $([MSBuild]::VersionEquals($(TargetFrameworkVersion), '{tfv}'))\">");
writer.WriteLine ($" <Import Project=\"Sdk.props\" Sdk=\"Microsoft.{platform}.Sdk.{workloadVersion}\" /> <!-- this SDK version will validate the TargetPlatformVersion and show an error (in .NET 9+) or a warning (.NET 8) if it's not valid -->");
} else if (tpv.Length > 0) {
@ -54,11 +74,11 @@ using (var writer = new StreamWriter (outputPath)) {
writer.WriteLine ($" <Import Project=\"Sdk.props\" Sdk=\"Microsoft.{platform}.Sdk.{workloadVersion}\" />");
} else {
writer.WriteLine ($" <ImportGroup Condition=\" '$(TargetPlatformIdentifier)' == '{platform}' And '$(UsingAppleNETSdk)' != 'true' And $([MSBuild]::VersionEquals($(TargetFrameworkVersion), '{tfv}'))\">");
writer.WriteLine ($" <Import Project=\"Sdk.props\" Sdk=\"Microsoft.{platform}.Sdk.{(workloadVersion == "net8.0" ? "net8" : tfm)}\" />");
writer.WriteLine ($" <Import Project=\"Sdk.props\" Sdk=\"Microsoft.{platform}.Sdk.{tfm}\" />");
}
if (hasWindows) {
writer.WriteLine ($" <Import Project=\"Sdk.props\" Sdk=\"Microsoft.{platform}.Windows.Sdk.Aliased.{(workloadVersion == "net8.0" ? "net8" : tfm)}\" Condition=\" $([MSBuild]::IsOSPlatform('windows'))\" />");
writer.WriteLine ($" <Import Project=\"Sdk.props\" Sdk=\"Microsoft.{platform}.Windows.Sdk.Aliased.{tfm}\" Condition=\" $([MSBuild]::IsOSPlatform('windows'))\" />");
}
writer.WriteLine ($" </ImportGroup>");

Просмотреть файл

@ -30,22 +30,22 @@
<Uri>https://github.com/dotnet/cecil</Uri>
<Sha>7e4af02521473d89d6144b3da58fef253e498974</Sha>
</Dependency>
<!-- This is a subscription of the .NET 8 versions of our packages -->
<Dependency Name="Microsoft.MacCatalyst.Sdk" Version="17.2.8078">
<!-- This is a subscription of the .NET 8/Xcode 15.4 versions of our packages -->
<Dependency Name="Microsoft.MacCatalyst.Sdk.net8.0_17.5" Version="17.5.8001">
<Uri>https://github.com/xamarin/xamarin-macios</Uri>
<Sha>80944cffcc493f49a32645737f515a227c5740e4</Sha>
<Sha>64731f8c40752601abebe8eeaf334837344d679b</Sha>
</Dependency>
<Dependency Name="Microsoft.macOS.Sdk" Version="14.2.8078">
<Dependency Name="Microsoft.macOS.Sdk.net8.0_14.5" Version="14.5.8001">
<Uri>https://github.com/xamarin/xamarin-macios</Uri>
<Sha>80944cffcc493f49a32645737f515a227c5740e4</Sha>
<Sha>64731f8c40752601abebe8eeaf334837344d679b</Sha>
</Dependency>
<Dependency Name="Microsoft.iOS.Sdk" Version="17.2.8078">
<Dependency Name="Microsoft.iOS.Sdk.net8.0_17.5" Version="17.5.8001">
<Uri>https://github.com/xamarin/xamarin-macios</Uri>
<Sha>80944cffcc493f49a32645737f515a227c5740e4</Sha>
<Sha>64731f8c40752601abebe8eeaf334837344d679b</Sha>
</Dependency>
<Dependency Name="Microsoft.tvOS.Sdk" Version="17.2.8078">
<Dependency Name="Microsoft.tvOS.Sdk.net8.0_17.5" Version="17.5.8001">
<Uri>https://github.com/xamarin/xamarin-macios</Uri>
<Sha>80944cffcc493f49a32645737f515a227c5740e4</Sha>
<Sha>64731f8c40752601abebe8eeaf334837344d679b</Sha>
</Dependency>
<!-- This is a subscription of the .NET 8/Xcode 15.0 versions of our packages -->
<Dependency Name="Microsoft.MacCatalyst.Sdk.net8.0_17.0" Version="17.0.8523">

Просмотреть файл

@ -18,10 +18,10 @@
<EmscriptenWorkloadVersion>$(MicrosoftNETWorkloadEmscriptenCurrentManifest80100Version)</EmscriptenWorkloadVersion>
<MicrosoftDotnetSdkInternalPackageVersion>$(VSToolsNetCoreSDKResolverPackageVersion)</MicrosoftDotnetSdkInternalPackageVersion>
<!-- This is a subscription of the .NET 8 versions of our packages -->
<MicrosoftMacCatalystSdkPackageVersion>17.2.8078</MicrosoftMacCatalystSdkPackageVersion>
<MicrosoftmacOSSdkPackageVersion>14.2.8078</MicrosoftmacOSSdkPackageVersion>
<MicrosoftiOSSdkPackageVersion>17.2.8078</MicrosoftiOSSdkPackageVersion>
<MicrosofttvOSSdkPackageVersion>17.2.8078</MicrosofttvOSSdkPackageVersion>
<MicrosoftMacCatalystSdknet80_175PackageVersion>17.5.8001</MicrosoftMacCatalystSdknet80_175PackageVersion>
<MicrosoftmacOSSdknet80_145PackageVersion>14.5.8001</MicrosoftmacOSSdknet80_145PackageVersion>
<MicrosoftiOSSdknet80_175PackageVersion>17.5.8001</MicrosoftiOSSdknet80_175PackageVersion>
<MicrosofttvOSSdknet80_175PackageVersion>17.5.8001</MicrosofttvOSSdknet80_175PackageVersion>
<!-- This is a subscription to the .NET 8/Xcode 15.0 versions of our packages -->
<MicrosoftMacCatalystSdknet80_170PackageVersion>17.0.8523</MicrosoftMacCatalystSdknet80_170PackageVersion>
<MicrosoftmacOSSdknet80_140PackageVersion>14.0.8523</MicrosoftmacOSSdknet80_140PackageVersion>

Просмотреть файл

@ -1521,11 +1521,11 @@ namespace Xamarin.Tests {
$"/usr/bin/codesign exited with code 1:\n" +
$"{appPath}: replacing existing signature\n" +
$"{appPath}: code object is not signed at all\n" +
$"In subcomponent: {appPath}/System.Diagnostics.DiagnosticSource.dll",
$"In subcomponent: {appPath}/System.Collections.NonGeneric.aotdata.arm64",
$"Failed to codesign '{appPath}': {appPath}: replacing existing signature\n" +
$"{appPath}: code object is not signed at all\n" +
$"In subcomponent: {appPath}/System.Diagnostics.DiagnosticSource.dll"
$"In subcomponent: {appPath}/System.Collections.NonGeneric.aotdata.arm64"
);
// Remove the dir, and now the build should succeed again.