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