Releases: WalkerCodeRanger/semver
semver v3.0.0
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
andSemVersion.TryParse
now default to strict parsing. UseSemVersionStyles
to control parsingSemVersion.Major
,SemVersion.Minor
,SemVersion.Patch
, andPrereleaseIdentifier.NumericValue
properties are nowBigInteger
(#73)- Removed obsolete methods (#70, #47), including:
- Implicit conversion from
string
(#47). UseSemVersion.Parse
instead SemVersion(int major, int minor = 0, int patch = 0, string prerelease = "", string build = "")
constructor. Use another constructor orSemVersion.ParsedFrom
insteadSemVersion.Parse
andSemVersion.TryParse
overloads with thestrict
parameter. They now default to strict. UseSemVersionStyles
to control parsing- Comparison with
SemVersion.CompareTo
,SemVersion.Compare
,SemVersion.CompareByPrecedence
,<
,<=
,>
,>=
, orSemVersion.PrecedenceMatches
. UseSemVersion.ComparePrecedenceTo
,SemVersion.CompareSortOrderTo
,SemVersion.ComparePrecedence
, orSemVersion.CompareSortOrder
instead. SemVersion.Build
. UseSemVersion.Metadata
insteadSemVersion.Change
. UseSemVersion.With
orSemVersion.WithX
methods insteadSemVersion(Version)
constructor. UseSemVersion.FromVersion
instead
- Implicit conversion from
SemVersion
no longer implementsIComparable<SemVersion>
orIComparable
. UseSemVersion.PrecedenceComparer
orSemVersion.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 throwArgumentOutOfRangeException
(#72)
Other Changes:
- Arbitrary-sized version numbers are now supported, including in prerelease identifiers (#73)
semver v2.3.0
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
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 staticComparePrecedence(SemVersion, SemVersion)
andPrecedenceEquals(SemVersion, SemVersion)
methods for comparing precedence - New
CompareSortOrderTo(SemVersion)
and staticCompareSortOrder(SemVersion, SemVersion)
methods for comparing sort order- Use existing
Equals(SemVersion)
andEquals(SemVersion, SemVersion)
to compare sort order equality
- Use existing
- New
PrecedenceComparer
andSortOrderComparer
static properties- Provide a comparer that implements
IEqualityComparer<SemVersion>
andIComparer<SemVersion>
to compare by precedence and sort order respectively - These can be used for sorting, binary search, and using
SemVersion
as a dictionary key
- Provide a comparer that implements
- Marked
Compare(SemVersion, SemVersion)
,CompareByPrecedence(SemVersion)
,CompareTo(SemVersion)
,CompareTo(object)
, andPrecedenceMatches(SemVersion)
obsolete - Marked comparison operators obsolete (#53)
semver v2.1.0
A minor release to improve parsing, construction, and modification.
- Greatly improved doc comments
- New
Parse()
andTryParse()
overloads takingSemVersionStyles
- New
With()
,WithParsedFrom()
,WithX()
,WithoutX()
methods to replaceChange()
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
- Marked
- Added
IsPrerelease
andIsRelease
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 implementsIEquatable<SemVersion>
(feature #34)- New
SemVersion.FromVersion()
andToVersion()
methods for conversion from and toSystem.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
semver v2.0.5
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
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
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:
- Support .NET Standard 1.1
- Fixed equality and comparison bugs
semver v1.1.2
A patch release.
semver v1.1.1
A patch release.