# 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`