-
Notifications
You must be signed in to change notification settings - Fork 8.1k
Closed
Labels
Resolution-FixedThe issue is fixed.The issue is fixed.WG-Enginecore PowerShell engine, interpreter, and runtimecore PowerShell engine, interpreter, and runtime
Milestone
Description
First: System.Management.Automation.SemanticVersion is not SemVer v2 compliant
Second: PowerShell releases are using SemVer v2 syntax
Therefore: $PSVersionTable.PSVersion is truncated and thus broken, as pre-release versions cannot be compared to each other (the only useful assertion possible is that the PSVersion is -lt "6.0.0")
You should be using (an implementation like) Nuget.Core's Nuget.SemanticVersion which handles -prerelease and +patch as well as dotted versions like your 6.0.0-beta.7
Note that both the tests below return TRUE if $SemVer is Nuget.SemanticVersion:
Steps to reproduce
$SemVer = [System.Management.Automation.SemanticVersion]
("6.0.0-beta.10" -as $SemVer) -gt ("6.0.0-beta.7" -as $SemVer)
("6.0.0+fixes" -as $SemVer) -gt ("6.0.0-beta" -as $SemVer)Expected behavior
True
True
Actual behavior
False
False
Environment data
> $PSVersionTable
Name Value
---- -----
PSVersion 6.0.0-beta
PSEdition Core
GitCommitId v6.0.0-beta.7
OS Microsoft Windows 10.0.15063
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0markekraus, fMichaleczek and rkeithhill
Metadata
Metadata
Assignees
Labels
Resolution-FixedThe issue is fixed.The issue is fixed.WG-Enginecore PowerShell engine, interpreter, and runtimecore PowerShell engine, interpreter, and runtime