1010## Version scheme
1111
1212A Stack package or executable may have a version with three or four components:
13- X.Y.Z or X.Y.Z.A.
13+ ` X.Y.Z ` or ` X.Y.Z.A ` .
1414
1515### Development or stable versions
1616
17- * Versions with an _ even_ 'Y' component are development versions (the ` master `
17+ * Versions with an _ even_ ` Y ` component are development versions (the ` master `
1818 branch)
19- * Versions with an _ odd_ 'Y' component are stable versions (the ` stable ` branch,
19+ * Versions with an _ odd_ ` Y ` component are stable versions (the ` stable ` branch,
2020 or in a ` rc/vX.Y ` release candidate branch for not-yet-released versions)
2121
2222### Unreleased or released versions
2323
24- * Versions with an _ even_ 'Z' component are unreleased versions (including
24+ * Versions with an _ even_ ` Z ` component are unreleased versions (including
2525 release candidates)
26- * Versions with an _ odd_ 'Z' component are released versions
26+ * Versions with an _ odd_ ` Z ` component are released versions
2727* Except for the ` release ` branch (which matches exactly the most recent
28- release), all branches must have an even 'Z' component
28+ release), all branches must have an even ` Z ` component
2929* Branches other than ` stable ` , ` release ` , and a ` rc/vX.Y ` release candidate
30- will always have a ` 0 ` 'Z' component
30+ will always have a ` 0 ` ` Z ` component
3131
3232### Use of a fourth component
3333
34- * Release candidate binaries will be released with an odd 'A' component
35- * Hackage-only dependency compatibility patch releases add a 'A' component
36- (e.g. v1.7.3.1 , in the ` release ` branch)
37- * Pre-release unstable binaries will be released with the date as the 'A'
38- component (e.g. 2.10 .0.20220920 )
34+ * Release candidate binaries will be released with an odd ` A ` component
35+ * Hackage-only dependency compatibility patch releases add a ` A ` component
36+ (e.g. ` v2.5.5.1 ` , in the ` release ` branch)
37+ * Pre-release unstable binaries will be released with the date as the ` A `
38+ component (e.g. ` 2.14 .0.20240126 ` )
3939
4040Examples:
4141
42- * ` 1.7.0.0 ` : v1.7.x series pre-release branch (` v1.7 ` branch)
43- * ` 1.7.0.1 ` : release candidate for first release of v1.7.x series (` v1.7 `
44- branch)
45- * ` 1.7.0.2 ` : continuing development on pre-release branch
46- * ` 1.7.0.3 ` : second release candidate for first release of v1.7.x series (` v1.7 `
47- branch)
48- * ` 1.7.1 ` : first release of the 1.7.x series (` release ` branch)
49- * ` 1.7.2.0 ` : development for second release of 1.7.x series (` stable ` branch)
50- * ` 1.7.2.1 ` : release candidate for second release of 1.7.x series (` stable `
51- branch)
52- * ` 1.7.3 ` : second release of 1.7.x series (` release ` branch)
53- * ` 1.7.3.1 ` : first Hackage-only patch of 1.7.3 (` release ` branch)
54- * ` 1.7.3.2 ` : second Hackage-only patch of 1.7.3 (` release ` branch)
55- * ` 1.8.0 ` : unstable development code (` master ` branch)
56- * ` 1.8.0.20181004 ` : pre-release snapshot of unstable version (` master ` branch)
42+ * ` 2.15.0.0 ` : ` v2.15.x ` series pre-release branch (` rc/v2.15 ` branch)
43+ * ` 2.15.0.1 ` : first release candidate for first release of ` v2.15.x ` series
44+ (` rc/v2.15 ` branch)
45+ * ` 2.15.0.2 ` : continuing development on pre-release branch
46+ * ` 2.15.0.3 ` : second release candidate for first release of ` v2.15.x ` series
47+ (` rc/v2.15 ` branch)
48+ * ` 2.15.1 ` : first release of the ` 2.15.x ` series (` release ` branch)
49+ * ` 2.15.2 ` : development for second release of ` 2.15.x ` series
50+ (` stable ` branch)
51+ * ` 2.15.2.1 ` : first release candidate for second release of ` 2.15.x ` series
52+ (` rc/v2.15 ` branch)
53+ * ` 2.15.3 ` : second release of ` 2.15.x ` series (` release ` branch)
54+ * ` 2.15.3.1 ` : first Hackage-only patch of ` 2.15.3 ` (` release ` branch)
55+ * ` 2.15.3.2 ` : second Hackage-only patch of ` 2.15.3 ` (` release ` branch)
56+ * ` 2.14.0 ` : unstable development code (` master ` branch)
57+ * ` 2.14.0.20240126 ` : pre-release snapshot of unstable version (` master ` branch)
5758
5859## Pre-release checks
5960
@@ -70,7 +71,7 @@ Examples:
7071 stackage snapshots and GHC versions (e.g.
7172 https://github.com/commercialhaskell/stack/pull/4565/files )
7273
73- 6 . Update the ` stack-*.yaml ` that uses a ` nightly ` snapshot to the latest
74+ 6 . Update any ` stack-*.yaml ` that uses a ` nightly ` snapshot to the latest
7475 nightly (go over the extra-deps too) and ensure the project builds and tests
7576 pass. For example, command:
7677
@@ -97,7 +98,7 @@ Examples:
9798
9899* `package.yaml`: bump to the next release candidate version (bump the second
99100 component to the next odd number, ensure the third component is `0`, and add
100- patchlevel `0`; e.g. from `1.8 .0` to `1.9 .0.0`).
101+ patchlevel `0`; e.g. from `2.14 .0` to `2.15 .0.0`).
101102
102103 !!! attention
103104
@@ -116,7 +117,7 @@ branch.
116117
1171181. `package.yaml`: bump version to the next unstable version (bump the second
118119 component to the next even number, ensure the third component is `0`; e.g.
119- from `1.9 .0` to `1.10 .0`).
120+ from `2.15 .0` to `2.16 .0`).
120121
121122 !!! attention
122123
@@ -125,7 +126,7 @@ branch.
125126
1261272. `Changelog.md`:
127128 * Change the title of the existing **Unreleased changes** section to what
128- will be the next final (non-RC) release (e.g. `v2.1 .1`).
129+ will be the next final (non-RC) release (e.g. `v2.15 .1`).
129130 * Add new "Unreleased changes" section:
130131
131132 ~~~markdown
@@ -159,12 +160,6 @@ Review documentation for any changes that need to be made:
159160 possible versions in sequence, and `UNRELEASED` and replace with next release
160161 version (`X.Y.1`, where Y is odd).
161162
162- !!! attention
163-
164- Do **NOT** update the Dockerfiles in
165- [stackage/automated/dockerfiles](https://github.com/commercialhaskell/stackage/tree/master/automated/dockerfiles/)
166- yet. That step will come later.
167-
168163 !!! attention
169164
170165 Do **NOT** update the repository's issue and pull request templates (in
@@ -346,7 +341,7 @@ final release.
346341 In the `rc/vX.Y` branch:
347342
348343 * `package.yaml`: bump the version number. Bump the fourth component to an
349- even number (e.g. from 1.7 .0.1 to 1.7 .0.2).
344+ even number (e.g. from `2.15 .0.1` to `2.15 .0.2` ).
350345
351346 !!! attention
352347
@@ -615,7 +610,7 @@ final release.
615610 In the `stable` branch:
616611
617612 * `package.yaml`: bump the version number. Bump the third component to an
618- even number (e.g. from `1.6 .1` to `1.6 .2`).
613+ even number (e.g. from `2.15 .1` to `2.15 .2`).
619614
620615 !!! attention
621616
@@ -691,36 +686,3 @@ final release.
691686 In the message, include:
692687
693688 * the release description from Github.
694-
695- ### K: Update Docker images
696-
697- Docker Hub includes Docker images under
698- [`fpco/stack-build'](https://hub.docker.com/r/fpco/stack-build).
699-
700- Update those images with a new version:
701-
702- 1. Under
703- [commercialhaskell/stackage/automated/dockerfiles](https://github.com/commercialhaskell/stackage/tree/master/automated/dockerfiles/),
704- add `lts-X.Y/Dockerfile` (where `X.Y` is the latest Stackage Haskell LTS
705- version), containing (where `X.Z` is the previous Haskell LTS version,
706- and `X.Y.Z` is the newly released Stack version):
707-
708- ~~~dockerfile
709- FROM $DOCKER_REPO:lts-X.Z
710- ARG STACK_VERSION=X.Y.Z
711- RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack'
712- ~~~
713-
714- 2. Run `./build.sh lts-X.Y`. Then test that the new image has the new
715- version of Stack. For example, command:
716-
717- ~~~text
718- docker run --rm fpco/stack-build:lts stack --version
719- ~~~
720-
721- 3. Use the following commands to push the new image to the registry:
722-
723- ~~~text
724- ./build.sh --push lts-X.Y
725- ./build.sh --push --small lts-X.Y
726- ~~~
0 commit comments