Versions and Ranges
Glide supports Semantic Versions, SemVer ranges, branches, tags, and commit ids as versions.
Basic Ranges
A simple range is in the form > 1.2.3. This tells Glide to use the latest versions that's after 1.2.3. Glide has support for the following operators:
=: equal (aliased to no operator)!=: not equal>: greater than<: less than>=: greater than or equal to<=: less than or equal to
These can be combined. A , is an and operator and a || is an or operator. The or operators cause groups of and operators to be checked. For example, ">= 1.2, < 3.0.0 || >= 4.2.3".
Hyphen Ranges
There are multiple shortcuts to handle ranges and the first is hyphens ranges. These look like:
1.2 - 1.4.5which is equivalent to>= 1.2, <= 1.4.52.3.4 - 4.5which is equivalent to>= 2.3.4, <= 4.5
Wildcards In Comparisons
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 patch level comparison (see tilde below). For example,
1.2.xis equivalent to>= 1.2.0, < 1.3.0>= 1.2.xis equivalent to>= 1.2.0<= 2.xis equivalent to< 3*is equivalent to>= 0.0.0
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,
~1.2.3is equivalent to>= 1.2.3, < 1.3.0~1is equivalent to>= 1, < 2~2.3is equivalent to>= 2.3, < 2.4~1.2.xis equivalent to>= 1.2.0, < 1.3.0~1.xis equivalent to>= 1, < 2
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,
^1.2.3is equivalent to>= 1.2.3, < 2.0.0^1.2.xis equivalent to>= 1.2.0, < 2.0.0^2.3is equivalent to>= 2.3, < 3^2.xis equivalent to>= 2.0.0, < 3