Version scheme¶
A Stack package or executable may have a version with three or four components:
X.Y.Z or X.Y.Z.A.
Development or stable versions¶
-
Versions with an even
Ycomponent are development versions (themasterbranch) -
Versions with an odd
Ycomponent are stable versions (thestablebranch, or in arc/vX.Yrelease candidate branch for not-yet-released versions)
Unreleased or released versions¶
-
Versions with an even
Zcomponent are unreleased versions (including release candidates) -
Versions with an odd
Zcomponent are released versions -
Except for the
releasebranch, all branches must have an evenZcomponent -
Except for the
release,stableandrc/vX.Yrelease candidate branches, all branches will have a0Zcomponent
Use of a fourth component¶
-
Release candidate binaries will be released with an odd
Acomponent -
Hackage-only dependency compatibility patch releases add a
Acomponent (e.g.v2.5.1.1, in thereleasebranch) -
Pre-release unstable binaries will be released with the date as the
Acomponent (e.g.3.6.0.20241228)
Examples¶
-
3.5.0.0:v3.5.*series pre-release branch (rc/v3.5branch) -
3.5.0.1: first release candidate for first release ofv3.5.*series (rc/v3.5branch) -
3.5.0.2: continuing development on pre-release branch -
3.5.0.3: second release candidate for first release ofv3.5.*series (rc/v3.5branch) -
3.5.1: first release of the3.5.*series (releasebranch) -
3.5.2.1: first release candidate for second release of3.5.*series (rc/v3.5branch) -
3.5.3: second release of3.5.*series (releasebranch) -
3.5.3.1: first Hackage-only patch of3.5.3(releasebranch) -
3.5.3.2: second Hackage-only patch of3.5.3(releasebranch) -
3.6.0: unstable development code (masterbranch) -
3.6.0.20241228: pre-release snapshot of unstable version (masterbranch)