You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a new version of Cabal, Stack or GHC is released the images need to be updated. This involves:
82
+
1. Update the images in the docker-haskell repository.
83
+
2. Update the [official images repo](https://github.com/docker-library/official-images/blob/master/library/haskell) to use the new git commit sha.
84
+
85
+
#### 1. Update Dockerfiles
86
+
87
+
When a new version of Cabal, Stack or GHC is released the images need to be updated. In general this involves:
83
88
84
89
1. Update to the new version in the Dockerfile.
85
-
2. Update the PGP key, if the person doing the release has changed.
86
-
3. Updating the sha256 to the new version of the tool, for all supported processor architectures.
87
-
4. For GHC: Updating the github actions to test the new version.
90
+
2. Updating the sha256 to the new version of the tool, for all supported processor architectures.
91
+
3. Update the PGP key, if the person doing the release has changed.
92
+
93
+
##### GHC
94
+
95
+
1. Replace the old and new GHC version globally eg. `9.4.3` becomes `9.4.4`. This will update both Dockerfiles **and the github actions**.
96
+
2. Obtain the new sha256 for the new GHC binary distribution via https://downloads.haskell.org/~ghc/9.4.4/SHA256SUMS . Look for the sha for the `.tar.xz` supported versions (currently `x86_64-deb10` + `aarch64-deb10`).
97
+
3. Replace globally the old sha256 for these with the new one obtained in step 2.
98
+
4. Update the PGP key if the person doing the release has changed. You can build the image locally at this point to see if it works or not. If it fails you need to update the PGP key. You need to find the key from the person doing the release on the ubuntu keyserver. See below for known releasers.
An [example](https://github.com/haskell/docker-haskell/commit/d25abd175c94517494f55e74c2a908cb2caa8552)
104
+
105
+
##### Cabal
106
+
107
+
1. Replace the old and new cabal version globally eg. `3.6.2.0` becomes `3.8.1.0`.
108
+
2. Obtain the new sha256 for the new cabal binary distribution via https://downloads.haskell.org/~cabal/cabal-install-3.8.1.0/SHA256SUMS . Look for the sha for the `.tar.xz` supported versions (currently `x86_64-linux-deb10` + `aarch64-linux-deb10`).
109
+
3. Replace globally the old sha256 for these with the new one obtained in step 2.
110
+
4. Update the PGP key if the person doing the release has changed. You can build the image locally at this point to see if it works or not. If it fails you need to update the PGP key. You need to find the key from the person doing the release on the ubuntu keyserver. See below for known releasers.
An [example](https://github.com/haskell/docker-haskell/commit/73cf1f7f950cd34bf7cc9691067b0e7761016c1a)
115
+
116
+
##### Stack
117
+
118
+
1. Replace the old and new stack version globally eg. `2.9.1` becomes `2.9.3`.
119
+
2. Obtain the new sha256 for the new stack binary distribution via https://github.com/commercialhaskell/stack/releases/tag/v2.9.3 . Look for `stack-2.9.3-linux-x86_64.tar.gz.sha256` + `stack-2.9.3-linux-aarch64.tar.gz.sha256` files in the assets list.
120
+
3. Replace globally the old sha256 for these with the new one obtained in step 2.
121
+
4. The [stack PGP key](https://docs.haskellstack.org/en/stable/SIGNING_KEY/) does not change so can be left as is.
88
122
89
-
See an [example](https://github.com/haskell/docker-haskell/pull/83/files) of a GHC update.
123
+
An [example](https://github.com/haskell/docker-haskell/commit/321f4b6dd77e2caee2caa947b50779fb47c26959) (this also enabled aarch64 for stack, so has a bit more noise but you get the idea).
90
124
91
-
#### Release New Versions
125
+
#### 2. Release New Versions
92
126
93
127
Images are built and released by the central docker official images system. Specifically haskell is maintained in this [file](https://github.com/docker-library/official-images/blob/master/library/haskell). See the [docs](https://github.com/docker-library/official-images#instruction-format) on this format.
94
128
95
-
1. Determine which docker haskell image GHC versions have been impacted by the unreleased changes.
129
+
1. Determine which docker haskell image GHC versions have been impacted by the unreleased changes (stack + cabal bumps impacts all versions, GHC just impacts specific versions).
96
130
2. Update the `GitCommit` in the [`haskell`](https://github.com/docker-library/official-images/blob/master/library/haskell) file.
97
131
3. Update the `Tags` if these have changed.
98
132
3. Create a PR, including info on what has changed. The official images people will review the actual Dockerfile changes as they want official images to maintain a high level of quality.
0 commit comments