Skip to content

Releases: WalkerCodeRanger/semver

semver v3.0.0

23 Oct 22:34
Compare
Choose a tag to compare

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

21 Feb 01:15
Compare
Choose a tag to compare

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

12 Jun 18:25
Compare
Choose a tag to compare

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

19 Mar 21:51
Compare
Choose a tag to compare

A minor release to improve parsing, construction, and modification.

  • Greatly improved doc comments
  • New Parse() and TryParse() overloads taking SemVersionStyles
    • SemVersionStyles provide greater flexibility in what formats to accept (feature #38)
    • Improved performance and more detailed exception messages (feature #62)
    • New methods enforce rule about leading zeros in prerelease identifiers (bug #16)
    • Old Parse() and TryParse() overloads marked obsolete
  • New With(), WithParsedFrom(), WithX(), WithoutX() methods to replace Change() method (feature #65)
    • New methods fully validate parameters to prevent invalid versions
    • New method names clearly indicate that the method does not mutate the existing SemVersion
    • Old Change() method marked obsolete
  • Added PrereleaseIdentifiers property providing access to individual identifiers (feature #37)
  • Added MetadataIdentifiers property providing access to individual identifiers (feature #37)
  • New Metadata property for consistent terminology use matching the semver spec
    • Marked Build property obsolete
  • Added IsPrerelease and IsRelease properties (feature #44)
  • New constructor overloads and SemVersion.ParsedFrom() method (bugs #40, #41)
    • New overloads accept prerelease portion and metadata as individual identifiers
    • New overloads validate all parameters to prevent invalid semantic versions
    • Marked old constructor overload obsolete
  • SemVersion now implements IEquatable<SemVersion> (feature #34)
  • New SemVersion.FromVersion() and ToVersion() methods for conversion from and to System.Version (bug #32)
    • Corrects the mapping between version parts
    • Marked old constructor obsolete
  • Added .NET Standard 2.0 assembly version to avoid warnings about .NET Standard 1.0 (feature #30)
  • Assembly version fixed at 2.1.0.0 until v3.0 (bug #61)
  • Marked implicit conversion from string obsolete (feature #46)
  • Improved hash code calculation

semver v2.0.6

28 Dec 03:09
Compare
Choose a tag to compare

A patch release to mitigate the possibility of ReDoS attacks (issue #58)

  • Modified parsing RegEx to use atomic groups
  • Added RegEx parsing timeout of ½ second

semver v2.0.5

27 Oct 18:14
Compare
Choose a tag to compare

A patch release to improve documentation, performance, test coverage, and development environment.

  • Improved API documentation and readme
  • Improved performance of TryParse, ToString, <=, and >=
  • Use invariant culture for parsing
  • Now publishing symbols package (#50)
  • Use SemVer in the AssemblyInformationalVersion (#43)

Development environment improvements:

  • Many more unit tests
  • New build and deploy process
  • Set up Microsoft.CodeAnalysis.FxCopAnalyzers and fix warnings
  • Upgraded project to VS 2019

semver v2.0.4

13 Oct 21:29
Compare
Choose a tag to compare

A patch release that appears to be an identical version to v2.0.3.

(This release note was written long after the release. The exact reason for a v2.0.4 release is now unknown. However, git tags for the releases are on the same commit. In addition, the packages appear to be essentially identical except for the version numbers even down to the byte length of the DLLs and both list 02eb12743a as the commit hash in their product version)

semver v2.0.3

01 Aug 07:08
Compare
Choose a tag to compare

A major release to support .NET Standard.

Breaking Changes:

  • Removes support for .NET Framework 2.0 to 4.0 (.NET Framework ≥4.5 still supported)

Other Changes:

semver v1.1.2

28 Sep 21:47
Compare
Choose a tag to compare

A patch release.

semver v1.1.1

28 Sep 21:49
Compare
Choose a tag to compare

A patch release.