1# Changelog
2
3## 3.1.1 (2020-11-23)
4
5### Fixed
6
7- #158: Fixed issue with generated regex operation order that could cause problem
8
9## 3.1.0 (2020-04-15)
10
11### Added
12
13- #131: Add support for serializing/deserializing SQL (thanks @ryancurrah)
14
15### Changed
16
17- #148: More accurate validation messages on constraints
18
19## 3.0.3 (2019-12-13)
20
21### Fixed
22
23- #141: Fixed issue with <= comparison
24
25## 3.0.2 (2019-11-14)
26
27### Fixed
28
29- #134: Fixed broken constraint checking with ^0.0 (thanks @krmichelos)
30
31## 3.0.1 (2019-09-13)
32
33### Fixed
34
35- #125: Fixes issue with module path for v3
36
37## 3.0.0 (2019-09-12)
38
39This is a major release of the semver package which includes API changes. The Go
40API is compatible with ^1. The Go API was not changed because many people are using
41`go get` without Go modules for their applications and API breaking changes cause
42errors which we have or would need to support.
43
44The changes in this release are the handling based on the data passed into the
45functions. These are described in the added and changed sections below.
46
47### Added
48
49- StrictNewVersion function. This is similar to NewVersion but will return an
50  error if the version passed in is not a strict semantic version. For example,
51  1.2.3 would pass but v1.2.3 or 1.2 would fail because they are not strictly
52  speaking semantic versions. This function is faster, performs fewer operations,
53  and uses fewer allocations than NewVersion.
54- Fuzzing has been performed on NewVersion, StrictNewVersion, and NewConstraint.
55  The Makefile contains the operations used. For more information on you can start
56  on Wikipedia at https://en.wikipedia.org/wiki/Fuzzing
57- Now using Go modules
58
59### Changed
60
61- NewVersion has proper prerelease and metadata validation with error messages
62  to signal an issue with either of them
63- ^ now operates using a similar set of rules to npm/js and Rust/Cargo. If the
64  version is >=1 the ^ ranges works the same as v1. For major versions of 0 the
65  rules have changed. The minor version is treated as the stable version unless
66  a patch is specified and then it is equivalent to =. One difference from npm/js
67  is that prereleases there are only to a specific version (e.g. 1.2.3).
68  Prereleases here look over multiple versions and follow semantic version
69  ordering rules. This pattern now follows along with the expected and requested
70  handling of this packaged by numerous users.
71
72## 1.5.0 (2019-09-11)
73
74### Added
75
76- #103: Add basic fuzzing for `NewVersion()` (thanks @jesse-c)
77
78### Changed
79
80- #82: Clarify wildcard meaning in range constraints and update tests for it (thanks @greysteil)
81- #83: Clarify caret operator range for pre-1.0.0 dependencies (thanks @greysteil)
82- #72: Adding docs comment pointing to vert for a cli
83- #71: Update the docs on pre-release comparator handling
84- #89: Test with new go versions (thanks @thedevsaddam)
85- #87: Added $ to ValidPrerelease for better validation (thanks @jeremycarroll)
86
87### Fixed
88
89- #78: Fix unchecked error in example code (thanks @ravron)
90- #70: Fix the handling of pre-releases and the 0.0.0 release edge case
91- #97: Fixed copyright file for proper display on GitHub
92- #107: Fix handling prerelease when sorting alphanum and num
93- #109: Fixed where Validate sometimes returns wrong message on error
94
95## 1.4.2 (2018-04-10)
96
97### Changed
98
99- #72: Updated the docs to point to vert for a console appliaction
100- #71: Update the docs on pre-release comparator handling
101
102### Fixed
103
104- #70: Fix the handling of pre-releases and the 0.0.0 release edge case
105
106## 1.4.1 (2018-04-02)
107
108### Fixed
109
110- Fixed #64: Fix pre-release precedence issue (thanks @uudashr)
111
112## 1.4.0 (2017-10-04)
113
114### Changed
115
116- #61: Update NewVersion to parse ints with a 64bit int size (thanks @zknill)
117
118## 1.3.1 (2017-07-10)
119
120### Fixed
121
122- Fixed #57: number comparisons in prerelease sometimes inaccurate
123
124## 1.3.0 (2017-05-02)
125
126### Added
127
128- #45: Added json (un)marshaling support (thanks @mh-cbon)
129- Stability marker. See https://masterminds.github.io/stability/
130
131### Fixed
132
133- #51: Fix handling of single digit tilde constraint (thanks @dgodd)
134
135### Changed
136
137- #55: The godoc icon moved from png to svg
138
139## 1.2.3 (2017-04-03)
140
141### Fixed
142
143- #46: Fixed 0.x.x and 0.0.x in constraints being treated as *
144
145## Release 1.2.2 (2016-12-13)
146
147### Fixed
148
149- #34: Fixed issue where hyphen range was not working with pre-release parsing.
150
151## Release 1.2.1 (2016-11-28)
152
153### Fixed
154
155- #24: Fixed edge case issue where constraint "> 0" does not handle "0.0.1-alpha"
156  properly.
157
158## Release 1.2.0 (2016-11-04)
159
160### Added
161
162- #20: Added MustParse function for versions (thanks @adamreese)
163- #15: Added increment methods on versions (thanks @mh-cbon)
164
165### Fixed
166
167- Issue #21: Per the SemVer spec (section 9) a pre-release is unstable and
168  might not satisfy the intended compatibility. The change here ignores pre-releases
169  on constraint checks (e.g., ~ or ^) when a pre-release is not part of the
170  constraint. For example, `^1.2.3` will ignore pre-releases while
171  `^1.2.3-alpha` will include them.
172
173## Release 1.1.1 (2016-06-30)
174
175### Changed
176
177- Issue #9: Speed up version comparison performance (thanks @sdboyer)
178- Issue #8: Added benchmarks (thanks @sdboyer)
179- Updated Go Report Card URL to new location
180- Updated Readme to add code snippet formatting (thanks @mh-cbon)
181- Updating tagging to v[SemVer] structure for compatibility with other tools.
182
183## Release 1.1.0 (2016-03-11)
184
185- Issue #2: Implemented validation to provide reasons a versions failed a
186  constraint.
187
188## Release 1.0.1 (2015-12-31)
189
190- Fixed #1: * constraint failing on valid versions.
191
192## Release 1.0.0 (2015-10-20)
193
194- Initial release
195