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
Copy file name to clipboardExpand all lines: docs/releases.md
+20-10Lines changed: 20 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -15,6 +15,7 @@ when added to the path.
15
15
*[ ] add that list to the actual [Changelog](https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md) with a description of the release.
16
16
*[ ] bump up versions of changed packages. All are optional but [haskell-language-server itself](https://github.com/haskell/haskell-language-server/blob/master/haskell-language-server.cabal).
17
17
*[ ] create the tag and make an initial prerelease to trigger the ci workflow (see details below)
18
+
*[ ] contact ghcup team (#haskell-ghcup irc channel or via its [repo](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues)) to try to sync our release and its inclusion in ghcup
18
19
*[ ] check uploaded binaries (see windows note below) and the release description (usually the changelog entry) and uncheck the prerelease box
19
20
*[ ] make public the release in the usual social channels: irc, twitter, reddit, discord, discourse, mailing lists, etc (not required but useful to spread the word :slightly_smiling_face:)
20
21
@@ -34,12 +35,18 @@ workflow](https://github.com/haskell/haskell-language-server/actions) will be
34
35
kicked off and will start creating binaries. They will be gzipped and
35
36
uploaded to the release.
36
37
37
-
It creates a `haskell-language-server-OS-GHC` binary for each platform
38
+
It creates a `haskell-language-server-${os}-${ghcVersion}` binary for each platform
38
39
(Linux, macOS, Windows) and each GHC version that we currently support, as well
39
-
as a `haskell-language-server-wrapper-OS` binary for each platform. Note that
40
+
as a `haskell-language-server-wrapper-${os}` binary for each platform. Note that
40
41
only one wrapper binary is created per platform, and it should be built with the
41
42
most recent GHC version.
42
43
44
+
### ghcup
45
+
It also creates a `haskell-language-server-${os}-${hlsVersion}.tar.gz` tarball with
46
+
the binaries for *all* supported ghc versions, to help downstream publishers in
47
+
the distribution of the release. The most prominent publisher using them is `ghcup`.
48
+
The `tar` job in the workflow file automates the creation of this.
49
+
43
50
Once all these binaries are present
44
51
45
52
## Distributable binaries
@@ -88,19 +95,22 @@ the prerelease and the tag itself has to be recreated to start it again.
88
95
If only some of the artefacts are missing, an alternative could be make
89
96
the release in a fork and upload manually them.
90
97
91
-
If they are missing due to ci specific problems we can build the executable locally.
98
+
If they are missing due to ci specific problems we can build the executable locally
99
+
and add it to the existing release.
100
+
101
+
### Updating release artifacts
92
102
93
-
To manually upload the missing binary we should:
103
+
*IMPORTANT: release artifacts must not be modified, cause it would break
104
+
its secure distribution using their hashes. We should only add new ones.*
105
+
106
+
To manually upload a new binary we should:
94
107
95
108
- Add the new tar/zip following the name conventions of existing ones
96
109
-`haskell-language-server-${os}-${ghcVersion}.gz` for `Linux` and `macOS` and `haskell-language-server-Windows-${ghcVersion}.exe.zip` for `Windows`
97
110
- the binary inside the gz file is named `haskell-language-server-${ghcVersion}` (with the `.exe` extension for `Windows`). Note that the binary name does not contain the `${os}` part.
98
-
- Add the executable to the existing tar `haskell-language-server-${os}-${ghcVersion}.tar.gz` following the same schema for the binary as the previous one.
99
-
100
-
### ghcup
101
-
Ghcup can install hls binaries, provided that there is a tarfile
102
-
called `haskell-language-server-{macOS,Linux}-$HLS_VERSION.tar.gz`
103
-
included in the GitHub release. The `tar` job in the workflow file automates the creation of this.
111
+
- Add the executable to the existing tar `haskell-language-server-${os}-${ghcVersion}.tar.gz`*locally* and upload it under a new name `haskell-language-server-${os}-${ghcVersion}-rev${n}.tar.gz` following the same schema for the binary as the previous one.
112
+
-`-rev${n}` is the next revision number of the tarball, starting at 1.
113
+
- we should contact users of the tarball (particularly ghcup) to notify the change
104
114
105
115
### Windows
106
116
Currently building HLS with GHC 8.8.x on Windows is very flakey and so
0 commit comments