From 62d973e15bf28276e105ede1519fefbcf5085046 Mon Sep 17 00:00:00 2001 From: Lei Zhu Date: Tue, 14 Sep 2021 11:07:32 +0800 Subject: [PATCH 01/15] [Call hierarchy] Update change log for 1.0.1.0 --- plugins/hls-call-hierarchy-plugin/README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/hls-call-hierarchy-plugin/README.md b/plugins/hls-call-hierarchy-plugin/README.md index 752bf7e9f1..c6995e9fb3 100644 --- a/plugins/hls-call-hierarchy-plugin/README.md +++ b/plugins/hls-call-hierarchy-plugin/README.md @@ -23,8 +23,17 @@ Enabled by default. You can disable it in your editor settings whenever you like ``` ## Change log +### 1.0.1.0 +- Support call from a type signature. +- Support call from a function pattern. +- Incoming call now will go to typeclass instance instand of its definition. ### 1.0.0.1 - Support call hierarchy on type signatures. +### 1.0.0.0 +- Released! + +## Known issues: +- Outgoing call have difficulty with going to typeclass instance due to `HieDb` lack of adequate info. ## Acknowledgments Supported by From 000470f1929c654b53be476dc2dbf2954a355347 Mon Sep 17 00:00:00 2001 From: jneira Date: Fri, 10 Sep 2021 10:03:22 +0200 Subject: [PATCH 02/15] Add hackage release instructions --- docs/contributing/releases.md | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/docs/contributing/releases.md b/docs/contributing/releases.md index 94f846922e..66f5fe0879 100644 --- a/docs/contributing/releases.md +++ b/docs/contributing/releases.md @@ -8,8 +8,16 @@ extension](https://github.com/alanz/vscode-hie-server) to provide automatic installation for users on VS Code, but they can also be installed manually when added to the path. +Starting with 0.8.0.0 haskell-language-server and all its related packages +(core libraries like ghcide, plugins and hls itself) is being released in +[hackage](https://hackage.haskell.org/package/haskell-language-server) as well. +This allow cabal users to install it with `cabal install haskell-language-server` +and it is being used in nix environments. + ## Minimal checklist +### github release + * [ ] 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. Nix users should run command `gen-hls-changelogs` (a wrapper of the script) in nix-shell instead. * [ ] 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,13 @@ when added to the path. * [ ] check uploaded binaries (see windows note below) and the release description (usually the changelog entry) and uncheck the prerelease box * [ ] 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:) -## Making a new release of haskell-language-server +### hackage release + +* [ ] bump up package versions following the [pvp specification](https://pvp.haskell.org/) if they are not already updated +* [ ] create ${version}-hackage branch to trigger the hackage github workflow which will upload all changed packages to hackage as candidates +* [ ] check manually candidates in hackage +* [ ] publish them definitely +## Making a new release of haskell-language-server in github Go to the [GitHub releases page](https://github.com/haskell/haskell-language-server/releases) for @@ -43,7 +57,7 @@ most recent GHC version. ### ghcup It also creates a `haskell-language-server-${os}-${hlsVersion}.tar.gz` tarball with -the binaries for *all* supported ghc versions, to help downstream publishers in +the binaries for *all* supported ghc versions, to help downstream publishers in the distribution of the release. The most prominent publisher using them is `ghcup`. The `tar` job in the workflow file automates the creation of this. @@ -100,7 +114,7 @@ and add it to the existing release. ### Updating release artifacts -*IMPORTANT: release artifacts must not be modified, cause it would break +*IMPORTANT: release artifacts must not be modified, cause it would break its secure distribution using their hashes. We should only add new ones.* To manually upload a new binary we should: @@ -108,7 +122,7 @@ To manually upload a new binary we should: - Add the new tar/zip following the name conventions of existing ones - `haskell-language-server-${os}-${ghcVersion}.gz` for `Linux` and `macOS` and `haskell-language-server-Windows-${ghcVersion}.exe.zip` for `Windows` - 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. -- 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. +- 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. - `-rev${n}` is the next revision number of the tarball, starting at 1. - we should contact users of the tarball (particularly ghcup) to notify the change @@ -118,3 +132,15 @@ is not included by default in the GitHub Actions build matrix. Instead they need to be built and uploaded manually. See [this PR](https://github.com/haskell/haskell-language-server/issues/276) for more details + +## Hackage release workflow + +We aim to do hackage releases following the github ones described above. +To help in that job we have added a [github workflow](https://github.com/haskell/haskell-language-server/blob/master/.github/workflows/hackage.yml) +That script check, generates the tar.gz files, unpack thems and build them in isolation against hackage head +if the package version in the branch is different from hackage. +If the package in the branch has the same version as the released one, +it will check the relevant files have not changed and will thorw an error +in other case. +The script will upload the tarballs as candidates, maintainers will have +to check them and publish them definitely. From 36ce52220b22eee96debe20eae9cd5c91a3cd728 Mon Sep 17 00:00:00 2001 From: jneira Date: Fri, 10 Sep 2021 12:06:18 +0200 Subject: [PATCH 03/15] Add missing new line --- docs/contributing/releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contributing/releases.md b/docs/contributing/releases.md index 66f5fe0879..63ab4ca96a 100644 --- a/docs/contributing/releases.md +++ b/docs/contributing/releases.md @@ -33,6 +33,7 @@ and it is being used in nix environments. * [ ] create ${version}-hackage branch to trigger the hackage github workflow which will upload all changed packages to hackage as candidates * [ ] check manually candidates in hackage * [ ] publish them definitely + ## Making a new release of haskell-language-server in github Go to the [GitHub releases From cce8ba1885ac60e8bfc0cc578455f0e8170610de Mon Sep 17 00:00:00 2001 From: jneira Date: Fri, 10 Sep 2021 12:06:38 +0200 Subject: [PATCH 04/15] Add initial list of merged prs --- ChangeLog.md | 125 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 119 insertions(+), 6 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index 7a18e7d1c1..d90cff0111 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,5 +1,118 @@ # Changelog for haskell-language-server +## 1.4.0 + +- enable the PR gitpod badge and drop the label +([#2167](https://github.com/haskell/haskell-language-server/pull/2167)) by @pepeiborra +- Plugin in config files +([#2166](https://github.com/haskell/haskell-language-server/pull/2166)) by @jneira +- Complete contributing guide +([#2165](https://github.com/haskell/haskell-language-server/pull/2165)) by @jneira +- Semiautomatic hackage releases +([#2163](https://github.com/haskell/haskell-language-server/pull/2163)) by @jneira +- Improve incoming call for typeclass and type family instance +([#2162](https://github.com/haskell/haskell-language-server/pull/2162)) by @July541 +- Add a Gitpod descriptor +([#2161](https://github.com/haskell/haskell-language-server/pull/2161)) by @pepeiborra +- Wingman: Let-bindings in metatactics +([#2160](https://github.com/haskell/haskell-language-server/pull/2160)) by @isovector +- Update nix flake +([#2159](https://github.com/haskell/haskell-language-server/pull/2159)) by @lf- +- Add ghc-8.10.7 to release build +([#2158](https://github.com/haskell/haskell-language-server/pull/2158)) by @jneira +- Reduce duplication in pragma tests +([#2157](https://github.com/haskell/haskell-language-server/pull/2157)) by @nini-faroux +- Remove ghc-api source snapshot +([#2156](https://github.com/haskell/haskell-language-server/pull/2156)) by @pepeiborra +- Create a citation +([#2155](https://github.com/haskell/haskell-language-server/pull/2155)) by @ndmitchell +- Disable window job for ghc-8.10.2 +([#2154](https://github.com/haskell/haskell-language-server/pull/2154)) by @jneira +- Auto complete definitions within imports +([#2152](https://github.com/haskell/haskell-language-server/pull/2152)) by @alexnaspo +- perform a GC before find resolution +([#2144](https://github.com/haskell/haskell-language-server/pull/2144)) by @pepeiborra +- case sensitive language pragmas fix +([#2142](https://github.com/haskell/haskell-language-server/pull/2142)) by @alexnaspo +- Add ghc-8.10.7 support +([#2141](https://github.com/haskell/haskell-language-server/pull/2141)) by @jneira +- List all available plugins +([#2139](https://github.com/haskell/haskell-language-server/pull/2139)) by @July541 +- update LTS for GHC 8.10.6 +([#2138](https://github.com/haskell/haskell-language-server/pull/2138)) by @peterbecich +- fix GitHub Actions badges +([#2135](https://github.com/haskell/haskell-language-server/pull/2135)) by @peterbecich +- Move pragmas completion to pragmas plugin +([#2134](https://github.com/haskell/haskell-language-server/pull/2134)) by @alexnaspo +- Update ghc-9.0.1 support +([#2131](https://github.com/haskell/haskell-language-server/pull/2131)) by @jneira +- Support call hierarchy on pattern matching +([#2129](https://github.com/haskell/haskell-language-server/pull/2129)) by @July541 +- GHCIDE_BUILD_PROFILING env var +([#2125](https://github.com/haskell/haskell-language-server/pull/2125)) by @pepeiborra +- [ghcide] support -d cli switch +([#2124](https://github.com/haskell/haskell-language-server/pull/2124)) by @pepeiborra +- don't crash when an unused operator import ends in `.` +([#2123](https://github.com/haskell/haskell-language-server/pull/2123)) by @tscholak +- [benchmarks] Fix edit and "after edit" experiments +([#2122](https://github.com/haskell/haskell-language-server/pull/2122)) by @pepeiborra +- Add fix for correct placement of import (#2100) +([#2116](https://github.com/haskell/haskell-language-server/pull/2116)) by @nini-faroux +- Support for ghc-8.10.6 +([#2109](https://github.com/haskell/haskell-language-server/pull/2109)) by @jneira +- New rename plugin implementation +([#2108](https://github.com/haskell/haskell-language-server/pull/2108)) by @OliverMadine +- [ghcide-bench] Support extra args in examples +([#2107](https://github.com/haskell/haskell-language-server/pull/2107)) by @pepeiborra +- Fix filepath identity in cradle dependencies when using reactive change tracking +([#2106](https://github.com/haskell/haskell-language-server/pull/2106)) by @pepeiborra +- [ghcide-bench] preserve threading details in eventlogs +([#2105](https://github.com/haskell/haskell-language-server/pull/2105)) by @pepeiborra +- [ghcide-bench] fix edit experiment +([#2104](https://github.com/haskell/haskell-language-server/pull/2104)) by @pepeiborra +- Wingman: streaming tactic solutions +([#2102](https://github.com/haskell/haskell-language-server/pull/2102)) by @isovector +- reduce allow-newer entries for shake-bench +([#2101](https://github.com/haskell/haskell-language-server/pull/2101)) by @pepeiborra +- Wingman: Don't count it as using a term if you only destruct it +([#2099](https://github.com/haskell/haskell-language-server/pull/2099)) by @isovector +- Clean cabal project +([#2097](https://github.com/haskell/haskell-language-server/pull/2097)) by @jneira +- Wingman: New AbstractLSP interface +([#2094](https://github.com/haskell/haskell-language-server/pull/2094)) by @isovector +- Add badge with github release +([#2093](https://github.com/haskell/haskell-language-server/pull/2093)) by @jneira +- Add a bit more prose and some links to the README +([#2090](https://github.com/haskell/haskell-language-server/pull/2090)) by @michaelpj +- Enable tests for ormolu plugin +([#2086](https://github.com/haskell/haskell-language-server/pull/2086)) by @felixonmars +- Allow ormolu 0.2 and fix compatibility with GHC 9 +([#2084](https://github.com/haskell/haskell-language-server/pull/2084)) by @felixonmars +- Add initial sphinx doc site for RTD +([#2083](https://github.com/haskell/haskell-language-server/pull/2083)) by @michaelpj +- Amend fix for correct placement of file header pragmas (#1958) +([#2078](https://github.com/haskell/haskell-language-server/pull/2078)) by @nini-faroux +- Wingman: "Intro and destruct" code action +([#2077](https://github.com/haskell/haskell-language-server/pull/2077)) by @isovector +- Support call hierarchy on type signature & add plugin to generic config & docs +([#2072](https://github.com/haskell/haskell-language-server/pull/2072)) by @July541 +- Update nix flake +([#2065](https://github.com/haskell/haskell-language-server/pull/2065)) by @berberman +- Include sponsorship section +([#2063](https://github.com/haskell/haskell-language-server/pull/2063)) by @jneira +- Add more communication channels +([#2062](https://github.com/haskell/haskell-language-server/pull/2062)) by @jneira +- Don't suggest disabling type errors +([#2061](https://github.com/haskell/haskell-language-server/pull/2061)) by @anka-213 +- Build with lsp 1.2.0.1 +([#2059](https://github.com/haskell/haskell-language-server/pull/2059)) by @pepeiborra +- Remove HIE_CACHE from circleci cache key +([#2050](https://github.com/haskell/haskell-language-server/pull/2050)) by @jneira +- [#1958] Fix placement of language pragmas +([#2043](https://github.com/haskell/haskell-language-server/pull/2043)) by @nini-faroux +- [#2005] Fix Formatting When Brittany Returns Warnings +([#2036](https://github.com/haskell/haskell-language-server/pull/2036)) by @prikhi + ## 1.3.0 2021 July release of HLS arrives! This release includes binaries for GHC 9.0.1 @@ -23,7 +136,7 @@ and some new interesting features. Here is the brief summary of changes: - Wingman now gives a warning if it ran out of gas during "attempt to fill hole". - Metaprogramming for Wingman has been improved with symbolic-name support and the `pointwise` combinator. - An option to enable/disable Wingman's proof state styling is added. - - Hole fit suggestions are now disabled for performance reasons when using Wingman. + - Hole fit suggestions are now disabled for performance reasons when using Wingman. - Hovering on a name displays the package where the name is defined, contributed by @berberman. ![hover](https://user-images.githubusercontent.com/12473268/127550516-acc1f1b4-bad7-44fd-99a0-a174ce9ac909.gif) @@ -160,15 +273,15 @@ We have finally released a new version of Haskell Language Server! Thanks for all contributors, many bugs has been fixed, and many features has landed. Here are the summary of changes: -- Basic support for GHC 9.0.1 is added. +- Basic support for GHC 9.0.1 is added. 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). -- Support for GHC 8.10.5 is added. +- Support for GHC 8.10.5 is added. 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). -- HLS wrapper and GHCIDE session loader uses the same logic with implicit-hie. +- HLS wrapper and GHCIDE session loader uses the same logic with implicit-hie. This fixes [a build issue](https://github.com/haskell/haskell-language-server/issues/1782) of a stack project with implicit `hie.yaml` . - Wingman plugin has added numerous features and fixed many bugs: - - It now supports tactic metaprogramming! - 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). + - It now supports tactic metaprogramming! + 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). ![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) - "Refine hole" and "Split all function arguments" code actions are publicly opened. - "Empty case split" code lens is added. From fb4a10c2f545741589414d81140c3d6d97e389f3 Mon Sep 17 00:00:00 2001 From: jneira Date: Sun, 12 Sep 2021 22:47:50 +0200 Subject: [PATCH 05/15] Update list of prs --- ChangeLog.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/ChangeLog.md b/ChangeLog.md index d90cff0111..462b532a2e 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -2,12 +2,24 @@ ## 1.4.0 +- Completions for project identifiers +([#2187](https://github.com/haskell/haskell-language-server/pull/2187)) by @pepeiborra +- Add rerun workflow +([#2181](https://github.com/haskell/haskell-language-server/pull/2181)) by @jneira +- Bump up shake-bench version +([#2178](https://github.com/haskell/haskell-language-server/pull/2178)) by @jneira +- Fix hackage release +([#2177](https://github.com/haskell/haskell-language-server/pull/2177)) by @jneira +- Use maxBound of uinteger not Int. +([#2169](https://github.com/haskell/haskell-language-server/pull/2169)) by @pranaysashank - enable the PR gitpod badge and drop the label ([#2167](https://github.com/haskell/haskell-language-server/pull/2167)) by @pepeiborra - Plugin in config files ([#2166](https://github.com/haskell/haskell-language-server/pull/2166)) by @jneira - Complete contributing guide ([#2165](https://github.com/haskell/haskell-language-server/pull/2165)) by @jneira +- Wingman: Add "New Unification Variable" helper +([#2164](https://github.com/haskell/haskell-language-server/pull/2164)) by @isovector - Semiautomatic hackage releases ([#2163](https://github.com/haskell/haskell-language-server/pull/2163)) by @jneira - Improve incoming call for typeclass and type family instance @@ -30,6 +42,8 @@ ([#2154](https://github.com/haskell/haskell-language-server/pull/2154)) by @jneira - Auto complete definitions within imports ([#2152](https://github.com/haskell/haskell-language-server/pull/2152)) by @alexnaspo +- Filter code actions based on prefix, not equality +([#2146](https://github.com/haskell/haskell-language-server/pull/2146)) by @michaelpj - perform a GC before find resolution ([#2144](https://github.com/haskell/haskell-language-server/pull/2144)) by @pepeiborra - case sensitive language pragmas fix @@ -70,7 +84,6 @@ ([#2105](https://github.com/haskell/haskell-language-server/pull/2105)) by @pepeiborra - [ghcide-bench] fix edit experiment ([#2104](https://github.com/haskell/haskell-language-server/pull/2104)) by @pepeiborra -- Wingman: streaming tactic solutions ([#2102](https://github.com/haskell/haskell-language-server/pull/2102)) by @isovector - reduce allow-newer entries for shake-bench ([#2101](https://github.com/haskell/haskell-language-server/pull/2101)) by @pepeiborra From be5eebcddf6fb9b383049a9da180cfe7b3353cb6 Mon Sep 17 00:00:00 2001 From: jneira Date: Sun, 12 Sep 2021 23:28:47 +0200 Subject: [PATCH 06/15] Add a initial release description --- ChangeLog.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ChangeLog.md b/ChangeLog.md index 462b532a2e..10539dde48 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -2,6 +2,22 @@ ## 1.4.0 +After a month of vacation a new hls release has arrived: + +- Support for ghc 8.10.6 and 8.10.7 +- The ormolu formatter plugin works with ghc 9.0.1 +- We have new docs thanks to @michaelpj: +- Now you can ask the executable for included plugins with: `haskell-language-server --list-plugins` +- Call hierarchy plugin has been improved thanks to @July541: + - Added call from type signature + - And call from a function pattern + - Go to typeclass instance directly +- After this release we will drop support for ghc versions: 8.6.4, 8.10.3 and 8.10.4 + - The advise is upgrade ghc to the last minor version: 8.6.5 or 8.10.7 +- There are several bug fixes and features you can found in the merged pull requests list + +### Pull requests merged for 1.4.0 + - Completions for project identifiers ([#2187](https://github.com/haskell/haskell-language-server/pull/2187)) by @pepeiborra - Add rerun workflow From 082bf6d5772156a6592709f7e1bfda8f69982beb Mon Sep 17 00:00:00 2001 From: jneira Date: Mon, 13 Sep 2021 12:49:01 +0200 Subject: [PATCH 07/15] Add rename plugin --- ChangeLog.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index 10539dde48..555aaa30ad 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -6,13 +6,14 @@ After a month of vacation a new hls release has arrived: - Support for ghc 8.10.6 and 8.10.7 - The ormolu formatter plugin works with ghc 9.0.1 +- We have a *new brand plugin to let you rename indentifiers* thanks to @OliverMadine's great work +- *Call hierarchy plugin has been improved* thanks to @July541: + - Add call from type signature + - Add call from a function pattern + - Go to typeclass instance directly - We have new docs thanks to @michaelpj: - Now you can ask the executable for included plugins with: `haskell-language-server --list-plugins` -- Call hierarchy plugin has been improved thanks to @July541: - - Added call from type signature - - And call from a function pattern - - Go to typeclass instance directly -- After this release we will drop support for ghc versions: 8.6.4, 8.10.3 and 8.10.4 +- *DEPRECATION NOTICE*: after this release we will drop support for ghc versions: 8.6.4, 8.10.3 and 8.10.4 - The advise is upgrade ghc to the last minor version: 8.6.5 or 8.10.7 - There are several bug fixes and features you can found in the merged pull requests list From 98ef49ec1bd465c59fd1ccc5a7ea9cc52f7832ab Mon Sep 17 00:00:00 2001 From: jneira Date: Mon, 13 Sep 2021 13:07:38 +0200 Subject: [PATCH 08/15] Add rename demo and last pr --- ChangeLog.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ChangeLog.md b/ChangeLog.md index 555aaa30ad..1a589b0dc1 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -7,6 +7,7 @@ After a month of vacation a new hls release has arrived: - Support for ghc 8.10.6 and 8.10.7 - The ormolu formatter plugin works with ghc 9.0.1 - We have a *new brand plugin to let you rename indentifiers* thanks to @OliverMadine's great work +![rename-demo](https://user-images.githubusercontent.com/30090176/133071923-b3d91b2a-619f-4151-ab76-ca50442e5ab4.gif) - *Call hierarchy plugin has been improved* thanks to @July541: - Add call from type signature - Add call from a function pattern @@ -19,6 +20,8 @@ After a month of vacation a new hls release has arrived: ### Pull requests merged for 1.4.0 +- Update flake to fix nix builds +([#2188](https://github.com/haskell/haskell-language-server/pull/2188)) by @jneira - Completions for project identifiers ([#2187](https://github.com/haskell/haskell-language-server/pull/2187)) by @pepeiborra - Add rerun workflow From 9f467160b588b3723ea02dfa8d65e953f922dbbe Mon Sep 17 00:00:00 2001 From: jneira Date: Mon, 13 Sep 2021 13:21:11 +0200 Subject: [PATCH 09/15] Restore significant whitespaces --- ChangeLog.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index 1a589b0dc1..f245fb10b4 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -306,15 +306,15 @@ We have finally released a new version of Haskell Language Server! Thanks for all contributors, many bugs has been fixed, and many features has landed. Here are the summary of changes: -- Basic support for GHC 9.0.1 is added. +- Basic support for GHC 9.0.1 is added. 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). -- Support for GHC 8.10.5 is added. +- Support for GHC 8.10.5 is added. 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). -- HLS wrapper and GHCIDE session loader uses the same logic with implicit-hie. +- HLS wrapper and GHCIDE session loader uses the same logic with implicit-hie. This fixes [a build issue](https://github.com/haskell/haskell-language-server/issues/1782) of a stack project with implicit `hie.yaml` . - Wingman plugin has added numerous features and fixed many bugs: - - It now supports tactic metaprogramming! - 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). + - It now supports tactic metaprogramming! + 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). ![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) - "Refine hole" and "Split all function arguments" code actions are publicly opened. - "Empty case split" code lens is added. From bb3a4f00fb1386e5542529cb91e930e3e548f78f Mon Sep 17 00:00:00 2001 From: jneira Date: Mon, 13 Sep 2021 13:30:27 +0200 Subject: [PATCH 10/15] Correct grammar --- docs/contributing/releases.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/contributing/releases.md b/docs/contributing/releases.md index 63ab4ca96a..2ddb8475bf 100644 --- a/docs/contributing/releases.md +++ b/docs/contributing/releases.md @@ -138,10 +138,10 @@ more details We aim to do hackage releases following the github ones described above. To help in that job we have added a [github workflow](https://github.com/haskell/haskell-language-server/blob/master/.github/workflows/hackage.yml) -That script check, generates the tar.gz files, unpack thems and build them in isolation against hackage head +That script checks, generates the tar.gz files, unpacks and builds them in isolation against hackage head if the package version in the branch is different from hackage. If the package in the branch has the same version as the released one, -it will check the relevant files have not changed and will thorw an error -in other case. +it will check the relevant files have not changed and will throw an error +otherwise. The script will upload the tarballs as candidates, maintainers will have -to check them and publish them definitely. +to check and publish them definitely. From 919f3352929ea40c74f74fa3104ec1fb224a006d Mon Sep 17 00:00:00 2001 From: jneira Date: Mon, 13 Sep 2021 13:33:50 +0200 Subject: [PATCH 11/15] Add some newlines --- docs/contributing/releases.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/contributing/releases.md b/docs/contributing/releases.md index 2ddb8475bf..d43e07a2f6 100644 --- a/docs/contributing/releases.md +++ b/docs/contributing/releases.md @@ -138,10 +138,12 @@ more details We aim to do hackage releases following the github ones described above. To help in that job we have added a [github workflow](https://github.com/haskell/haskell-language-server/blob/master/.github/workflows/hackage.yml) + That script checks, generates the tar.gz files, unpacks and builds them in isolation against hackage head if the package version in the branch is different from hackage. If the package in the branch has the same version as the released one, it will check the relevant files have not changed and will throw an error otherwise. + The script will upload the tarballs as candidates, maintainers will have to check and publish them definitely. From 1971fd056e57a3fb6b97f4389edeed5826f9ee6d Mon Sep 17 00:00:00 2001 From: jneira Date: Mon, 13 Sep 2021 22:00:09 +0200 Subject: [PATCH 12/15] Bump up versions --- ghcide/ghcide.cabal | 2 +- haskell-language-server.cabal | 4 ++-- plugins/hls-brittany-plugin/hls-brittany-plugin.cabal | 2 +- .../hls-call-hierarchy-plugin/hls-call-hierarchy-plugin.cabal | 2 +- plugins/hls-class-plugin/hls-class-plugin.cabal | 2 +- .../hls-explicit-imports-plugin.cabal | 2 +- plugins/hls-ormolu-plugin/hls-ormolu-plugin.cabal | 2 +- plugins/hls-pragmas-plugin/hls-pragmas-plugin.cabal | 2 +- plugins/hls-retrie-plugin/hls-retrie-plugin.cabal | 2 +- plugins/hls-tactics-plugin/hls-tactics-plugin.cabal | 2 +- shake-bench/shake-bench.cabal | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ghcide/ghcide.cabal b/ghcide/ghcide.cabal index ca358d012d..5a1dca79ef 100644 --- a/ghcide/ghcide.cabal +++ b/ghcide/ghcide.cabal @@ -2,7 +2,7 @@ cabal-version: 2.4 build-type: Simple category: Development name: ghcide -version: 1.4.1.0 +version: 1.4.2.0 license: Apache-2.0 license-file: LICENSE author: Digital Asset and Ghcide contributors diff --git a/haskell-language-server.cabal b/haskell-language-server.cabal index 8dd9e26a0d..9ed034eb94 100644 --- a/haskell-language-server.cabal +++ b/haskell-language-server.cabal @@ -1,7 +1,7 @@ cabal-version: 2.4 category: Development name: haskell-language-server -version: 1.3.0.0 +version: 1.4.0.0 synopsis: LSP server for GHC description: Please see the README on GitHub at @@ -240,7 +240,7 @@ common retrie common tactic if flag(tactic) || flag(all-plugins) - build-depends: hls-tactics-plugin >=1.2.0.0 && <1.4 + build-depends: hls-tactics-plugin >=1.2.0.0 && <1.5 cpp-options: -Dtactic common hlint diff --git a/plugins/hls-brittany-plugin/hls-brittany-plugin.cabal b/plugins/hls-brittany-plugin/hls-brittany-plugin.cabal index b84e81779e..fb7e57cfbe 100644 --- a/plugins/hls-brittany-plugin/hls-brittany-plugin.cabal +++ b/plugins/hls-brittany-plugin/hls-brittany-plugin.cabal @@ -1,6 +1,6 @@ cabal-version: 2.4 name: hls-brittany-plugin -version: 1.0.0.2 +version: 1.0.1.0 synopsis: Integration with the Brittany code formatter description: Please see the README on GitHub at diff --git a/plugins/hls-call-hierarchy-plugin/hls-call-hierarchy-plugin.cabal b/plugins/hls-call-hierarchy-plugin/hls-call-hierarchy-plugin.cabal index 5d6ac8b9b8..85a8cbb59b 100644 --- a/plugins/hls-call-hierarchy-plugin/hls-call-hierarchy-plugin.cabal +++ b/plugins/hls-call-hierarchy-plugin/hls-call-hierarchy-plugin.cabal @@ -1,6 +1,6 @@ cabal-version: 2.4 name: hls-call-hierarchy-plugin -version: 1.0.0.2 +version: 1.0.1.0 synopsis: Call hierarchy plugin for Haskell Language Server description: Please see the README on GitHub at diff --git a/plugins/hls-class-plugin/hls-class-plugin.cabal b/plugins/hls-class-plugin/hls-class-plugin.cabal index ee34a4525f..76e0c31a17 100644 --- a/plugins/hls-class-plugin/hls-class-plugin.cabal +++ b/plugins/hls-class-plugin/hls-class-plugin.cabal @@ -1,6 +1,6 @@ cabal-version: 2.4 name: hls-class-plugin -version: 1.0.0.3 +version: 1.0.1.0 synopsis: Class/instance management plugin for Haskell Language Server diff --git a/plugins/hls-explicit-imports-plugin/hls-explicit-imports-plugin.cabal b/plugins/hls-explicit-imports-plugin/hls-explicit-imports-plugin.cabal index cde982cf6f..276c8b567d 100644 --- a/plugins/hls-explicit-imports-plugin/hls-explicit-imports-plugin.cabal +++ b/plugins/hls-explicit-imports-plugin/hls-explicit-imports-plugin.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: hls-explicit-imports-plugin -version: 1.0.0.4 +version: 1.0.1.0 synopsis: Explicit imports plugin for Haskell Language Server description: Please see the README on GitHub at diff --git a/plugins/hls-ormolu-plugin/hls-ormolu-plugin.cabal b/plugins/hls-ormolu-plugin/hls-ormolu-plugin.cabal index 49c3de1656..89cd715fab 100644 --- a/plugins/hls-ormolu-plugin/hls-ormolu-plugin.cabal +++ b/plugins/hls-ormolu-plugin/hls-ormolu-plugin.cabal @@ -1,6 +1,6 @@ cabal-version: 2.4 name: hls-ormolu-plugin -version: 1.0.0.1 +version: 1.0.1.0 synopsis: Integration with the Ormolu code formatter description: Please see the README on GitHub at diff --git a/plugins/hls-pragmas-plugin/hls-pragmas-plugin.cabal b/plugins/hls-pragmas-plugin/hls-pragmas-plugin.cabal index e6ea969f06..2096fe4f9d 100644 --- a/plugins/hls-pragmas-plugin/hls-pragmas-plugin.cabal +++ b/plugins/hls-pragmas-plugin/hls-pragmas-plugin.cabal @@ -1,6 +1,6 @@ cabal-version: 2.4 name: hls-pragmas-plugin -version: 1.0.0.1 +version: 1.0.1.0 synopsis: Pragmas plugin for Haskell Language Server description: Please see the README on GitHub at diff --git a/plugins/hls-retrie-plugin/hls-retrie-plugin.cabal b/plugins/hls-retrie-plugin/hls-retrie-plugin.cabal index 7b9f1c190e..277cb904f0 100644 --- a/plugins/hls-retrie-plugin/hls-retrie-plugin.cabal +++ b/plugins/hls-retrie-plugin/hls-retrie-plugin.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: hls-retrie-plugin -version: 1.0.1.1 +version: 1.0.1.2 synopsis: Retrie integration plugin for Haskell Language Server description: Please see the README on GitHub at diff --git a/plugins/hls-tactics-plugin/hls-tactics-plugin.cabal b/plugins/hls-tactics-plugin/hls-tactics-plugin.cabal index ef9e605202..d1c82d8a36 100644 --- a/plugins/hls-tactics-plugin/hls-tactics-plugin.cabal +++ b/plugins/hls-tactics-plugin/hls-tactics-plugin.cabal @@ -1,7 +1,7 @@ cabal-version: 2.4 category: Development name: hls-tactics-plugin -version: 1.3.0.0 +version: 1.4.0.0 synopsis: Wingman plugin for Haskell Language Server description: Please see the README on GitHub at diff --git a/shake-bench/shake-bench.cabal b/shake-bench/shake-bench.cabal index 8b98cff58c..250bc302c6 100644 --- a/shake-bench/shake-bench.cabal +++ b/shake-bench/shake-bench.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: shake-bench -version: 0.1.0.1 +version: 0.1.0.2 synopsis: Build rules for historical benchmarking license: Apache-2.0 license-file: LICENSE From ce6767e0ea5b03638e926ceb9fdc34d07f2e5859 Mon Sep 17 00:00:00 2001 From: jneira Date: Tue, 14 Sep 2021 08:47:12 +0200 Subject: [PATCH 13/15] Complete Changelog --- ChangeLog.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index f245fb10b4..a03ef42189 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -12,18 +12,29 @@ After a month of vacation a new hls release has arrived: - Add call from type signature - Add call from a function pattern - Go to typeclass instance directly +- As usual @isovector has been busy improving wingman plugin: + - New "intro and destruct" code action + - Streaming tactic solutions: when Wingman times outs, it can still pick the best solution it found + - Let-bindings in metattactics: allows you to bind variables in tactic metaprogram + - Several bug fixes - We have new docs thanks to @michaelpj: - Now you can ask the executable for included plugins with: `haskell-language-server --list-plugins` -- *DEPRECATION NOTICE*: after this release we will drop support for ghc versions: 8.6.4, 8.10.3 and 8.10.4 - - The advise is upgrade ghc to the last minor version: 8.6.5 or 8.10.7 - There are several bug fixes and features you can found in the merged pull requests list +### DEPRECATION NOTICE + +- *After* this release we will drop support for ghc versions 8.6.4, 8.10.3 and 8.10.4 + - The advise is upgrade ghc to the last minor version: 8.6.5 or 8.10.7 + - Take a look to [this issue](https://github.com/haskell/haskell-language-server/issues/2168) for more details + ### Pull requests merged for 1.4.0 - Update flake to fix nix builds ([#2188](https://github.com/haskell/haskell-language-server/pull/2188)) by @jneira - Completions for project identifiers ([#2187](https://github.com/haskell/haskell-language-server/pull/2187)) by @pepeiborra +- Wingman: Don't clobber where clauses +([#2184](https://github.com/haskell/haskell-language-server/pull/2184)) by @isovector - Add rerun workflow ([#2181](https://github.com/haskell/haskell-language-server/pull/2181)) by @jneira - Bump up shake-bench version From 692a26e2b358adf212f346b26eb9299103309593 Mon Sep 17 00:00:00 2001 From: jneira Date: Tue, 14 Sep 2021 09:45:58 +0200 Subject: [PATCH 14/15] Ignoring time resolution test --- ghcide/test/exe/Main.hs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ghcide/test/exe/Main.hs b/ghcide/test/exe/Main.hs index d3a896a785..109a5cbb5b 100644 --- a/ghcide/test/exe/Main.hs +++ b/ghcide/test/exe/Main.hs @@ -5784,10 +5784,11 @@ unitTests = do actualOrder <- liftIO $ readIORef orderRef liftIO $ actualOrder @?= reverse [(1::Int)..20] - , testCase "timestamps have millisecond resolution" $ do - resolution_us <- findResolution_us 1 - let msg = printf "Timestamps do not have millisecond resolution: %dus" resolution_us - assertBool msg (resolution_us <= 1000) + , ignoreTestBecause "The test fails sometimes showing 10000us" $ + testCase "timestamps have millisecond resolution" $ do + resolution_us <- findResolution_us 1 + let msg = printf "Timestamps do not have millisecond resolution: %dus" resolution_us + assertBool msg (resolution_us <= 1000) , Progress.tests ] From e42172e40a5cc0a7e61eec15579b2de68a18fb95 Mon Sep 17 00:00:00 2001 From: jneira Date: Tue, 14 Sep 2021 10:50:20 +0200 Subject: [PATCH 15/15] Remove reference to rename plugin --- ChangeLog.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index a03ef42189..cb8997cf09 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -6,8 +6,6 @@ After a month of vacation a new hls release has arrived: - Support for ghc 8.10.6 and 8.10.7 - The ormolu formatter plugin works with ghc 9.0.1 -- We have a *new brand plugin to let you rename indentifiers* thanks to @OliverMadine's great work -![rename-demo](https://user-images.githubusercontent.com/30090176/133071923-b3d91b2a-619f-4151-ab76-ca50442e5ab4.gif) - *Call hierarchy plugin has been improved* thanks to @July541: - Add call from type signature - Add call from a function pattern @@ -317,15 +315,15 @@ We have finally released a new version of Haskell Language Server! Thanks for all contributors, many bugs has been fixed, and many features has landed. Here are the summary of changes: -- Basic support for GHC 9.0.1 is added. +- Basic support for GHC 9.0.1 is added. 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). -- Support for GHC 8.10.5 is added. +- Support for GHC 8.10.5 is added. 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). -- HLS wrapper and GHCIDE session loader uses the same logic with implicit-hie. +- HLS wrapper and GHCIDE session loader uses the same logic with implicit-hie. This fixes [a build issue](https://github.com/haskell/haskell-language-server/issues/1782) of a stack project with implicit `hie.yaml` . - Wingman plugin has added numerous features and fixed many bugs: - - It now supports tactic metaprogramming! - 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). + - It now supports tactic metaprogramming! + 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). ![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) - "Refine hole" and "Split all function arguments" code actions are publicly opened. - "Empty case split" code lens is added.