Skip to content

Commit 58be2e6

Browse files
committed
Merge branch 'stable'
2 parents b4cb88d + ccf6f52 commit 58be2e6

File tree

5 files changed

+87
-82
lines changed

5 files changed

+87
-82
lines changed

doc/developing_on_windows.md

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33
# Developing on Windows #
44

55
On Windows, Stack comes with an installation of [MSYS2](https://www.msys2.org/).
6-
MSYS2 will be used by Stack to provide a Unix-like shell and environment for
7-
Stack. This may be necessary for installing some Haskell packages, such as those
8-
which use `configure` scripts, or if your project needs some additional tools
9-
during the build phase.
6+
The MINGW64 (MINGW32 on 32-bit Windows) environment of MSYS2 will be used by
7+
Stack to provide a Unix-like shell and environment for Stack. This may be
8+
necessary for installing some Haskell packages, such as those which use
9+
`configure` scripts, or if your project needs some additional tools during the
10+
build phase.
1011

1112
No matter which terminal software you choose (Windows Terminal, Console Windows
1213
Host, Command Prompt, PowerShell, Git bash or any other) you can use this
@@ -26,11 +27,18 @@ example, help about the operation `--sync` (or `-S`) can be obtained with
2627
`stack exec -- pacman -Sh`.
2728

2829
Command `stack path --bin-path` to see the PATH in the Stack environment. On
29-
Windows, it includes the `\mingw64\bin`, `\usr\bin` and `\usr\local\bin`
30-
directories of the Stack-supplied MSYS2. If your executable depends on files
31-
(for example, dynamic-link libraries) in those directories and you want ro run
32-
it outside of the Stack environment, you will need to ensure copies of those
33-
files are on the PATH.
30+
Windows, it includes the `\mingw64\bin` (`\mingw32\bin` on 32-bit Windows),
31+
`\usr\bin` and `\usr\local\bin` directories of the Stack-supplied MSYS2. If your
32+
executable depends on files (for example, dynamic-link libraries) in those
33+
directories and you want to run it outside of the Stack environment, you will
34+
need to ensure copies of those files are on the PATH.
35+
36+
Command `stack path --extra-include-dirs` and `stack path --extra-library-dirs`
37+
to see the extra directories searched for C header files or system libraries
38+
files in the Stack environment. On Windows, it includes the `\mingw64\include`
39+
(`mingw32\include` on 32-bit Windows) (include) and the `\mingw64\lib` and
40+
`\mingw64\bin` directories (`mingw32\lib` and `mingw32\bin` on 32-bit Windows)
41+
(library) of the Stack-supplied MSYS2.
3442

3543
## Updating the Stack-supplied MSYS2 ##
3644

doc/faq.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ Windows is not able to find the necessary C++ libraries from the standard
371371
prompt because they're not in the PATH environment variable. `stack exec` works
372372
because it's modifying PATH to include extra things.
373373

374-
Those libraries are shipped with GHC (and, theoretically in some cases, MSYS).
374+
Those libraries are shipped with GHC (and, theoretically in some cases, MSYS2).
375375
The easiest way to find them is `stack exec which`. For example, command:
376376

377377
~~~text

doc/maintainers/docker_images.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<div class="hidden-warning"><a href="https://docs.haskellstack.org/"><img src="https://cdn.jsdelivr.net/gh/commercialhaskell/stack/doc/img/hidden-warning.svg"></a></div>
2+
3+
# Docker images
4+
5+
Docker Hub includes Docker images under
6+
[`fpco/stack-build'](https://hub.docker.com/r/fpco/stack-build).
7+
8+
To update those images with a new version of Stack:
9+
10+
1. Under
11+
[commercialhaskell/stackage/automated/dockerfiles](https://github.com/commercialhaskell/stackage/tree/master/automated/dockerfiles/),
12+
add `lts-X.Y/Dockerfile` (where `X.Y` is the latest Stackage Haskell LTS
13+
version), containing (where `X.Z` is the previous Haskell LTS version,
14+
and `X.Y.Z` is the newly released Stack version):
15+
16+
~~~dockerfile
17+
FROM $DOCKER_REPO:lts-X.Z
18+
ARG STACK_VERSION=X.Y.Z
19+
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'
20+
~~~
21+
22+
2. Run `./build.sh lts-X.Y`. Then test that the new image has the new
23+
version of Stack. For example, command:
24+
25+
~~~text
26+
docker run --rm fpco/stack-build:lts stack --version
27+
~~~
28+
29+
3. Use the following commands to push the new image to the registry:
30+
31+
~~~text
32+
./build.sh --push lts-X.Y
33+
./build.sh --push --small lts-X.Y
34+
~~~

doc/maintainers/releases.md

Lines changed: 34 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -10,50 +10,51 @@
1010
## Version scheme
1111

1212
A 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

4040
Examples:
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
117118
1. `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
126127
2. `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-
~~~

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ nav:
103103
- Upgrading 7-Zip: maintainers/7zip.md
104104
- HaskellStack.org: maintainers/haskellstack.org.md
105105
- Self-hosted runners: maintainers/self-hosted_runners.md
106+
- Docker images: maintainers/docker_images.md
106107
- Signing key: SIGNING_KEY.md
107108
- Glossary: glossary.md
108109
- Version history: ChangeLog.md

0 commit comments

Comments
 (0)