Skip to content

Commit 2535478

Browse files
jneiraJuly541
andauthored
Prepare 1.4.0 (#2182)
* [Call hierarchy] Update change log for 1.0.1.0 * Add hackage release instructions * Add missing new line * Add initial list of merged prs * Update list of prs * Add a initial release description * Add rename plugin * Add rename demo and last pr * Restore significant whitespaces * Correct grammar * Add some newlines * Bump up versions * Complete Changelog * Ignoring time resolution test * Remove reference to rename plugin Co-authored-by: Lei Zhu <[email protected]>
1 parent e1075e8 commit 2535478

File tree

15 files changed

+220
-26
lines changed

15 files changed

+220
-26
lines changed

ChangeLog.md

Lines changed: 161 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,160 @@
11
# Changelog for haskell-language-server
22

3+
## 1.4.0
4+
5+
After a month of vacation a new hls release has arrived:
6+
7+
- Support for ghc 8.10.6 and 8.10.7
8+
- The ormolu formatter plugin works with ghc 9.0.1
9+
- *Call hierarchy plugin has been improved* thanks to @July541:
10+
- Add call from type signature
11+
- Add call from a function pattern
12+
- Go to typeclass instance directly
13+
- As usual @isovector has been busy improving wingman plugin:
14+
- New "intro and destruct" code action
15+
- Streaming tactic solutions: when Wingman times outs, it can still pick the best solution it found
16+
- Let-bindings in metattactics: allows you to bind variables in tactic metaprogram
17+
- Several bug fixes
18+
- We have new docs thanks to @michaelpj: <https://haskell-language-server.readthedocs.io>
19+
- Now you can ask the executable for included plugins with: `haskell-language-server --list-plugins`
20+
- There are several bug fixes and features you can found in the merged pull requests list
21+
22+
### DEPRECATION NOTICE
23+
24+
- *After* this release we will drop support for ghc versions 8.6.4, 8.10.3 and 8.10.4
25+
- The advise is upgrade ghc to the last minor version: 8.6.5 or 8.10.7
26+
- Take a look to [this issue](https://github.com/haskell/haskell-language-server/issues/2168) for more details
27+
28+
### Pull requests merged for 1.4.0
29+
30+
- Update flake to fix nix builds
31+
([#2188](https://github.com/haskell/haskell-language-server/pull/2188)) by @jneira
32+
- Completions for project identifiers
33+
([#2187](https://github.com/haskell/haskell-language-server/pull/2187)) by @pepeiborra
34+
- Wingman: Don't clobber where clauses
35+
([#2184](https://github.com/haskell/haskell-language-server/pull/2184)) by @isovector
36+
- Add rerun workflow
37+
([#2181](https://github.com/haskell/haskell-language-server/pull/2181)) by @jneira
38+
- Bump up shake-bench version
39+
([#2178](https://github.com/haskell/haskell-language-server/pull/2178)) by @jneira
40+
- Fix hackage release
41+
([#2177](https://github.com/haskell/haskell-language-server/pull/2177)) by @jneira
42+
- Use maxBound of uinteger not Int.
43+
([#2169](https://github.com/haskell/haskell-language-server/pull/2169)) by @pranaysashank
44+
- enable the PR gitpod badge and drop the label
45+
([#2167](https://github.com/haskell/haskell-language-server/pull/2167)) by @pepeiborra
46+
- Plugin in config files
47+
([#2166](https://github.com/haskell/haskell-language-server/pull/2166)) by @jneira
48+
- Complete contributing guide
49+
([#2165](https://github.com/haskell/haskell-language-server/pull/2165)) by @jneira
50+
- Wingman: Add "New Unification Variable" helper
51+
([#2164](https://github.com/haskell/haskell-language-server/pull/2164)) by @isovector
52+
- Semiautomatic hackage releases
53+
([#2163](https://github.com/haskell/haskell-language-server/pull/2163)) by @jneira
54+
- Improve incoming call for typeclass and type family instance
55+
([#2162](https://github.com/haskell/haskell-language-server/pull/2162)) by @July541
56+
- Add a Gitpod descriptor
57+
([#2161](https://github.com/haskell/haskell-language-server/pull/2161)) by @pepeiborra
58+
- Wingman: Let-bindings in metatactics
59+
([#2160](https://github.com/haskell/haskell-language-server/pull/2160)) by @isovector
60+
- Update nix flake
61+
([#2159](https://github.com/haskell/haskell-language-server/pull/2159)) by @lf-
62+
- Add ghc-8.10.7 to release build
63+
([#2158](https://github.com/haskell/haskell-language-server/pull/2158)) by @jneira
64+
- Reduce duplication in pragma tests
65+
([#2157](https://github.com/haskell/haskell-language-server/pull/2157)) by @nini-faroux
66+
- Remove ghc-api source snapshot
67+
([#2156](https://github.com/haskell/haskell-language-server/pull/2156)) by @pepeiborra
68+
- Create a citation
69+
([#2155](https://github.com/haskell/haskell-language-server/pull/2155)) by @ndmitchell
70+
- Disable window job for ghc-8.10.2
71+
([#2154](https://github.com/haskell/haskell-language-server/pull/2154)) by @jneira
72+
- Auto complete definitions within imports
73+
([#2152](https://github.com/haskell/haskell-language-server/pull/2152)) by @alexnaspo
74+
- Filter code actions based on prefix, not equality
75+
([#2146](https://github.com/haskell/haskell-language-server/pull/2146)) by @michaelpj
76+
- perform a GC before find resolution
77+
([#2144](https://github.com/haskell/haskell-language-server/pull/2144)) by @pepeiborra
78+
- case sensitive language pragmas fix
79+
([#2142](https://github.com/haskell/haskell-language-server/pull/2142)) by @alexnaspo
80+
- Add ghc-8.10.7 support
81+
([#2141](https://github.com/haskell/haskell-language-server/pull/2141)) by @jneira
82+
- List all available plugins
83+
([#2139](https://github.com/haskell/haskell-language-server/pull/2139)) by @July541
84+
- update LTS for GHC 8.10.6
85+
([#2138](https://github.com/haskell/haskell-language-server/pull/2138)) by @peterbecich
86+
- fix GitHub Actions badges
87+
([#2135](https://github.com/haskell/haskell-language-server/pull/2135)) by @peterbecich
88+
- Move pragmas completion to pragmas plugin
89+
([#2134](https://github.com/haskell/haskell-language-server/pull/2134)) by @alexnaspo
90+
- Update ghc-9.0.1 support
91+
([#2131](https://github.com/haskell/haskell-language-server/pull/2131)) by @jneira
92+
- Support call hierarchy on pattern matching
93+
([#2129](https://github.com/haskell/haskell-language-server/pull/2129)) by @July541
94+
- GHCIDE_BUILD_PROFILING env var
95+
([#2125](https://github.com/haskell/haskell-language-server/pull/2125)) by @pepeiborra
96+
- [ghcide] support -d cli switch
97+
([#2124](https://github.com/haskell/haskell-language-server/pull/2124)) by @pepeiborra
98+
- don't crash when an unused operator import ends in `.`
99+
([#2123](https://github.com/haskell/haskell-language-server/pull/2123)) by @tscholak
100+
- [benchmarks] Fix edit and "after edit" experiments
101+
([#2122](https://github.com/haskell/haskell-language-server/pull/2122)) by @pepeiborra
102+
- Add fix for correct placement of import (#2100)
103+
([#2116](https://github.com/haskell/haskell-language-server/pull/2116)) by @nini-faroux
104+
- Support for ghc-8.10.6
105+
([#2109](https://github.com/haskell/haskell-language-server/pull/2109)) by @jneira
106+
- New rename plugin implementation
107+
([#2108](https://github.com/haskell/haskell-language-server/pull/2108)) by @OliverMadine
108+
- [ghcide-bench] Support extra args in examples
109+
([#2107](https://github.com/haskell/haskell-language-server/pull/2107)) by @pepeiborra
110+
- Fix filepath identity in cradle dependencies when using reactive change tracking
111+
([#2106](https://github.com/haskell/haskell-language-server/pull/2106)) by @pepeiborra
112+
- [ghcide-bench] preserve threading details in eventlogs
113+
([#2105](https://github.com/haskell/haskell-language-server/pull/2105)) by @pepeiborra
114+
- [ghcide-bench] fix edit experiment
115+
([#2104](https://github.com/haskell/haskell-language-server/pull/2104)) by @pepeiborra
116+
([#2102](https://github.com/haskell/haskell-language-server/pull/2102)) by @isovector
117+
- reduce allow-newer entries for shake-bench
118+
([#2101](https://github.com/haskell/haskell-language-server/pull/2101)) by @pepeiborra
119+
- Wingman: Don't count it as using a term if you only destruct it
120+
([#2099](https://github.com/haskell/haskell-language-server/pull/2099)) by @isovector
121+
- Clean cabal project
122+
([#2097](https://github.com/haskell/haskell-language-server/pull/2097)) by @jneira
123+
- Wingman: New AbstractLSP interface
124+
([#2094](https://github.com/haskell/haskell-language-server/pull/2094)) by @isovector
125+
- Add badge with github release
126+
([#2093](https://github.com/haskell/haskell-language-server/pull/2093)) by @jneira
127+
- Add a bit more prose and some links to the README
128+
([#2090](https://github.com/haskell/haskell-language-server/pull/2090)) by @michaelpj
129+
- Enable tests for ormolu plugin
130+
([#2086](https://github.com/haskell/haskell-language-server/pull/2086)) by @felixonmars
131+
- Allow ormolu 0.2 and fix compatibility with GHC 9
132+
([#2084](https://github.com/haskell/haskell-language-server/pull/2084)) by @felixonmars
133+
- Add initial sphinx doc site for RTD
134+
([#2083](https://github.com/haskell/haskell-language-server/pull/2083)) by @michaelpj
135+
- Amend fix for correct placement of file header pragmas (#1958)
136+
([#2078](https://github.com/haskell/haskell-language-server/pull/2078)) by @nini-faroux
137+
- Wingman: "Intro and destruct" code action
138+
([#2077](https://github.com/haskell/haskell-language-server/pull/2077)) by @isovector
139+
- Support call hierarchy on type signature & add plugin to generic config & docs
140+
([#2072](https://github.com/haskell/haskell-language-server/pull/2072)) by @July541
141+
- Update nix flake
142+
([#2065](https://github.com/haskell/haskell-language-server/pull/2065)) by @berberman
143+
- Include sponsorship section
144+
([#2063](https://github.com/haskell/haskell-language-server/pull/2063)) by @jneira
145+
- Add more communication channels
146+
([#2062](https://github.com/haskell/haskell-language-server/pull/2062)) by @jneira
147+
- Don't suggest disabling type errors
148+
([#2061](https://github.com/haskell/haskell-language-server/pull/2061)) by @anka-213
149+
- Build with lsp 1.2.0.1
150+
([#2059](https://github.com/haskell/haskell-language-server/pull/2059)) by @pepeiborra
151+
- Remove HIE_CACHE from circleci cache key
152+
([#2050](https://github.com/haskell/haskell-language-server/pull/2050)) by @jneira
153+
- [#1958] Fix placement of language pragmas
154+
([#2043](https://github.com/haskell/haskell-language-server/pull/2043)) by @nini-faroux
155+
- [#2005] Fix Formatting When Brittany Returns Warnings
156+
([#2036](https://github.com/haskell/haskell-language-server/pull/2036)) by @prikhi
157+
3158
## 1.3.0
4159

5160
2021 July release of HLS arrives! This release includes binaries for GHC 9.0.1
@@ -23,7 +178,7 @@ and some new interesting features. Here is the brief summary of changes:
23178
- Wingman now gives a warning if it ran out of gas during "attempt to fill hole".
24179
- Metaprogramming for Wingman has been improved with symbolic-name support and the `pointwise` combinator.
25180
- An option to enable/disable Wingman's proof state styling is added.
26-
- Hole fit suggestions are now disabled for performance reasons when using Wingman.
181+
- Hole fit suggestions are now disabled for performance reasons when using Wingman.
27182
- Hovering on a name displays the package where the name is defined, contributed by @berberman.
28183
![hover](https://user-images.githubusercontent.com/12473268/127550516-acc1f1b4-bad7-44fd-99a0-a174ce9ac909.gif)
29184

@@ -160,15 +315,15 @@ We have finally released a new version of Haskell Language Server!
160315
Thanks for all contributors, many bugs has been fixed, and many features has landed.
161316
Here are the summary of changes:
162317

163-
- Basic support for GHC 9.0.1 is added.
318+
- Basic support for GHC 9.0.1 is added.
164319
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.
166321
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.
168323
This fixes [a build issue](https://github.com/haskell/haskell-language-server/issues/1782) of a stack project with implicit `hie.yaml` .
169324
- 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).
172327
![https://github.com/haskell/haskell-language-server/blob/master/plugins/hls-tactics-plugin/COMMANDS.md#wingman-metaprogram-command-reference](https://user-images.githubusercontent.com/307223/118190278-bdf24f80-b3f7-11eb-8838-b08a2582d7f1.gif)
173328
- "Refine hole" and "Split all function arguments" code actions are publicly opened.
174329
- "Empty case split" code lens is added.

docs/contributing/releases.md

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,16 @@ extension](https://github.com/alanz/vscode-hie-server) to provide automatic
88
installation for users on VS Code, but they can also be installed manually
99
when added to the path.
1010

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+
1117
## Minimal checklist
1218

19+
### github release
20+
1321
* [ ] 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.
1422
Nix users should run command `gen-hls-changelogs` (a wrapper of the script) in nix-shell instead.
1523
* [ ] 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.
1927
* [ ] check uploaded binaries (see windows note below) and the release description (usually the changelog entry) and uncheck the prerelease box
2028
* [ ] 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:)
2129

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
2338

2439
Go to the [GitHub releases
2540
page](https://github.com/haskell/haskell-language-server/releases) for
@@ -43,7 +58,7 @@ most recent GHC version.
4358

4459
### ghcup
4560
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
4762
the distribution of the release. The most prominent publisher using them is `ghcup`.
4863
The `tar` job in the workflow file automates the creation of this.
4964

@@ -100,15 +115,15 @@ and add it to the existing release.
100115

101116
### Updating release artifacts
102117

103-
*IMPORTANT: release artifacts must not be modified, cause it would break
118+
*IMPORTANT: release artifacts must not be modified, cause it would break
104119
its secure distribution using their hashes. We should only add new ones.*
105120

106121
To manually upload a new binary we should:
107122

108123
- Add the new tar/zip following the name conventions of existing ones
109124
- `haskell-language-server-${os}-${ghcVersion}.gz` for `Linux` and `macOS` and `haskell-language-server-Windows-${ghcVersion}.exe.zip` for `Windows`
110125
- 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.
112127
- `-rev${n}` is the next revision number of the tarball, starting at 1.
113128
- we should contact users of the tarball (particularly ghcup) to notify the change
114129

@@ -118,3 +133,17 @@ is not included by default in the GitHub Actions build matrix. Instead
118133
they need to be built and uploaded manually. See [this
119134
PR](https://github.com/haskell/haskell-language-server/issues/276) for
120135
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
149+
to check and publish them definitely.

ghcide/ghcide.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ cabal-version: 2.4
22
build-type: Simple
33
category: Development
44
name: ghcide
5-
version: 1.4.1.0
5+
version: 1.4.2.0
66
license: Apache-2.0
77
license-file: LICENSE
88
author: Digital Asset and Ghcide contributors

ghcide/test/exe/Main.hs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5784,10 +5784,11 @@ unitTests = do
57845784
actualOrder <- liftIO $ readIORef orderRef
57855785

57865786
liftIO $ actualOrder @?= reverse [(1::Int)..20]
5787-
, testCase "timestamps have millisecond resolution" $ do
5788-
resolution_us <- findResolution_us 1
5789-
let msg = printf "Timestamps do not have millisecond resolution: %dus" resolution_us
5790-
assertBool msg (resolution_us <= 1000)
5787+
, ignoreTestBecause "The test fails sometimes showing 10000us" $
5788+
testCase "timestamps have millisecond resolution" $ do
5789+
resolution_us <- findResolution_us 1
5790+
let msg = printf "Timestamps do not have millisecond resolution: %dus" resolution_us
5791+
assertBool msg (resolution_us <= 1000)
57915792
, Progress.tests
57925793
]
57935794

haskell-language-server.cabal

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cabal-version: 2.4
22
category: Development
33
name: haskell-language-server
4-
version: 1.3.0.0
4+
version: 1.4.0.0
55
synopsis: LSP server for GHC
66
description:
77
Please see the README on GitHub at <https://github.com/haskell/haskell-language-server#readme>
@@ -240,7 +240,7 @@ common retrie
240240

241241
common tactic
242242
if flag(tactic) || flag(all-plugins)
243-
build-depends: hls-tactics-plugin >=1.2.0.0 && <1.4
243+
build-depends: hls-tactics-plugin >=1.2.0.0 && <1.5
244244
cpp-options: -Dtactic
245245

246246
common hlint

plugins/hls-brittany-plugin/hls-brittany-plugin.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cabal-version: 2.4
22
name: hls-brittany-plugin
3-
version: 1.0.0.2
3+
version: 1.0.1.0
44
synopsis: Integration with the Brittany code formatter
55
description:
66
Please see the README on GitHub at <https://github.com/haskell/haskell-language-server#readme>

plugins/hls-call-hierarchy-plugin/README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,17 @@ Enabled by default. You can disable it in your editor settings whenever you like
2323
```
2424

2525
## Change log
26+
### 1.0.1.0
27+
- Support call from a type signature.
28+
- Support call from a function pattern.
29+
- Incoming call now will go to typeclass instance instand of its definition.
2630
### 1.0.0.1
2731
- Support call hierarchy on type signatures.
32+
### 1.0.0.0
33+
- Released!
34+
35+
## Known issues:
36+
- Outgoing call have difficulty with going to typeclass instance due to `HieDb` lack of adequate info.
2837

2938
## Acknowledgments
3039
Supported by

plugins/hls-call-hierarchy-plugin/hls-call-hierarchy-plugin.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cabal-version: 2.4
22
name: hls-call-hierarchy-plugin
3-
version: 1.0.0.2
3+
version: 1.0.1.0
44
synopsis: Call hierarchy plugin for Haskell Language Server
55
description:
66
Please see the README on GitHub at <https://github.com/haskell/haskell-language-server/tree/master/plugins/hls-call-hierarchy-plugin#readme>

plugins/hls-class-plugin/hls-class-plugin.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cabal-version: 2.4
22
name: hls-class-plugin
3-
version: 1.0.0.3
3+
version: 1.0.1.0
44
synopsis:
55
Class/instance management plugin for Haskell Language Server
66

0 commit comments

Comments
 (0)