Glide supports Semantic Versions, SemVer ranges, branches, tags, and commit ids as versions.
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 toThese 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"
.
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
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
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
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