Skip to content

Commit 311107e

Browse files
authored
Prepare 1.5.0 (#2361)
* Use hackage version of czipwith * Update stack.yaml's * Remove source czipwith * Update index and clean cabal-ghc921.project * extra-1.7.9 has a breaking change so no way * Increase resources for circleci As for November 16, circleci has set a timeout of 1 hour for jobs in free plans Trying to increase resources to make the build faster as suggested by its support center * Use more threads reduce build times * Correct runs-on field * Update stack.yaml's * Dont fail fast if we are checking * Use ref_name to check it is a check * Bump patch version of brittany plugin * Allow newer base/th for czipwith * Add enough allow-newers to allow build the project Having all subpackages included in the `packages` field * Correct allow-newer's * Add missing cd's * Bump up ghcide to 1.5.0 * Exclude pkgs not buildable with 9.0.1 * Bum up plugins with changes versions * Bum up subpackages with changes versions * Bum up hls version to 1.5.0 * Bump up haddock plugin version * Allow ghcide 1.5 * Use ghcide 1.5.0 in the rest of plugins * Use ghcide 1.5.0 for pragmas * Allow tactics 1.5.0 for hls * Remove czipwith in hackage ci script * Disable 9.0.1 for hackage ci * Use bounds operator consistently * Build formatters with newer ghc-lib-parser * Only stylish-haskell needs newer ghc-lib * Avoid ghc-9.0.1 in other way * Script needs a min time version * First draft of 1.5.0 changelog * Comment out hackage for 9.0.1 * allow newer ghc-lib-parser * Remove redundant entry * Correct condition * Cancel previous hackage jobs * Add link to pepe's talk slides * Use th-extras master * Use th-extras master and uncomment packages * add extra-1.7.9 * Add required extra-deps * Comment unbuildable packages again * Add ignore-plugins-ghc-bounds * Add #2354 * Complete ghc deprecation notice * Add extra-1.7.9 * Add #2346 to Changelog
1 parent 07042d4 commit 311107e

File tree

28 files changed

+288
-63
lines changed

28 files changed

+288
-63
lines changed

.github/workflows/hackage.yml

+38-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
name: Hackage
22

3+
# See: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#concurrency.
4+
concurrency:
5+
group: ${{ github.head_ref }}-${{ github.workflow }}
6+
cancel-in-progress: true
7+
38
on:
49
push:
510
branches:
@@ -9,6 +14,7 @@ jobs:
914
check-and-upload-tarballs:
1015
runs-on: ubuntu-latest
1116
strategy:
17+
fail-fast: ${{ !contains(github.ref_name, 'check') }}
1218
matrix:
1319
package: ["hie-compat", "hls-graph", "shake-bench",
1420
"hls-plugin-api", "ghcide", "hls-test-utils",
@@ -21,7 +27,20 @@ jobs:
2127
"hls-splice-plugin", "hls-tactics-plugin",
2228
"hls-call-hierarchy-plugin",
2329
"haskell-language-server"]
24-
ghc: ["9.0.1", "8.10.7", "8.8.4", "8.6.5"]
30+
# Uncomment 9.0.1 when ghcide is buildable
31+
ghc: [ # "9.0.1",
32+
"8.10.7",
33+
"8.8.4",
34+
"8.6.5"]
35+
exclude:
36+
- ghc: "9.0.1"
37+
package: "hls-brittany-plugin"
38+
- ghc: "9.0.1"
39+
package: "hls-stylish-haskell-plugin"
40+
- ghc: "9.0.1"
41+
package: "hls-class-plugin"
42+
- ghc: "9.0.1"
43+
package: "hls-tactics-plugin"
2544

2645
steps:
2746

@@ -96,8 +115,23 @@ jobs:
96115
run: |
97116
cd $(ls -d ./incoming/${{ matrix.package }}-*)
98117
echo "packages: . ../../* ../../plugins/*" > cabal.project
118+
119+
- name: "Add temporary needed allow-newer"
120+
if: steps.get-hackage-version.outputs.exists != 'true'
121+
run: |
122+
# TODO: remove when not needed
123+
cd $(ls -d ./incoming/${{ matrix.package }}-*)
124+
echo "allow-newer: Chart-diagrams:diagrams-core, SVGFonts:diagrams-core," >> cabal.project
125+
126+
- name: "Add temporary needed allow-newer for ghc-9.0"
127+
if: steps.get-hackage-version.outputs.exists != 'true' && matrix.ghc == '9.0.1'
128+
run: |
99129
# TODO: remove when not needed
100-
echo "allow-newer: Chart-diagrams:diagrams-core, SVGFonts:diagrams-core" >> cabal.project
130+
cd $(ls -d ./incoming/${{ matrix.package }}-*)
131+
# For brittany
132+
echo " brittany:base, brittany:ghc, brittany:ghc-boot-th, butcher:base, multistate:base, data-tree-print:base," >> cabal.project
133+
# For floskell and stylish-haskell
134+
echo " floskell:base, floskell:ghc-prim, stylish-haskell:Cabal,stylish-haskell:ghc-lib-parser," >> cabal.project
101135
102136
- name: "Build all package components in isolation"
103137
if: steps.get-hackage-version.outputs.exists != 'true'
@@ -112,14 +146,14 @@ jobs:
112146
cabal haddock --haddock-for-hackage
113147
114148
- name: "Upload package dist tarball"
115-
if: steps.get-hackage-version.outputs.exists != 'true'
149+
if: steps.get-hackage-version.outputs.exists != 'true' && matrix.ghc == '8.10.7'
116150
uses: actions/upload-artifact@v2
117151
with:
118152
name: ${{ matrix.package }}
119153
path: ${{ steps.generate-dist-tarball.outputs.path }}
120154

121155
upload-candidate:
122-
if: ${{ !contains(github.head_ref, 'check') }}
156+
if: ${{ !contains(github.ref_name, 'check') }}
123157
needs: check-and-upload-tarballs
124158
runs-on: ubuntu-latest
125159
steps:

ChangeLog.md

+175
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,178 @@
11
# Changelog for haskell-language-server
22

3+
## 1.5.0
4+
5+
Time for another hls release:
6+
7+
- @pepeiborra has done an epic work to improve performance, redefining some of the core pieces of HLS
8+
- You can take an overall look to improvements in [these slides](https://drive.google.com/file/d/16FpmiHXX_rd2gAf5XVgWAIr4kg-AkUqX/view)
9+
- We have fourmolu support for ghc-9.0.1 thanks to @georgefst
10+
- We have got improvements over import suggestions thanks to @yoshitsugu and @alexnaspo
11+
- Completions also has been improved in general thanks to @pepeiborra
12+
- There have been lot of documentation updates by several contributors, thanks also to all of you
13+
- In this release we still don't have full support for all plugins and ghc-9.0.1
14+
- Missing plugins for ghc-9.0.1 are: hls-class-plugin, hls-tactics-plugin (wingman), hls-brittany-plugin and hls-stylish-haskell-plugin
15+
16+
### Deprecation notice for 1.5.0
17+
18+
- As we noted in the previous release we have dropped support for ghc versions 8.6.4, 8.10.2, 8.10.3, 8.10.4 in *this release*
19+
- We will drop support for ghc versions 8.10.5 and 8.8.3 *after this release*
20+
- The advise is upgrade ghc to the last minor version: 8.6.5, 8.8.4 or 8.10.7
21+
- You can read more about ghc deprecation policy and schedule [here](https://haskell-language-server.readthedocs.io/en/latest/supported-versions.html)
22+
23+
### Pull requests merged for 1.5.0
24+
25+
- More completion fixes
26+
([#2354](https://github.com/haskell/haskell-language-server/pull/2354)) by @pepeiborra
27+
- Update to latest prettyprinter API
28+
([#2352](https://github.com/haskell/haskell-language-server/pull/2352)) by @fendor
29+
- Use hackage version of czipwith
30+
([#2346](https://github.com/haskell/haskell-language-server/pull/2346)) by @jneira
31+
- Show build graph statistics in ghcide-bench
32+
([#2343](https://github.com/haskell/haskell-language-server/pull/2343)) by @pepeiborra
33+
- contributing: add implicit-hie gen-hie > hie.yaml note
34+
([#2341](https://github.com/haskell/haskell-language-server/pull/2341)) by @Anton-Latukha
35+
- add dependabot: add Actions CI merge requests automation
36+
([#2339](https://github.com/haskell/haskell-language-server/pull/2339)) by @Anton-Latukha
37+
- Skip parsing without haddock for above GHC9.0
38+
([#2338](https://github.com/haskell/haskell-language-server/pull/2338)) by @yoshitsugu
39+
- Give unique names to post-jobs
40+
([#2337](https://github.com/haskell/haskell-language-server/pull/2337)) by @jneira
41+
- Cancel prev runs for bench and nix
42+
([#2335](https://github.com/haskell/haskell-language-server/pull/2335)) by @jneira
43+
- Trace diagnostics
44+
([#2333](https://github.com/haskell/haskell-language-server/pull/2333)) by @pepeiborra
45+
- Include sortText in completions and improve suggestions
46+
([#2332](https://github.com/haskell/haskell-language-server/pull/2332)) by @pepeiborra
47+
- Not suggest exported imports
48+
([#2329](https://github.com/haskell/haskell-language-server/pull/2329)) by @yoshitsugu
49+
- Update troubleshooting section
50+
([#2326](https://github.com/haskell/haskell-language-server/pull/2326)) by @jneira
51+
- Remove automatic comment to [skip circleci]
52+
([#2325](https://github.com/haskell/haskell-language-server/pull/2325)) by @jneira
53+
- Add README.md in install/ subproject
54+
([#2324](https://github.com/haskell/haskell-language-server/pull/2324)) by @sir4ur0n
55+
- Improve the performance of GetModIfaceFromDisk in large repos and delete GetDependencies
56+
([#2323](https://github.com/haskell/haskell-language-server/pull/2323)) by @pepeiborra
57+
- Add support for install hls from hackage using ghc 9.0.1
58+
([#2322](https://github.com/haskell/haskell-language-server/pull/2322)) by @jneira
59+
- Rename hlint test data files and add regression tests
60+
([#2321](https://github.com/haskell/haskell-language-server/pull/2321)) by @jneira
61+
- Suggest hiding imports when local definition exists
62+
([#2320](https://github.com/haskell/haskell-language-server/pull/2320)) by @yoshitsugu
63+
- Improve trace readability
64+
([#2319](https://github.com/haskell/haskell-language-server/pull/2319)) by @pepeiborra
65+
- Sir4ur0n/doc/cleanup hie
66+
([#2311](https://github.com/haskell/haskell-language-server/pull/2311)) by @sir4ur0n
67+
- Add option to effectively cancel prev runs
68+
([#2310](https://github.com/haskell/haskell-language-server/pull/2310)) by @jneira
69+
- Separate features from demos
70+
([#2307](https://github.com/haskell/haskell-language-server/pull/2307)) by @jneira
71+
- Prevent Tactics hover provider from blocking at startup
72+
([#2306](https://github.com/haskell/haskell-language-server/pull/2306)) by @pepeiborra
73+
- Fix defaultIdeOptions to use the initial config settings
74+
([#2302](https://github.com/haskell/haskell-language-server/pull/2302)) by @pepeiborra
75+
- Use new queue rules for mergify bot
76+
([#2301](https://github.com/haskell/haskell-language-server/pull/2301)) by @jneira
77+
- Fix reverse dep. tracking for alwaysRerun rules
78+
([#2298](https://github.com/haskell/haskell-language-server/pull/2298)) by @pepeiborra
79+
- Reorganize github workflows and use specific label [skip circleci]
80+
([#2297](https://github.com/haskell/haskell-language-server/pull/2297)) by @jneira
81+
- Enable func-test suite for windows
82+
([#2296](https://github.com/haskell/haskell-language-server/pull/2296)) by @jneira
83+
- Generate linkables in the Eval plugin
84+
([#2295](https://github.com/haskell/haskell-language-server/pull/2295)) by @pepeiborra
85+
- [hls-graph] clean up databaseDirtySet
86+
([#2294](https://github.com/haskell/haskell-language-server/pull/2294)) by @pepeiborra
87+
- Update link to supported platforms by ghcup
88+
([#2293](https://github.com/haskell/haskell-language-server/pull/2293)) by @chshersh
89+
- Make circleci honour [skip ci] wherever is placed in the pr info (title, description)
90+
([#2289](https://github.com/haskell/haskell-language-server/pull/2289)) by @jneira
91+
- Note in the install script that listed ghcs are the supported ones
92+
([#2286](https://github.com/haskell/haskell-language-server/pull/2286)) by @jneira
93+
- Move hlint tests to its own package (and other clean ups)
94+
([#2284](https://github.com/haskell/haskell-language-server/pull/2284)) by @jneira
95+
- Trace rebuilds
96+
([#2283](https://github.com/haskell/haskell-language-server/pull/2283)) by @pepeiborra
97+
- Fix excessive interface recompilation caused by the Tactics plugin
98+
([#2282](https://github.com/haskell/haskell-language-server/pull/2282)) by @pepeiborra
99+
- Preserve dirty set and add dirtiness assertion
100+
([#2279](https://github.com/haskell/haskell-language-server/pull/2279)) by @pepeiborra
101+
- Ignore null WatchedFile events
102+
([#2278](https://github.com/haskell/haskell-language-server/pull/2278)) by @pepeiborra
103+
- Trace log events and fix ghcide logger
104+
([#2277](https://github.com/haskell/haskell-language-server/pull/2277)) by @pepeiborra
105+
- Point to GitHub from Contributing.md
106+
([#2275](https://github.com/haskell/haskell-language-server/pull/2275)) by @georgefst
107+
- installation.md: add Fedora copr repo
108+
([#2274](https://github.com/haskell/haskell-language-server/pull/2274)) by @juhp
109+
- avoid double rebuilds for FOIs
110+
([#2266](https://github.com/haskell/haskell-language-server/pull/2266)) by @pepeiborra
111+
- Update installation on ArchLinux - new package
112+
([#2265](https://github.com/haskell/haskell-language-server/pull/2265)) by @marcin-rzeznicki
113+
- Garbage collection of dirty keys
114+
([#2263](https://github.com/haskell/haskell-language-server/pull/2263)) by @pepeiborra
115+
- Add lsp-mode links
116+
([#2260](https://github.com/haskell/haskell-language-server/pull/2260)) by @jneira
117+
- Add more features and demos in docs
118+
([#2257](https://github.com/haskell/haskell-language-server/pull/2257)) by @jneira
119+
- Add nix installation section
120+
([#2256](https://github.com/haskell/haskell-language-server/pull/2256)) by @jneira
121+
- Bump Fourmolu to 0.4
122+
([#2254](https://github.com/haskell/haskell-language-server/pull/2254)) by @georgefst
123+
- Remove custom version of operational
124+
([#2249](https://github.com/haskell/haskell-language-server/pull/2249)) by @jneira
125+
- Generate custom source tarball
126+
([#2248](https://github.com/haskell/haskell-language-server/pull/2248)) by @jneira
127+
- Enable the ghcide test plugin in HLS test suites
128+
([#2243](https://github.com/haskell/haskell-language-server/pull/2243)) by @pepeiborra
129+
- Partial sort of fuzzy filtering results
130+
([#2240](https://github.com/haskell/haskell-language-server/pull/2240)) by @pepeiborra
131+
- Fix build with fbghc
132+
([#2234](https://github.com/haskell/haskell-language-server/pull/2234)) by @pepeiborra
133+
- Tweaks to GHC support docs
134+
([#2232](https://github.com/haskell/haskell-language-server/pull/2232)) by @michaelpj
135+
- Add ghc deprecation policy to documentation
136+
([#2231](https://github.com/haskell/haskell-language-server/pull/2231)) by @jneira
137+
- Add ghcup compile option
138+
([#2230](https://github.com/haskell/haskell-language-server/pull/2230)) by @jneira
139+
- Parallel fuzzy filtering
140+
([#2225](https://github.com/haskell/haskell-language-server/pull/2225)) by @pepeiborra
141+
- Revert "Inline Text.Fuzzy to add INLINABLE pragmas"
142+
([#2223](https://github.com/haskell/haskell-language-server/pull/2223)) by @pepeiborra
143+
- feat(flake): expose hie-bios
144+
([#2221](https://github.com/haskell/haskell-language-server/pull/2221)) by @teto
145+
- flake: remove the 'follows' directive
146+
([#2218](https://github.com/haskell/haskell-language-server/pull/2218)) by @teto
147+
- Return completions lazily for massive savings
148+
([#2217](https://github.com/haskell/haskell-language-server/pull/2217)) by @pepeiborra
149+
- Inline Text.Fuzzy to add INLINABLE pragmas
150+
([#2215](https://github.com/haskell/haskell-language-server/pull/2215)) by @pepeiborra
151+
- Add chat on irc badge
152+
([#2214](https://github.com/haskell/haskell-language-server/pull/2214)) by @jneira
153+
- ghcide: Add flags to toggle building each executable
154+
([#2212](https://github.com/haskell/haskell-language-server/pull/2212)) by @hololeap
155+
- Add matrix haskell-tooling channel
156+
([#2210](https://github.com/haskell/haskell-language-server/pull/2210)) by @jneira
157+
- Relax upper bounds over ormolu and stylish-haskell
158+
([#2207](https://github.com/haskell/haskell-language-server/pull/2207)) by @jneira
159+
- Add missing config options in documentation
160+
([#2203](https://github.com/haskell/haskell-language-server/pull/2203)) by @jneira
161+
- Add gitlab CI
162+
([#2200](https://github.com/haskell/haskell-language-server/pull/2200)) by @hasufell
163+
- Apply workaround for 8.8.4 and windows to enable it in ci
164+
([#2199](https://github.com/haskell/haskell-language-server/pull/2199)) by @jneira
165+
- Drop ghc support for 8.6.4, 8.10.2, 8.10.3, 8.10.4
166+
([#2197](https://github.com/haskell/haskell-language-server/pull/2197)) by @jneira
167+
- Consider all root paths when suggesting module name change.
168+
([#2195](https://github.com/haskell/haskell-language-server/pull/2195)) by @cdsmith
169+
- enable completions of local imports
170+
([#2190](https://github.com/haskell/haskell-language-server/pull/2190)) by @alexnaspo
171+
- Drop ghc-api-compat from dependency closure
172+
([#2128](https://github.com/haskell/haskell-language-server/pull/2128)) by @fendor
173+
- Reimplement shake (continued)
174+
([#2060](https://github.com/haskell/haskell-language-server/pull/2060)) by @pepeiborra
175+
3176
## 1.4.0
4177

5178
After a month of vacation a new hls release has arrived:
@@ -27,6 +200,8 @@ After a month of vacation a new hls release has arrived:
27200

28201
### Pull requests merged for 1.4.0
29202

203+
- Prepare 1.4.0
204+
([#2182](https://github.com/haskell/haskell-language-server/pull/2182)) by @jneira
30205
- Update flake to fix nix builds
31206
([#2188](https://github.com/haskell/haskell-language-server/pull/2188)) by @jneira
32207
- Completions for project identifiers

GenChangelogs.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env cabal
22
{- cabal:
3-
build-depends: base, process, text, github, time
3+
build-depends: base, process, text, github, time >= 1.9
44
-}
55

66
{-# LANGUAGE OverloadedStrings #-}

cabal-ghc901.project

+24-9
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ packages:
66
./ghcide
77
./hls-plugin-api
88
./hls-test-utils
9-
-- ./plugins/hls-tactics-plugin
10-
-- ./plugins/hls-brittany-plugin
11-
-- ./plugins/hls-stylish-haskell-plugin
9+
./plugins/hls-tactics-plugin
10+
./plugins/hls-brittany-plugin
11+
./plugins/hls-stylish-haskell-plugin
1212
./plugins/hls-fourmolu-plugin
13-
-- ./plugins/hls-class-plugin
13+
./plugins/hls-class-plugin
1414
./plugins/hls-eval-plugin
1515
./plugins/hls-explicit-imports-plugin
1616
./plugins/hls-refine-imports-plugin
@@ -35,10 +35,10 @@ package *
3535

3636
source-repository-package
3737
type: git
38-
location: https://github.com/anka-213/th-extras
39-
tag: 57a97b4df128eb7b360e8ab9c5759392de8d1659
40-
-- https://github.com/mokus0/th-extras/pull/8
41-
-- https://github.com/mokus0/th-extras/issues/7
38+
location: https://github.com/mokus0/th-extras
39+
tag: 0d050b24ec5ef37c825b6f28ebd46787191e2a2d
40+
-- https://github.com/mokus0/th-extras/issues/10
41+
4242

4343
source-repository-package
4444
type: git
@@ -53,11 +53,26 @@ index-state: 2021-11-11T19:25:51Z
5353

5454
constraints:
5555
-- These plugins don't work on GHC9 yet
56-
haskell-language-server +ignore-plugins-ghc-bounds -brittany -class -stylishhaskell -tactic
56+
haskell-language-server +ignore-plugins-ghc-bounds -brittany -class -stylishhaskell -tactic,
57+
ghc-lib-parser ^>= 9.0
5758

59+
-- although we are not building all plugins cabal solver phase is run for all packages
60+
-- this way we track explicitly all transitive dependencies which need support for ghc-9
5861
allow-newer:
62+
brittany:base,
63+
brittany:ghc,
64+
brittany:ghc-boot-th,
65+
-- for brittany
66+
butcher:base,
67+
multistate:base,
68+
data-tree-print:base,
69+
70+
stylish-haskell:Cabal,
71+
stylish-haskell:ghc-lib-parser,
72+
5973
floskell:base,
6074
floskell:ghc-prim,
75+
6176
-- for shake-bench
6277
Chart-diagrams:diagrams-core,
6378
SVGFonts:diagrams-core

0 commit comments

Comments
 (0)