Skip to content

Commit

Permalink
Update API compatibility logic (microsoft#934)
Browse files Browse the repository at this point in the history
  • Loading branch information
LucGenetier authored Dec 22, 2022
1 parent 9c92baa commit dd20b35
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 2 deletions.
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -348,3 +348,12 @@ MigrationBackup/

# JetBrains Rider IDE Files
src/.idea

# Output folder
Output/

# Tool folder
tool/

# ApiCompat suppression files
suppress.*.xml
43 changes: 43 additions & 0 deletions .scripts/ApiCompat.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@

param(
[Parameter(Mandatory = $true)] [String]$BuildConfiguration
)

Write-Host "BuildConfiguration" $BuildConfiguration

$apiTool="tool\.store\microsoft.dotnet.apicompat.tool\7.0.100\microsoft.dotnet.apicompat.tool\7.0.100\tools\net6.0\any\Microsoft.DotNet.ApiCompat.Tool.dll"
$apiToolRightFolder="Output"

[xml]$xfiles = Get-Content .\ApiCompat.Files.xml
$e = [char]0x274C

foreach ($a in $xfiles.ApiCompat.Assembly)
{
$n = $a.Name
$s = "suppress.$n.xml"
$l = $ExecutionContext.InvokeCommand.ExpandString($a.Location)
$apiToolLeft = "$l\$n.dll"
$apiToolRight = "$apiToolRightFolder\$n.dll"

Set-Content $s "<Suppressions/>"

Write-Host "Checking" $n "..."
dotnet $apiTool --suppression-file $s --left-assembly $apiToolLeft --right-assembly $apiToolRight --enable-rule-attributes-must-match --enable-rule-cannot-change-parameter-name --generate-suppression-file

[xml]$x = Get-Content $s
$e += [string]::Join([char]0x274C, ($x.Suppressions.Suppression | % { $_.DiagnosticId + " " + $_.Target })).Trim()
}


if ($e.Length -gt 2)
{
Write-Host "##[error] $e"
Write-Host "##vso[task.setvariable variable=ApiCompat;issecret=false]Public API changes: $e"
}
else
{
$ok = [char]0x2705
$okMsg = $ok + " No public API change."
Write-Host $okMsg
Write-Host "##vso[task.setvariable variable=ApiCompat;issecret=false]$okMsg"
}
22 changes: 22 additions & 0 deletions ApiCompat.Files.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<ApiCompat>
<Assembly>
<Name>Microsoft.PowerFx.Core</Name>
<Location>src\libraries\Microsoft.PowerFx.Core\bin\$BuildConfiguration\netstandard2.0</Location>
</Assembly>
<Assembly>
<Name>Microsoft.PowerFx.LanguageServerProtocol</Name>
<Location>src\libraries\Microsoft.PowerFx.LanguageServerProtocol\bin\$BuildConfiguration\netstandard2.0</Location>
</Assembly>
<Assembly>
<Name>Microsoft.PowerFx.Interpreter</Name>
<Location>src\libraries\Microsoft.PowerFx.Interpreter\bin\$BuildConfiguration\netstandard2.0</Location>
</Assembly>
<Assembly>
<Name>Microsoft.PowerFx.Connectors</Name>
<Location>src\libraries\Microsoft.PowerFx.Connectors\bin\$BuildConfiguration\netstandard2.0</Location>
</Assembly>
<Assembly>
<Name>Microsoft.PowerFx.Transport.Attributes</Name>
<Location>src\libraries\Microsoft.PowerFx.Transport.Attributes\bin\$BuildConfiguration\netstandard2.0</Location>
</Assembly>
</ApiCompat>
5 changes: 3 additions & 2 deletions src/Microsoft.PowerFx.sln
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.33027.164
# Visual Studio Version 17
VisualStudioVersion = 17.4.33205.214
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{4269F3C3-6B42-419B-B64A-3E6DC0F1574A}"
ProjectSection(SolutionItems) = preProject
Expand All @@ -26,6 +26,7 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{1BF2F760-4DBD-450B-ADED-81548000432D}"
ProjectSection(SolutionItems) = preProject
..\.editorconfig = ..\.editorconfig
..\.gitignore = ..\.gitignore
CodeCoverage.runsettings = CodeCoverage.runsettings
Directory.Build.Props = Directory.Build.Props
PowerFx.Off.ruleset = PowerFx.Off.ruleset
Expand Down

0 comments on commit dd20b35

Please sign in to comment.