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.5
which is equivalent to>= 1.2, <= 1.4.5
2.3.4 - 4.5
which 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.x
is equivalent to>= 1.2.0, < 1.3.0
>= 1.2.x
is equivalent to>= 1.2.0
<= 2.x
is 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.3
is equivalent to>= 1.2.3, < 1.3.0
~1
is equivalent to>= 1, < 2
~2.3
is equivalent to>= 2.3, < 2.4
~1.2.x
is equivalent to>= 1.2.0, < 1.3.0
~1.x
is 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.3
is equivalent to>= 1.2.3, < 2.0.0
^1.2.x
is equivalent to>= 1.2.0, < 2.0.0
^2.3
is equivalent to>= 2.3, < 3
^2.x
is equivalent to>= 2.0.0, < 3