Browse Source

Merge pull request #13213 from AvaloniaUI/try-to-fix-API-validator

Try to fix api validator
release/11.0.5
Dan Walmsley 2 years ago
committed by Steven Kirk
parent
commit
6fb3c0e113
  1. 10
      azure-pipelines-integrationtests.yml
  2. 8
      azure-pipelines.yml
  3. 15
      nukebuild/ApiDiffValidation.cs
  4. 1
      src/Android/Avalonia.Android/Avalonia.Android.csproj
  5. 1
      src/iOS/Avalonia.iOS/Avalonia.iOS.csproj

10
azure-pipelines-integrationtests.yml

@ -5,15 +5,15 @@ jobs:
steps:
- task: UseDotNet@2
displayName: 'Use .NET Core SDK 6.0.404'
displayName: 'Use .NET Core SDK 6.0.415'
inputs:
version: 6.0.404
version: 6.0.415
- task: UseDotNet@2
displayName: 'Use .NET Core SDK 7.0.101'
displayName: 'Use .NET Core SDK 7.0.402'
inputs:
version: 7.0.101
version: 7.0.402
- script: system_profiler SPDisplaysDataType |grep Resolution
displayName: 'Get Resolution'

8
azure-pipelines.yml

@ -30,14 +30,14 @@ jobs:
vmImage: 'ubuntu-20.04'
steps:
- task: UseDotNet@2
displayName: 'Use .NET Core SDK 6.0.404'
displayName: 'Use .NET Core SDK 6.0.415'
inputs:
version: 6.0.404
version: 6.0.415
- task: UseDotNet@2
displayName: 'Use .NET Core SDK 7.0.101'
displayName: 'Use .NET Core SDK 7.0.402'
inputs:
version: 7.0.101
version: 7.0.402
- task: CmdLine@2
displayName: 'Install Workloads'

15
nukebuild/ApiDiffValidation.cs

@ -12,6 +12,13 @@ public static class ApiDiffValidation
{
private static readonly HttpClient s_httpClient = new();
private static readonly (string oldTfm, string newTfm)[] s_tfmRedirects = new[]
{
// We use StartsWith below comparing these tfm, as we ignore platform versions (like, net6.0-ios16.1)
("net6.0-android", "net7.0-android"),
("net6.0-ios", "net7.0-ios")
};
public static async Task ValidatePackage(
Tool apiCompatTool, string packagePath, string baselineVersion,
string suppressionFilesFolder, bool updateSuppressionFile)
@ -54,8 +61,14 @@ public static class ApiDiffValidation
await baselineDll.entry.Open().CopyToAsync(baselineDllFile);
}
var targetTfm = baselineDll.target;
if (s_tfmRedirects.FirstOrDefault(t => baselineDll.target.StartsWith(t.oldTfm)).newTfm is {} newTfm)
{
targetTfm = newTfm;
}
var targetDll = targetDlls.FirstOrDefault(e =>
e.target == baselineDll.target && e.entry.Name == baselineDll.entry.Name);
e.target.StartsWith(targetTfm) && e.entry.Name == baselineDll.entry.Name);
if (targetDll.entry is null)
{
throw new InvalidOperationException($"Some assemblies are missing in the new package {packageId}: {baselineDll.entry.Name} for {baselineDll.target}");

1
src/Android/Avalonia.Android/Avalonia.Android.csproj

@ -1,6 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0-android</TargetFramework>
<TargetFramework>net7.0-android33</TargetFramework>
<SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<MSBuildEnableWorkloadResolver>true</MSBuildEnableWorkloadResolver>

1
src/iOS/Avalonia.iOS/Avalonia.iOS.csproj

@ -1,6 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0-ios</TargetFramework>
<TargetFramework>net7.0-ios16.0</TargetFramework>
<SupportedOSPlatformVersion>13.0</SupportedOSPlatformVersion>
<MSBuildEnableWorkloadResolver>true</MSBuildEnableWorkloadResolver>
</PropertyGroup>

Loading…
Cancel
Save