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.4.2.0.20260821)
Examples¶
-
4.1.0.0:v4.1.*series pre-release branch (rc/v4.1branch) -
4.1.0.1: first release candidate for first release ofv4.1.*series (rc/v4.1branch) -
4.1.0.2: continuing development on pre-release branch -
4.1.0.3: second release candidate for first release ofv4.1.*series (rc/v4.1branch) -
4.1.1: first release of the4.1.*series (releasebranch) -
4.1.2.1: first release candidate for second release of4.1.*series (rc/v4.1branch) -
4.1.3: second release of4.1.*series (releasebranch) -
4.1.3.1: first Hackage-only patch of4.1.3(releasebranch) -
4.1.3.2: second Hackage-only patch of4.1.3(releasebranch) -
4.2.0: unstable development code (masterbranch) -
4.2.0.20260821: pre-release snapshot of unstable version (masterbranch)