Skip to content

Commit 5e89c2c

Browse files
authored
Merge pull request #5397 from commercialhaskell/stable-into-master
Stable into master
2 parents 2e73a28 + 2c2e274 commit 5e89c2c

File tree

4 files changed

+44
-14
lines changed

4 files changed

+44
-14
lines changed

doc/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ It features:
1717

1818
#### How to install
1919

20+
Stack can be installed on most Unix-like (Un*x) operating systems, including
21+
macOS, and on Windows.
22+
2023
For most Un*x operating systems, the easiest way to install is to run:
2124

2225
curl -sSL https://get.haskellstack.org/ | sh

doc/install_and_upgrade.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ or:
250250

251251
* Ensure you have required system dependencies installed. These include GCC, GNU make, xz, perl, libgmp, libffi, and zlib. We also recommend Git and GPG. To install these using your package manager:
252252
* Debian / Ubuntu: `sudo apt-get install g++ gcc libc6-dev libffi-dev libgmp-dev make xz-utils zlib1g-dev git gnupg netbase`
253-
* Fedora / CentOS: `sudo dnf install perl make automake gcc gmp-devel libffi zlib xz tar git gnupg` (use `yum` instead of `dnf` on CentOS and Fedora <= 21)
253+
* Fedora / CentOS: `sudo dnf install perl make automake gcc gmp-devel libffi zlib zlib-devel xz tar git gnupg` (use `yum` instead of `dnf` on CentOS and Fedora <= 21)
254254
* Fedora 24: In order to use `stack setup` on a 32-bit system, you may
255255
need to run `sudo dnf install ncurses-compat-libs`. If this package is
256256
not installed, Stack may not be able to install 32-bit GHC versions.

doc/maintainers/ghc.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040

4141
cd stack && ./update-global-hints.hs ghc-X.Y.Z
4242

43-
and commit the changes.
43+
and commit and push the changes.
4444

4545

4646
## Building GHC

doc/maintainers/releases.md

Lines changed: 39 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,13 @@ Examples:
8484
* Search for old Stack version, unstable stack version, and the next
8585
"obvious" possible versions in sequence, and
8686
`UNRELEASED` and replace with next release version (`X.Y.1`, where Y is odd).
87-
* Do **NOT** update the Dockerfiles in [stackage/automated/dockerfiles](https://github.com/commercialhaskell/stackage/tree/master/automated/dockerfiles/) yet; that will come later)
88-
* Do __NOT__ update templates in `.github` to point at the new release version yet!
87+
* Do **NOT** update the Dockerfiles in [stackage/automated/dockerfiles](https://github.com/commercialhaskell/stackage/tree/master/automated/dockerfiles/) yet; that will come later)
88+
* Do **NOT** update templates in `.github` to point at the new release version yet!
8989
* Search for old resolvers, set to latest resolver (e.g. in `doc/GUIDE.md` where it references the "currently the latest LTS")
9090
* Look for any links to "latest" (`latest/`) documentation, replace with version tag
9191
* Check that for any platform entries that need to be added to (or removed from)
9292
[releases.yaml](https://github.com/fpco/stackage-content/blob/master/stack/releases.yaml),
93-
[install_and_upgrade.md](https://github.com/commercialhaskell/stack/blob/master/doc/install_and_upgrade.md), [get-stack.sh](https://github.com/commercialhaskell/stack/blob/master/etc/scripts/get-stack.sh), and [doc/README.md](https://github.com/commercialhaskell/stack/blob/master/doc/README.md).
93+
[install_and_upgrade.md](https://github.com/commercialhaskell/stack/blob/master/doc/install_and_upgrade.md), [get-stack.sh](https://github.com/commercialhaskell/stack/blob/master/etc/scripts/get-stack.sh), and [doc/README.md](https://github.com/commercialhaskell/stack/blob/master/doc/README.md), and get.haskellstack.org redirects.
9494
* `package.yaml`: bump to next release candidate version (bump patchlevel (fourth) component to next odd number; e.g. from `1.9.0.0` to `1.9.0.1`)
9595
* `ChangeLog.md`
9696
- Rename the “Unreleased changes” section to the same version as package.yaml, and mark it clearly as a release candidate (e.g. `v1.9.0.1 (release candidate)`). Remove any empty sections.
@@ -114,13 +114,17 @@ Examples:
114114
115115
## Release process
116116
117-
* Manually trigger the nightly pipeline on Azure Devops for the branch you are releasing, which will build Linux, macOS, and Windows bindists. `[RC]`
117+
* Trigger the **Integration Tests** workflow on Github Actions for the branch you are releasing, which will build Linux, macOS, and Windows bindists. `[RC]`
118118
119119
* Create a
120120
[new draft Github release](https://github.com/commercialhaskell/stack/releases/new)
121121
with tag and title `vX.Y.Z` (where X.Y.Z matches the version in `package.yaml` from the previous step), targeting the RC branch. In the case of a release candidate, add `(RELEASE CANDIDATE)` to the name field and check the *This is a pre-release* checkbox. `[RC]`
122+
* See previous releases for example formatting and extra info (such as link to website for install instructions).
123+
* For release candidates, you should **skip** the list of contributors and the link to the installation instructions.
124+
* Include the Changelog in the description.
125+
* Use e.g. `git shortlog -s origin/release..HEAD|sed $'s/^[0-9 \t]*/* /'|grep -v azure-pipelines|LC_ALL=C sort -f` to get the list of contributors.
122126
123-
* On each machine you'll be releasing from, set environment variables `GITHUB_AUTHORIZATION_TOKEN` and `STACK_RELEASE_GPG_KEY` (see [stack-release-script's README](https://github.com/commercialhaskell/stack/blob/master/etc/scripts/README.md#prerequisites)). `[RC]`
127+
* On the machine you'll be releasing from, set environment variables `GITHUB_AUTHORIZATION_TOKEN` and `STACK_RELEASE_GPG_KEY` (see [stack-release-script's README](https://github.com/commercialhaskell/stack/blob/master/etc/scripts/README.md#prerequisites)). `[RC]`
124128
125129
* Upload the Azure bindists built by Azure Pipelines to the Gitlab release `[RC]`
126130
* Download the bindist artifacts from the Azure DevOps nightly pipeline build, and put the contents under `_release/`.
@@ -130,21 +134,43 @@ Examples:
130134
stack "etc/scripts/release.hs" --upload-only "$x.upload" "$x.sha256.upload" "$x.asc.upload"
131135
done
132136
137+
TODO: have Github Actions do this automatically.
138+
133139
* For any GPG key used to sign an uploaded bindist, ensure that `[email protected]` signs their key and uploads to SKS keyserver pool:
134140
135141
```
136142
gpg --sign-key -u 0x575159689BEFB442 <OTHER-KEY-ID>
137143
gpg --send-keys <OTHER-KEY-ID>
138144
```
139145
140-
* Publish Github release. Include the Changelog and in the description and use e.g. `git shortlog -s origin/release..HEAD|sed $'s/^[0-9 \t]*/* /'|grep -v azure-pipelines|LC_ALL=C sort -f` to get the list of contributors. See previous releases for example formatting and extra info (such as link to website for install instructions). `[RC]`
141-
142-
* For release candidates, you should skip the list of contributors and the link to the installation instructions.
146+
* Publish the Github release. `[RC]`
143147
144148
* Push signed Git tag, matching Github release tag name, e.g.: `git tag -d vX.Y.Z; git tag -s -m vX.Y.Z vX.Y.Z && git push -f origin vX.Y.Z`. `[RC]`
145149
146150
* Upload `stack` package to Hackage: `stack upload . --pvp-bounds=lower`.
147151
152+
* If you get the error
153+
154+
> The field "build-tools" is deprecated in the Cabal specification version 2.0. Please use 'build-tool-depends' field
155+
156+
then edit `stack.cabal` locally and change all instances of
157+
158+
```
159+
build-tools:
160+
hsc2hs
161+
```
162+
163+
to
164+
165+
```
166+
build-tool-depends:
167+
hsc2hs:hsc2hs
168+
```
169+
170+
and try again, then discard the local changes to `stack.cabal`.
171+
172+
Hopefully this issue will be resolved and we can remove this instruction (alternatively, we could use a `verbatim` field in `package.yaml`).
173+
148174
* Reset the `release` branch to the released commit, e.g.: `git checkout release && git merge --ff-only vX.Y.Z && git push origin release`
149175
150176
* Update the `stable` branch similarly
@@ -153,7 +179,7 @@ Examples:
153179
[readthedocs.org](https://readthedocs.org/projects/stack/versions/), and
154180
ensure that stable documentation has updated.
155181
156-
* Update [get.haskellstack.org /stable rewrite rules](https://gitlab.com/fpco/operations/devops/-/blob/master/kubernetes/fpco-prod-v3/specs/20_get-haskellstack_ingress.yaml) and apply the manifest.
182+
* Update [get.haskellstack.org /stable and /upgrade rewrite rules](https://gitlab.com/fpco/operations/kube/fpcomplete-sites-project/-/blob/master/fpcomplete-redirects/get-haskellstack_virtualservice.yaml) with the new version and [sync the application in ArgoCD](https://v4.fpcomplete.com/argo-cd/applications/fpcomplete-redirects).
157183
158184
* Test with `curl -vL https://get.haskellstack.org/stable/linux-x86_64.tar.gz >/dev/null`, make sure it redirects to the new version
159185
@@ -186,13 +212,13 @@ Examples:
186212
* Merge any changes made in the RC/release/stable branches to master (be careful about version and changelog). It is best to do this by making a `ci/merge-stable-to-master` branch and waiting for CI to pass, then merging. If anything is complicated to merge, consider making it a PR and getting it reviewed rather than merging immediately.
187213
188214
189-
[email protected] mailing lists, subject `ANN: stack-X.Y.Z` (or `ANN: stack-X.Y release candidate`), containing the markdown for the release description from Github. `[RC]`
215+
[email protected] mailing lists, subject `ANN: stack-X.Y.Z` (or `ANN: stack-X.Y release candidate`), containing the release description from Github. `[RC]`
190216
191217
* For release candidates, also include a link to the Github Release (`https://github.com/commercialhaskell/stack/releases/tag/vX.Y.Z`) to download it. `[RC]`
192218
193219
* Update fpco/stack-build Docker images with new version
194220
195-
* Under [commercilhaskell/stackage/automated/dockerfiles](https://github.com/commercialhaskell/stackage/tree/master/automated/dockerfiles/), add `lts-X.Y/Dockerfile` (where `X.Y` is the latest stackage LTS version), containing (note where X.Z is the previous LTS version, and X.Y.Z is the newly released stack version)
221+
* Under [commercialhaskell/stackage/automated/dockerfiles](https://github.com/commercialhaskell/stackage/tree/master/automated/dockerfiles/), add `lts-X.Y/Dockerfile` (where `X.Y` is the latest stackage LTS version), containing (note where X.Z is the previous LTS version, and X.Y.Z is the newly released stack version)
196222
197223
```
198224
FROM $DOCKER_REPO:lts-X.Z
@@ -204,9 +230,10 @@ Examples:
204230
205231
* Run `./build.sh --push lts-X.Y && ./build.sh --push --small lts-X.Y` to push the new image to the registry.
206232
233+
207234
## Build Linux static binary distribution with Nix
208235
209-
NOTE: We have switched back to Alpine Linux for building static binaries, done by CI.
236+
**NOTE: We have switched back to Alpine Linux for building static binaries, done by CI. Leaving this section for future reference.**
210237
211238
These instructions are tested on Ubuntu 16.04, but theoretically should work on any Linux distribution.
212239

0 commit comments

Comments
 (0)