microsoft / winget-cli

WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).
https://learn.microsoft.com/windows/package-manager/
MIT License
22.5k stars 1.39k forks source link

Trim Version When Parsing #4554

Closed Trenly closed 1 week ago

Trenly commented 1 week ago

When parsing a version, it may be possible that a publisher included one or more whitespace characters at the end of the DisplayVersion key. Since a folder name cannot end with a whitespace character, this means that any PackageVersion in the community repository cannot have a trailing whitespace character.

Due to the way versions are parsed, the trailing whitespace gets considered as an "other" of the version part during the version comparison. This means that 5.8 is considered a lower version than 5.8 when parsed.

This PR makes it so that when a version is assigned, as is the case when parsing the installed versions, both the final version and the version parts are trimmed of whitespace. This means that 5.0.13 is now considered equal to 5.0 .13, 5.0.13, or even 5 . 0 .13

Microsoft Reviewers: Open in CodeFlow
JohnMcPMS commented 1 week ago

/azp run

azure-pipelines[bot] commented 1 week ago
Azure Pipelines successfully started running 1 pipeline(s).