|  | # Versions and Ranges | 
|  |  | 
|  | Glide supports [Semantic Versions](http://semver.org), 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` |