From a90b03b428e0ec7a1dbc34dbf31e42ffad68fa0d Mon Sep 17 00:00:00 2001 From: Travis Plunk Date: Fri, 9 Aug 2024 11:58:35 -0700 Subject: [PATCH] Fix semver issue with updating cgmanifest (#24132) --- tools/cgmanifest.json | 56 ++++++++++++++++++------------------ tools/findMissingNotices.ps1 | 40 +++++++++++++++++--------- 2 files changed, 55 insertions(+), 41 deletions(-) diff --git a/tools/cgmanifest.json b/tools/cgmanifest.json index 762174e2ce..65d8d99fa7 100644 --- a/tools/cgmanifest.json +++ b/tools/cgmanifest.json @@ -1,5 +1,4 @@ { - "$schema": "https://json.schemastore.org/component-detection-manifest.json", "Registrations": [ { "Component": { @@ -36,7 +35,7 @@ "Type": "nuget", "Nuget": { "Name": "Json.More.Net", - "Version": "2.0.0" + "Version": "2.0.1.2" } }, "DevelopmentDependency": false @@ -46,7 +45,7 @@ "Type": "nuget", "Nuget": { "Name": "JsonPointer.Net", - "Version": "4.0.0" + "Version": "5.0.0" } }, "DevelopmentDependency": false @@ -56,7 +55,7 @@ "Type": "nuget", "Nuget": { "Name": "JsonSchema.Net", - "Version": "6.0.2" + "Version": "7.0.1" } }, "DevelopmentDependency": false @@ -66,7 +65,7 @@ "Type": "nuget", "Nuget": { "Name": "Markdig.Signed", - "Version": "0.34.0" + "Version": "0.37.0" } }, "DevelopmentDependency": false @@ -86,7 +85,7 @@ "Type": "nuget", "Nuget": { "Name": "Microsoft.Bcl.AsyncInterfaces", - "Version": "5.0.0" + "Version": "8.0.0" } }, "DevelopmentDependency": false @@ -106,7 +105,7 @@ "Type": "nuget", "Nuget": { "Name": "Microsoft.CodeAnalysis.Common", - "Version": "4.8.0" + "Version": "4.9.2" } }, "DevelopmentDependency": false @@ -116,7 +115,7 @@ "Type": "nuget", "Nuget": { "Name": "Microsoft.CodeAnalysis.CSharp", - "Version": "4.8.0" + "Version": "4.9.2" } }, "DevelopmentDependency": false @@ -126,7 +125,7 @@ "Type": "nuget", "Nuget": { "Name": "Microsoft.Extensions.ObjectPool", - "Version": "5.0.10" + "Version": "8.0.4" } }, "DevelopmentDependency": false @@ -226,7 +225,7 @@ "Type": "nuget", "Nuget": { "Name": "Microsoft.Windows.Compatibility", - "Version": "8.0.2" + "Version": "8.0.7" } }, "DevelopmentDependency": false @@ -246,7 +245,7 @@ "Type": "nuget", "Nuget": { "Name": "runtime.android-arm.runtime.native.System.IO.Ports", - "Version": "9.0.0-preview.1.24080.9" + "Version": "9.0.0-preview.3.24172.9" } }, "DevelopmentDependency": false @@ -256,7 +255,7 @@ "Type": "nuget", "Nuget": { "Name": "runtime.android-arm64.runtime.native.System.IO.Ports", - "Version": "9.0.0-preview.1.24080.9" + "Version": "9.0.0-preview.3.24172.9" } }, "DevelopmentDependency": false @@ -266,7 +265,7 @@ "Type": "nuget", "Nuget": { "Name": "runtime.android-x64.runtime.native.System.IO.Ports", - "Version": "9.0.0-preview.1.24080.9" + "Version": "9.0.0-preview.3.24172.9" } }, "DevelopmentDependency": false @@ -276,7 +275,7 @@ "Type": "nuget", "Nuget": { "Name": "runtime.android-x86.runtime.native.System.IO.Ports", - "Version": "9.0.0-preview.1.24080.9" + "Version": "9.0.0-preview.3.24172.9" } }, "DevelopmentDependency": false @@ -306,7 +305,7 @@ "Type": "nuget", "Nuget": { "Name": "runtime.linux-bionic-arm64.runtime.native.System.IO.Ports", - "Version": "9.0.0-preview.1.24080.9" + "Version": "9.0.0-preview.3.24172.9" } }, "DevelopmentDependency": false @@ -316,7 +315,7 @@ "Type": "nuget", "Nuget": { "Name": "runtime.linux-bionic-x64.runtime.native.System.IO.Ports", - "Version": "9.0.0-preview.1.24080.9" + "Version": "9.0.0-preview.3.24172.9" } }, "DevelopmentDependency": false @@ -326,7 +325,7 @@ "Type": "nuget", "Nuget": { "Name": "runtime.linux-musl-arm.runtime.native.System.IO.Ports", - "Version": "9.0.0-preview.1.24080.9" + "Version": "9.0.0-preview.3.24172.9" } }, "DevelopmentDependency": false @@ -336,7 +335,7 @@ "Type": "nuget", "Nuget": { "Name": "runtime.linux-musl-arm64.runtime.native.System.IO.Ports", - "Version": "9.0.0-preview.1.24080.9" + "Version": "9.0.0-preview.3.24172.9" } }, "DevelopmentDependency": false @@ -346,7 +345,7 @@ "Type": "nuget", "Nuget": { "Name": "runtime.linux-musl-x64.runtime.native.System.IO.Ports", - "Version": "9.0.0-preview.1.24080.9" + "Version": "9.0.0-preview.3.24172.9" } }, "DevelopmentDependency": false @@ -366,7 +365,7 @@ "Type": "nuget", "Nuget": { "Name": "runtime.maccatalyst-arm64.runtime.native.System.IO.Ports", - "Version": "9.0.0-preview.1.24080.9" + "Version": "9.0.0-preview.3.24172.9" } }, "DevelopmentDependency": false @@ -376,7 +375,7 @@ "Type": "nuget", "Nuget": { "Name": "runtime.maccatalyst-x64.runtime.native.System.IO.Ports", - "Version": "9.0.0-preview.1.24080.9" + "Version": "9.0.0-preview.3.24172.9" } }, "DevelopmentDependency": false @@ -556,7 +555,7 @@ "Type": "nuget", "Nuget": { "Name": "System.Diagnostics.DiagnosticSource", - "Version": "8.0.0" + "Version": "8.0.1" } }, "DevelopmentDependency": false @@ -616,7 +615,7 @@ "Type": "nuget", "Nuget": { "Name": "System.Drawing.Common", - "Version": "8.0.2" + "Version": "8.0.7" } }, "DevelopmentDependency": false @@ -626,7 +625,7 @@ "Type": "nuget", "Nuget": { "Name": "System.Formats.Asn1", - "Version": "8.0.0" + "Version": "8.0.1" } }, "DevelopmentDependency": false @@ -666,7 +665,7 @@ "Type": "nuget", "Nuget": { "Name": "System.Net.Http.WinHttpHandler", - "Version": "8.0.0" + "Version": "8.0.1" } }, "DevelopmentDependency": false @@ -746,7 +745,7 @@ "Type": "nuget", "Nuget": { "Name": "System.Security.AccessControl", - "Version": "6.0.0" + "Version": "6.0.1" } }, "DevelopmentDependency": false @@ -776,7 +775,7 @@ "Type": "nuget", "Nuget": { "Name": "System.Security.Cryptography.Xml", - "Version": "8.0.0" + "Version": "8.0.1" } }, "DevelopmentDependency": false @@ -931,5 +930,6 @@ }, "DevelopmentDependency": false } - ] + ], + "$schema": "https://json.schemastore.org/component-detection-manifest.json" } diff --git a/tools/findMissingNotices.ps1 b/tools/findMissingNotices.ps1 index cd65f75995..2915853ec3 100644 --- a/tools/findMissingNotices.ps1 +++ b/tools/findMissingNotices.ps1 @@ -88,6 +88,28 @@ if (!$IsWindows) { Write-Warning "Always using $winDesktopSdk since this is not windows!!!" } +function ConvertTo-SemVer { + param( + [String] $Version + ) + + [System.Management.Automation.SemanticVersion]$desiredVersion = [System.Management.Automation.SemanticVersion]::Empty + + try { + $desiredVersion = $Version + } catch { + <# + Json.More.Net broke the rules and published 2.0.1.2 as 2.0.1. + So, I'm making the logic work for that scenario by + thorwing away any part that doesn't match non-pre-release semver portion + #> + $null = $Version -match '^(\d+\.\d+\.\d+)).*' + $desiredVersion = $matches[1] + } + + return $desiredVersion +} + function New-NugetComponent { param( [string]$name, @@ -125,23 +147,15 @@ function Get-NuGetPublicVersion { return $nugetPublicVersionCache[$Name] } - try { - [System.Management.Automation.SemanticVersion]$desiredVersion = $Version - } catch { - [Version]$desiredVersion = $Version - } + [System.Management.Automation.SemanticVersion]$desiredVersion = ConvertTo-SemVer -Version $Version $publicVersion = $null $publicVersion = Find-Package -Name $Name -AllowPrereleaseVersions -source $packageSourceName -AllVersions -ErrorAction SilentlyContinue | ForEach-Object { - try { - $packageVersion = [System.Management.Automation.SemanticVersion]$_.Version - } catch { - # Fall back to using [version] if it is not a semantic version - $packageVersion = $_.Version - } - + [System.Management.Automation.SemanticVersion]$packageVersion = ConvertTo-SemVer -Version $_.Version $_ | Add-Member -Name SemVer -MemberType NoteProperty -Value $packageVersion -PassThru - } | Where-Object { $_.SemVer -le $desiredVersion } | Sort-Object -Property semver -Descending | Select-Object -First 1 -ExpandProperty Version + } | Where-Object { + $_.SemVer -le $desiredVersion + } | Sort-Object -Property semver -Descending | Select-Object -First 1 -ExpandProperty Version if(!$publicVersion) { Write-Warning "No public version found for $Name, using $Version"