Skip to content

Commit

Permalink
Add GHC 8.10.5 support (#1899)
Browse files Browse the repository at this point in the history
* Add GHC 8.10.5

* Remove GHC 8.10.2

* Fix cabal build

* Downgrade bench to 8.10.4 as master do not have 8.10.5

* Add missing window builds

* Update ghc-api-compat location

* Mark a test as broken in GHC 8.10.5

* Exclude ghc 8.10.5 for MacOS CI

* Update build.yml

* Revert "Remove GHC 8.10.2"

This reverts commit b85b029.
  • Loading branch information
Ailrun authored Jun 10, 2021
1 parent 7ea2f65 commit 7ba6279
Show file tree
Hide file tree
Showing 19 changed files with 167 additions and 25 deletions.
6 changes: 6 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,11 @@ jobs:
- STACK_FILE: "stack-8.10.4.yaml"
<<: *defaults

ghc-8.10.5:
environment:
- STACK_FILE: "stack-8.10.5.yaml"
<<: *defaults

ghc-9.0.1:
environment:
- STACK_FILE: "stack-9.0.1.yaml"
Expand All @@ -126,5 +131,6 @@ workflows:
- ghc-8.10.2
- ghc-8.10.3
- ghc-8.10.4
- ghc-8.10.5
- ghc-9.0.1
- ghc-default
12 changes: 7 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
strategy:
fail-fast: false
matrix:
ghc: ['8.10.4', '8.10.3', '8.10.2', '8.8.4', '8.8.3', '8.8.2', '8.6.5', '8.6.4']
ghc: ['8.10.5', '8.10.4', '8.10.3', '8.10.2', '8.8.4', '8.8.3', '8.8.2', '8.6.5', '8.6.4']
os: [ubuntu-18.04, macOS-latest, windows-latest]
exclude:
- os: windows-latest
Expand All @@ -27,6 +27,8 @@ jobs:
ghc: '8.8.3' # fails due to segfault
- os: windows-latest
ghc: '8.8.2' # fails due to error with Cabal
- os: macOS-latest
ghc: '8.10.5' # https://gitlab.haskell.org/ghc/ghc/-/issues/19968
include:
- os: windows-latest
ghc: '8.10.2.2' # only available for windows and choco
Expand Down Expand Up @@ -113,11 +115,11 @@ jobs:
path: ${{ steps.compress_server_binary.outputs.path }}

- name: Build Wrapper
if: matrix.ghc == '8.10.4'
if: matrix.ghc == '8.10.5'
run: cabal build exe:hls-wrapper -O2 $LINUX_CABAL_ARGS

- name: Compress Wrapper Binary
if: matrix.ghc == '8.10.4'
if: matrix.ghc == '8.10.5'
id: compress_wrapper_binary
run: |
HLS_WRAPPER_BUILD=$(find dist-newstyle \( -name 'hls-wrapper' -o -name 'hls-wrapper.exe' \) -type f)
Expand All @@ -136,7 +138,7 @@ jobs:
fi
- name: Upload Wrapper
if: matrix.ghc == '8.10.4'
if: matrix.ghc == '8.10.5'
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -147,7 +149,7 @@ jobs:
asset_content_type: ${{ steps.compress_wrapper_binary.outputs.content_type}}

- uses: actions/upload-artifact@v2
if: matrix.ghc == '8.10.4'
if: matrix.ghc == '8.10.5'
with:
name: haskell-language-server-wrapper-${{ runner.OS }}${{env.EXE_EXT}}.${{ steps.compress_wrapper_binary.outputs.extension }}
path: ${{ steps.compress_wrapper_binary.outputs.path }}
Expand Down
24 changes: 16 additions & 8 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,36 +33,44 @@ jobs:
strategy:
fail-fast: true
matrix:
ghc: ["9.0.1", "8.10.4", "8.10.3", "8.10.2", "8.8.4", "8.8.3", "8.8.2", "8.6.5", "8.6.4"]
ghc: ["9.0.1", "8.10.5", "8.10.4", "8.10.3", "8.10.2", "8.8.4", "8.8.3", "8.8.2", "8.6.5", "8.6.4"]
os: [ubuntu-latest, macOS-latest]
include:
# only test supported ghc major versions
- os: ubuntu-latest
ghc: '9.0.1'
test: true
- os: ubuntu-latest
ghc: '8.10.4'
test: true
- os: windows-latest
ghc: '8.10.4'
ghc: '8.10.5'
test: true
- os: ubuntu-latest
ghc: '8.8.4'
test: true
- os: ubuntu-latest
ghc: '8.6.5'
test: true
# only build rest of supported ghc versions for windows
# Disable window test temporarily because choco does not have GHC 8.10.5 yet
- os: windows-latest
ghc: '8.6.5'
ghc: '8.10.5'
test: true
# only build rest of supported ghc versions for windows
- os: windows-latest
ghc: '8.10.2.2'
ghc: '8.10.4'
- os: windows-latest
ghc: '8.10.3'
- os: windows-latest
ghc: '8.10.2.2'
- os: windows-latest
ghc: '8.6.5'
test: true
# This build get stuck frequently
# - os: windows-latest
# ghc: '8.6.4'
exclude:
# Not able to build 'network' package
# See https://gitlab.haskell.org/ghc/ghc/-/issues/19968
- os: macOS-latest
ghc: '8.10.5'

steps:
- if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
Expand Down
2 changes: 1 addition & 1 deletion cabal-ghc901.project
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ source-repository-package
source-repository-package
type: git
location: https://github.com/hsyl20/ghc-api-compat
tag: 6178d75772c7d923918dfffa0b1f503dfb36d0a6
tag: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15

source-repository-package
type: git
Expand Down
6 changes: 6 additions & 0 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@ package *
ghc-options: -haddock
test-show-details: direct

-- ghc-api-compat-8.6
source-repository-package
type: git
location: https://github.com/hsyl20/ghc-api-compat
tag: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15

write-ghc-environment-files: never

index-state: 2021-05-21T05:01:41Z
Expand Down
3 changes: 3 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@
pkgs.haskellPackages.ghc.version);
ghc884 = pkgs.hlsHpkgs "ghc884";
ghc8104 = pkgs.hlsHpkgs "ghc8104";
ghc8105 = pkgs.hlsHpkgs "ghc8105";
ghc901 = pkgs.hlsHpkgs "ghc901";

# Create a development shell of hls project
Expand Down Expand Up @@ -216,12 +217,14 @@
haskell-language-server-dev = mkDevShell ghcDefault;
haskell-language-server-884-dev = mkDevShell ghc884;
haskell-language-server-8104-dev = mkDevShell ghc8104;
haskell-language-server-8105-dev = mkDevShell ghc8105;
haskell-language-server-901-dev = mkDevShell ghc901;

# hls package
haskell-language-server = mkExe ghcDefault;
haskell-language-server-884 = mkExe ghc884;
haskell-language-server-8104 = mkExe ghc8104;
haskell-language-server-8105 = mkExe ghc8105;
haskell-language-server-901 = mkExe ghc901;
};

Expand Down
2 changes: 1 addition & 1 deletion ghcide/ghcide.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ description:
A library for building Haskell IDE's on top of the GHC API.
homepage: https://github.com/haskell/haskell-language-server/tree/master/ghcide#readme
bug-reports: https://github.com/haskell/haskell-language-server/issues
tested-with: GHC == 8.6.4 || == 8.6.5 || == 8.8.2 || == 8.8.3 || == 8.8.4 || == 8.10.2 || == 8.10.3 || == 8.10.4 || == 9.0.1
tested-with: GHC == 8.6.4 || == 8.6.5 || == 8.8.2 || == 8.8.3 || == 8.8.4 || == 8.10.2 || == 8.10.3 || == 8.10.4 || == 8.10.5 || == 9.0.1
extra-source-files: README.md CHANGELOG.md
test/data/**/*.project
test/data/**/*.cabal
Expand Down
3 changes: 3 additions & 0 deletions ghcide/test/exe/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -3653,6 +3653,9 @@ checkFileCompiles fp diag =
pluginSimpleTests :: TestTree
pluginSimpleTests =
ignoreInWindowsForGHC88And810 $
#if __GLASGOW_HASKELL__ == 810 && __GLASGOW_HASKELL_PATCHLEVEL1__ == 5
expectFailBecause "known broken (see GHC #19763)" $
#endif
testSessionWithExtraFiles "plugin-knownnat" "simple plugin" $ \dir -> do
_ <- openDoc (dir </> "KnownNat.hs") "haskell"
liftIO $ writeFile (dir</>"hie.yaml")
Expand Down
2 changes: 1 addition & 1 deletion haskell-language-server.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ copyright: The Haskell IDE Team
license: Apache-2.0
license-file: LICENSE
build-type: Simple
tested-with: GHC == 8.6.4 || == 8.6.5 || == 8.8.2 || == 8.8.3 || == 8.8.4 || == 8.10.2 || == 8.10.3 || == 8.10.4
tested-with: GHC == 8.6.4 || == 8.6.5 || == 8.8.2 || == 8.8.3 || == 8.8.4 || == 8.10.2 || == 8.10.3 || == 8.10.4 || == 8.10.5
extra-source-files:
README.md
ChangeLog.md
Expand Down
4 changes: 3 additions & 1 deletion stack-8.10.2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@ extra-deps:
- data-tree-print-0.1.0.2@rev:2
- floskell-0.10.4
- fourmolu-0.3.0.0
- ghc-api-compat-8.6
- # ghc-api-compat-8.6
github: hsyl20/ghc-api-compat
commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15
- ghc-check-0.5.0.4
- ghc-exactprint-0.6.4
- ghc-lib-8.10.4.20210206
Expand Down
4 changes: 3 additions & 1 deletion stack-8.10.3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@ extra-deps:
- data-tree-print-0.1.0.2@rev:2
- floskell-0.10.4
- fourmolu-0.3.0.0
- ghc-api-compat-8.6
- # ghc-api-compat-8.6
github: hsyl20/ghc-api-compat
commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15
- ghc-check-0.5.0.4
- ghc-exactprint-0.6.4
- ghc-lib-8.10.4.20210206
Expand Down
4 changes: 3 additions & 1 deletion stack-8.10.4.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@ extra-deps:
- data-tree-print-0.1.0.2@rev:2
- floskell-0.10.4
- fourmolu-0.3.0.0
- ghc-api-compat-8.6
- # ghc-api-compat-8.6
github: hsyl20/ghc-api-compat
commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15
- ghc-check-0.5.0.4
- ghc-exactprint-0.6.4
- heapsize-0.3.0
Expand Down
98 changes: 98 additions & 0 deletions stack-8.10.5.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# Fixme once GHC-8.10.5 LTS is out
resolver: nightly-2021-06-01
compiler: ghc-8.10.5

packages:
- .
- ./hie-compat
- ./hls-graph
- ./ghcide/
- ./hls-plugin-api
- ./hls-test-utils
# - ./shake-bench
- ./plugins/hls-class-plugin
- ./plugins/hls-haddock-comments-plugin
- ./plugins/hls-eval-plugin
- ./plugins/hls-explicit-imports-plugin
- ./plugins/hls-refine-imports-plugin
- ./plugins/hls-hlint-plugin
- ./plugins/hls-retrie-plugin
- ./plugins/hls-splice-plugin
- ./plugins/hls-tactics-plugin
- ./plugins/hls-brittany-plugin
- ./plugins/hls-stylish-haskell-plugin
- ./plugins/hls-floskell-plugin
- ./plugins/hls-fourmolu-plugin
- ./plugins/hls-pragmas-plugin
- ./plugins/hls-module-name-plugin
- ./plugins/hls-ormolu-plugin

ghc-options:
"$everything": -haddock

extra-deps:
- apply-refact-0.9.3.0
- brittany-0.13.1.2
- Cabal-3.0.2.0
- clock-0.7.2
- data-tree-print-0.1.0.2@rev:2
- floskell-0.10.5
- fourmolu-0.3.0.0
- # ghc-api-compat-8.6
github: hsyl20/ghc-api-compat
commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15
- ghc-check-0.5.0.4
- ghc-exactprint-0.6.4
- heapsize-0.3.0
- implicit-hie-cradle-0.3.0.2
- implicit-hie-0.1.2.5
- monad-dijkstra-0.1.1.2
- refinery-0.3.0.0
- retrie-1.0.0.0
- stylish-haskell-0.12.2.0
- semigroups-0.18.5
- temporary-1.2.1.1
- th-compat-0.1.2@sha256:3d55de1adc542c1a870c9ada90da2fbbe5f4e8bcd3eed545a55c3df9311b32a8,2854
- bytestring-encoding-0.1.0.0@sha256:460b49779fbf0112e8e2f1753c1ed9131eb18827600c298f4d6bb51c4e8c1c0d,1727
- hiedb-0.3.0.1
- lsp-1.2.0.0
- lsp-types-1.2.0.0
- lsp-test-0.14.0.0
- dependent-map-0.4.0.0@sha256:ca2b131046f4340a1c35d138c5a003fe4a5be96b14efc26291ed35fd08c62221,1657
- dependent-sum-0.7.1.0@sha256:5599aa89637db434431b1dd3fa7c34bc3d565ee44f0519bfbc877be1927c2531,2068
- dependent-sum-template-0.1.0.3@sha256:0bbbacdfbd3abf2a15aaf0cf2c27e5bdd159b519441fec39e1e6f2f54424adde,1682
- constraints-extras-0.3.1.0
- some-1.0.1@sha256:26e5bab7276f48b25ea8660d3fd1166c0f20fd497dac879a40f408e23211f93e,2055
- unliftio-core-0.2.0.1@sha256:9b3e44ea9aacacbfc35b3b54015af450091916ac3618a41868ebf6546977659a,1082

# Enable these when supported by all formatters
# - ghc-lib-9.0.1.20210324@sha256:c8b9a2541ea3424c8d0e4f80584477d0f35be03f4a47d931152042d5f446c5fc,19279
# - ghc-lib-parser-9.0.1.20210324@sha256:fb680f78d4ab08b5d089a05bda3b84ad857e5edcc2e4ca7c188c0207d369af80
# - ghc-lib-parser-ex-9.0.0.4@sha256:8282b11c3797fc8ba225b245e736cc9a0745d9c48d0f9fea7f9bffb5c9997709,3642
# - hlint-3.3@sha256:4218ad6e03050f5d68aeba0e025f5f05e366c8fd49657f2a19df04ee31b2bb23,4154

configure-options:
ghcide:
- --disable-library-for-ghci
haskell-language-server:
- --disable-library-for-ghci
heapsize:
- --disable-library-for-ghci

flags:
haskell-language-server:
pedantic: true
retrie:
BuildExecutable: false
# Stack doesn't support automatic flags.
# Until the formatters support ghc-lib-9, we need this flag disabled
hls-hlint-plugin:
hlint33: false

# Because of implicit-hie-cradle-0.3.0.2 and stylish-haskell-0.12.2.0
allow-newer: true

nix:
packages: [ icu libcxx zlib ]

concurrent-tests: false
4 changes: 3 additions & 1 deletion stack-8.6.4.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ extra-deps:
- floskell-0.10.4
- fourmolu-0.3.0.0
- fuzzy-0.1.0.0
- ghc-api-compat-8.6
- # ghc-api-compat-8.6
github: hsyl20/ghc-api-compat
commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15
- ghc-check-0.5.0.4
- ghc-events-0.13.0
- ghc-exactprint-0.6.4
Expand Down
4 changes: 3 additions & 1 deletion stack-8.6.5.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@ extra-deps:
- floskell-0.10.4
- fourmolu-0.3.0.0
- fuzzy-0.1.0.0
- ghc-api-compat-8.6
- # ghc-api-compat-8.6
github: hsyl20/ghc-api-compat
commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15
- ghc-check-0.5.0.4
- ghc-events-0.13.0
- ghc-exactprint-0.6.4
Expand Down
4 changes: 3 additions & 1 deletion stack-8.8.2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ extra-deps:
- constrained-dynamic-0.1.0.0
- floskell-0.10.4
- fourmolu-0.3.0.0
- ghc-api-compat-8.6
- # ghc-api-compat-8.6
github: hsyl20/ghc-api-compat
commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15
- ghc-check-0.5.0.4
- ghc-events-0.13.0
- ghc-exactprint-0.6.4
Expand Down
4 changes: 3 additions & 1 deletion stack-8.8.3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ extra-deps:
- constrained-dynamic-0.1.0.0
- floskell-0.10.4
- fourmolu-0.3.0.0
- ghc-api-compat-8.6
- # ghc-api-compat-8.6
github: hsyl20/ghc-api-compat
commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15
- ghc-check-0.5.0.4
- ghc-exactprint-0.6.4
- ghc-lib-8.10.4.20210206
Expand Down
4 changes: 3 additions & 1 deletion stack-8.8.4.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ extra-deps:
- constrained-dynamic-0.1.0.0
- floskell-0.10.4
- fourmolu-0.3.0.0
- ghc-api-compat-8.6
- # ghc-api-compat-8.6
github: hsyl20/ghc-api-compat
commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15
- ghc-check-0.5.0.4
- ghc-exactprint-0.6.4
- ghc-lib-8.10.4.20210206
Expand Down
2 changes: 1 addition & 1 deletion stack-9.0.1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ extra-deps:
# https://github.com/mpickering/hie-bios/pull/285

- github: hsyl20/ghc-api-compat
commit: 6178d75772c7d923918dfffa0b1f503dfb36d0a6
commit: 8fee87eac97a538dbe81ff1ab18cff10f2f9fa15

- github: anka-213/th-extras
commit: 57a97b4df128eb7b360e8ab9c5759392de8d1659
Expand Down

0 comments on commit 7ba6279

Please sign in to comment.