Sematic Versioning¶
Given a version number MAJOR.MINOR.PATCH, increment the:
-
MAJOR version when you make incompatible API changes,
-
MINOR version when you add functionality in a backwards compatible manner, and
-
PATCH version when you make backwards compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

<valid semver>{=html} ::= <version core>{=html}
<version core>{=html} "-" <pre-release>{=html}
<version core>{=html} "+" <build>{=html} <version core>{=html} "-"
<pre-release>{=html} "+" <build>{=html}
<version core>{=html} ::= <major>{=html} "." <minor>{=html} "."
<patch>{=html}
<major>{=html} ::= <numeric identifier>{=html}
<minor>{=html} ::= <numeric identifier>{=html}
<patch>{=html} ::= <numeric identifier>{=html}
<pre-release>{=html} ::=
<dot-separated pre-release identifiers>{=html}
<dot-separated pre-release identifiers>{=html} ::=
<pre-release identifier>{=html} <pre-release identifier>{=html} "."
<dot-separated pre-release identifiers>{=html}
<build>{=html} ::= <dot-separated build identifiers>{=html}
<dot-separated build identifiers>{=html} ::=
<build identifier>{=html} <build identifier>{=html} "."
<dot-separated build identifiers>{=html}
<pre-release identifier>{=html} ::= <alphanumeric identifier>{=html}
<numeric identifier>{=html}
<build identifier>{=html} ::= <alphanumeric identifier>{=html}
<digits>{=html}
<alphanumeric identifier>{=html} ::= <non-digit>{=html}
<non-digit>{=html} <identifier characters>{=html}
<identifier characters>{=html} <non-digit>{=html}
<identifier characters>{=html} <non-digit>{=html}
<identifier characters>{=html}
<numeric identifier>{=html} ::= "0" <positive digit>{=html}
<positive digit>{=html} <digits>{=html}
<identifier characters>{=html} ::= <identifier character>{=html}
<identifier character>{=html} <identifier characters>{=html}
<identifier character>{=html} ::= <digit>{=html}
<non-digit>{=html}
<non-digit>{=html} ::= <letter>{=html} "-"
<digits>{=html} ::= <digit>{=html} <digit>{=html}
<digits>{=html}
<digit>{=html} ::= "0" <positive digit>{=html}
<positive digit>{=html} ::= "1" "2" "3" "4" "5" "6" "7" "8" "9"
<letter>{=html} ::= "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L"
"M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z" "a" "b" "c" "d"
"e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v"
"w" "x" "y" "z"