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
Y
component are development versions (themaster
branch) -
Versions with an odd
Y
component are stable versions (thestable
branch, or in arc/vX.Y
release candidate branch for not-yet-released versions)
Unreleased or released versions¶
-
Versions with an even
Z
component are unreleased versions (including release candidates) -
Versions with an odd
Z
component are released versions -
Except for the
release
branch, all branches must have an evenZ
component -
Except for the
release
,stable
andrc/vX.Y
release candidate branches, all branches will have a0
Z
component
Use of a fourth component¶
-
Release candidate binaries will be released with an odd
A
component -
Hackage-only dependency compatibility patch releases add a
A
component (e.g.v2.5.1.1
, in therelease
branch) -
Pre-release unstable binaries will be released with the date as the
A
component (e.g.3.6.0.20241228
)
Examples¶
-
3.5.0.0
:v3.5.*
series pre-release branch (rc/v3.5
branch) -
3.5.0.1
: first release candidate for first release ofv3.5.*
series (rc/v3.5
branch) -
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.5
branch) -
3.5.1
: first release of the3.5.*
series (release
branch) -
3.5.2.1
: first release candidate for second release of3.5.*
series (rc/v3.5
branch) -
3.5.3
: second release of3.5.*
series (release
branch) -
3.5.3.1
: first Hackage-only patch of3.5.3
(release
branch) -
3.5.3.2
: second Hackage-only patch of3.5.3
(release
branch) -
3.6.0
: unstable development code (master
branch) -
3.6.0.20241228
: pre-release snapshot of unstable version (master
branch)