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
@@ -160,15 +315,15 @@ We have finally released a new version of Haskell Language Server!
160
315
Thanks for all contributors, many bugs has been fixed, and many features has landed.
161
316
Here are the summary of changes:
162
317
163
-
- Basic support for GHC 9.0.1 is added.
318
+
- Basic support for GHC 9.0.1 is added.
164
319
It does not support all plugins yet, but core GHCIDE features will work. For the detailed information that which plugins work, please refer [this list](https://github.com/haskell/haskell-language-server/issues/297#issuecomment-855522891).
165
-
- Support for GHC 8.10.5 is added.
320
+
- Support for GHC 8.10.5 is added.
166
321
Note that macOS version is unfortunately not included in this release because of [a GHC issue with `network` package](https://gitlab.haskell.org/ghc/ghc/-/issues/19968).
167
-
- HLS wrapper and GHCIDE session loader uses the same logic with implicit-hie.
322
+
- HLS wrapper and GHCIDE session loader uses the same logic with implicit-hie.
168
323
This fixes [a build issue](https://github.com/haskell/haskell-language-server/issues/1782) of a stack project with implicit `hie.yaml` .
169
324
- Wingman plugin has added numerous features and fixed many bugs:
170
-
- It now supports tactic metaprogramming!
171
-
For list of commands, see [this document](https://github.com/haskell/haskell-language-server/blob/master/plugins/hls-tactics-plugin/COMMANDS.md#wingman-metaprogram-command-reference).
325
+
- It now supports tactic metaprogramming!
326
+
For list of commands, see [this document](https://github.com/haskell/haskell-language-server/blob/master/plugins/hls-tactics-plugin/COMMANDS.md#wingman-metaprogram-command-reference).
Copy file name to clipboardExpand all lines: docs/contributing/releases.md
+33-4Lines changed: 33 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -8,8 +8,16 @@ extension](https://github.com/alanz/vscode-hie-server) to provide automatic
8
8
installation for users on VS Code, but they can also be installed manually
9
9
when added to the path.
10
10
11
+
Starting with 0.8.0.0 haskell-language-server and all its related packages
12
+
(core libraries like ghcide, plugins and hls itself) is being released in
13
+
[hackage](https://hackage.haskell.org/package/haskell-language-server) as well.
14
+
This allow cabal users to install it with `cabal install haskell-language-server`
15
+
and it is being used in nix environments.
16
+
11
17
## Minimal checklist
12
18
19
+
### github release
20
+
13
21
*[ ] generate the list of pull requests finished since the last release using the [haskell script](https://github.com/haskell/haskell-language-server/blob/master/GenChangelogs.hs) in the project root.
14
22
Nix users should run command `gen-hls-changelogs` (a wrapper of the script) in nix-shell instead.
15
23
*[ ] add that list to the actual [Changelog](https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md) with a description of the release.
@@ -19,7 +27,14 @@ when added to the path.
19
27
*[ ] check uploaded binaries (see windows note below) and the release description (usually the changelog entry) and uncheck the prerelease box
20
28
*[ ] 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:)
21
29
22
-
## Making a new release of haskell-language-server
30
+
### hackage release
31
+
32
+
*[ ] bump up package versions following the [pvp specification](https://pvp.haskell.org/) if they are not already updated
33
+
*[ ] create ${version}-hackage branch to trigger the hackage github workflow which will upload all changed packages to hackage as candidates
34
+
*[ ] check manually candidates in hackage
35
+
*[ ] publish them definitely
36
+
37
+
## Making a new release of haskell-language-server in github
23
38
24
39
Go to the [GitHub releases
25
40
page](https://github.com/haskell/haskell-language-server/releases) for
@@ -43,7 +58,7 @@ most recent GHC version.
43
58
44
59
### ghcup
45
60
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
61
+
the binaries for *all* supported ghc versions, to help downstream publishers in
47
62
the distribution of the release. The most prominent publisher using them is `ghcup`.
48
63
The `tar` job in the workflow file automates the creation of this.
49
64
@@ -100,15 +115,15 @@ and add it to the existing release.
100
115
101
116
### Updating release artifacts
102
117
103
-
*IMPORTANT: release artifacts must not be modified, cause it would break
118
+
*IMPORTANT: release artifacts must not be modified, cause it would break
104
119
its secure distribution using their hashes. We should only add new ones.*
105
120
106
121
To manually upload a new binary we should:
107
122
108
123
- Add the new tar/zip following the name conventions of existing ones
109
124
-`haskell-language-server-${os}-${ghcVersion}.gz` for `Linux` and `macOS` and `haskell-language-server-Windows-${ghcVersion}.exe.zip` for `Windows`
110
125
- 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.
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.
126
+
- 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
127
-`-rev${n}` is the next revision number of the tarball, starting at 1.
113
128
- we should contact users of the tarball (particularly ghcup) to notify the change
114
129
@@ -118,3 +133,17 @@ is not included by default in the GitHub Actions build matrix. Instead
118
133
they need to be built and uploaded manually. See [this
119
134
PR](https://github.com/haskell/haskell-language-server/issues/276) for
120
135
more details
136
+
137
+
## Hackage release workflow
138
+
139
+
We aim to do hackage releases following the github ones described above.
140
+
To help in that job we have added a [github workflow](https://github.com/haskell/haskell-language-server/blob/master/.github/workflows/hackage.yml)
141
+
142
+
That script checks, generates the tar.gz files, unpacks and builds them in isolation against hackage head
143
+
if the package version in the branch is different from hackage.
144
+
If the package in the branch has the same version as the released one,
145
+
it will check the relevant files have not changed and will throw an error
146
+
otherwise.
147
+
148
+
The script will upload the tarballs as candidates, maintainers will have
0 commit comments