Sandbox Addon Format
Defines the structure of the sandbox addon
This describes the addon format
Dependency Definition
Below are examples of some common use cases, as well as syntactic sugar
Wildcard Ranges (*
|X
|x
) - 1.*
which is equivalent to >=1.0.0 & <2.0.0
Tilde Ranges (~
) - ~1.5
which is equivalent to >=1.5.0 & <1.6.0
Hyphen Ranges (-
) - 1.0-2.0
which is equivalent to >=1.0.0 & <=2.0.0
Caret Ranges (^
) - ^0.2.3
which is equivalent to >=0.2.3 & <0.3.0
Partial Version Ranges - 1
which is equivalent to 1.X
or >=1.0.0 & <2.0.0
Negation operator - !(1.x)
which is equivalent to <1.0.0 & >=2.0.0
Parenthesized expressions - ~1.3 | (1.4.* & !=1.4.5) | ~2
<semver-expr> ::= "(" <semver-expr> ")"
| "!" "(" <semver-expr> ")"
| <semver-expr> <more-expr>
| <range>
<more-expr> ::= <boolean-op> <semver-expr>
| epsilon
<boolean-op> ::= "&" | "|"
<range> ::= <comparison-range>
| <wildcard-range>
| <tilde-range>
| <caret-range>
| <hyphen-range>
| <partial-version-range>
<comparison-range> ::= <comparison-op> <version>
| <version>
<wildcard-range> ::= <wildcard>
| <major> "." <wildcard>
| <major> "." <minor> "." <wildcard>
<tilde-range> ::= "~" <version>
<caret-range> ::= "^" <version>
<hyphen-range> ::= <version> "-" <version>
<partial-version-range> ::= <major>
| <major> "." <minor>
<version> ::= <major>
| <major> "." <minor>
| <major> "." <minor> "." <patch>
<comparison-op> ::= "=" | "!=" | ">" | ">=" | "<" | "<="
<major> ::= <numeric-identifier>
<minor> ::= <numeric-identifier>
<patch> ::= <numeric-identifier>
<numeric-identifier> ::= "0"
| <positive-digit>
| <positive-digit> <numeric-identifier>
<positive-digit> ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
<wildcard> ::= "*" | "x" | "X"