Skip to content

Releases: WalkerCodeRanger/semver

semver v3.0.0

Choose a tag to compare

@WalkerCodeRanger WalkerCodeRanger released this 23 Oct 22:34

A major release to support arbitrary-sized version numbers, prevent invalid version numbers, remove obsolete functionality, and strong name the assembly.

Breaking Changes:

  • SemVersion.Parse and SemVersion.TryParse now default to strict parsing. Use SemVersionStyles to control parsing
  • SemVersion.Major, SemVersion.Minor, SemVersion.Patch, and PrereleaseIdentifier.NumericValue properties are now BigInteger (#73)
  • Removed obsolete methods (#70, #47), including:
    • Implicit conversion from string (#47). Use SemVersion.Parse instead
    • SemVersion(int major, int minor = 0, int patch = 0, string prerelease = "", string build = "") constructor. Use another constructor or SemVersion.ParsedFrom instead
    • SemVersion.Parse and SemVersion.TryParse overloads with the strict parameter. They now default to strict. Use SemVersionStyles to control parsing
    • Comparison with SemVersion.CompareTo, SemVersion.Compare, SemVersion.CompareByPrecedence, <, <=, >, >=, or SemVersion.PrecedenceMatches. Use SemVersion.ComparePrecedenceTo, SemVersion.CompareSortOrderTo, SemVersion.ComparePrecedence, or SemVersion.CompareSortOrder instead.
    • SemVersion.Build. Use SemVersion.Metadata instead
    • SemVersion.Change. Use SemVersion.With or SemVersion.WithX methods instead
    • SemVersion(Version) constructor. Use SemVersion.FromVersion instead
  • SemVersion no longer implements IComparable<SemVersion> or IComparable. Use SemVersion.PrecedenceComparer or SemVersion.SortOrderComparer instead
  • Added strong name to assembly (#23)
  • Dropped support for frameworks older than .NET Standard 2.0 (i.e., .NET Framework < 4.6.2 & .NET Core < 2.0) (#68)
  • Construction of versions with negative major, minor, or patch is no longer allowed (#40)
  • Negative maxLength parameter values now throw ArgumentOutOfRangeException (#72)

Other Changes:

  • Arbitrary-sized version numbers are now supported, including in prerelease identifiers (#73)

semver v2.3.0

Choose a tag to compare

@WalkerCodeRanger WalkerCodeRanger released this 21 Feb 01:15

A minor release to add semantic version ranges.

  • Added SemVersionRange class and related classes for creating, parsing, and manipulating semantic version ranges. Supports an npm like range syntax as well as the actual npm syntax.
  • Marked obsolete methods with EditorBrowsable(EditorBrowsableState.Never) so that they would not appear in auto-complete.

semver v2.2.0

Choose a tag to compare

@WalkerCodeRanger WalkerCodeRanger released this 12 Jun 18:25

A minor release to improve comparison. Existing comparison methods and operators were confusing (#15, #26) and had bugs (#39, #53, #69).

  • New ComparePrecedenceTo(SemVersion), PrecedenceEquals(Semver), and static ComparePrecedence(SemVersion, SemVersion) and PrecedenceEquals(SemVersion, SemVersion) methods for comparing precedence
  • New CompareSortOrderTo(SemVersion) and static CompareSortOrder(SemVersion, SemVersion) methods for comparing sort order
    • Use existing Equals(SemVersion) and Equals(SemVersion, SemVersion) to compare sort order equality
  • New PrecedenceComparer and SortOrderComparer static properties
    • Provide a comparer that implements IEqualityComparer<SemVersion> and IComparer<SemVersion> to compare by precedence and sort order respectively
    • These can be used for sorting, binary search, and using SemVersion as a dictionary key
  • Marked Compare(SemVersion, SemVersion), CompareByPrecedence(SemVersion), CompareTo(SemVersion), CompareTo(object), and PrecedenceMatches(SemVersion) obsolete
  • Marked comparison operators obsolete (#53)

semver v2.1.0

Choose a tag to compare