github.com/masterminds/semver (go): Package semver provides the ability to work with Semantic Versions (http://semver.org) in Go.  Specifically it provides the ability to:  To parse a semantic version use the `NewVersion` function. For example,  If there is an error the version wasn't parseable. The version object has methods to get the parts of the version, compare it to other versions, convert the version back into a string, and get the original string. For more details please see the documentation at https://godoc.org/github.com/Masterminds/semver.  A set of versions can be sorted using the `sort` package from the standard library. For example,  Checking a version against version constraints is one of the most featureful parts of the package.  There are two elements to the comparisons. First, a comparison string is a list of comma separated and comparisons. These are then separated by || separated or comparisons. For example, `">= 1.2, < 3.0.0 || >= 4.2.3"` is looking for a comparison that's greater than or equal to 1.2 and less than 3.0.0 or is greater than or equal to 4.2.3.  The basic comparisons are:  There are multiple methods to handle ranges and the first is hyphens ranges. These look like:  The `x`, `X`, and `*` characters can be used as a wildcard character. This works for all comparison operators. When used on the `=` operator it falls back to the pack level comparison (see tilde below). For example,  Tilde Range Comparisons (Patch)  The tilde (`~`) comparison operator is for patch level ranges when a minor version is specified and major level changes when the minor number is missing. For example,  Caret Range Comparisons (Major)  The caret (`^`) comparison operator is for major level changes. This is useful when comparisons of API versions as a major change is API breaking. For example,
Keywords: caret|comparison|constraints|go|golang|semantic-versions|semver|tilde