Skip to content

Commit

Permalink
Merge branch 'master' into enhance/integration-tests-perf
Browse files Browse the repository at this point in the history
  • Loading branch information
fendor authored Oct 16, 2023
2 parents 2747a15 + c0f7d4c commit be15be6
Show file tree
Hide file tree
Showing 146 changed files with 710 additions and 2,252 deletions.
2 changes: 1 addition & 1 deletion .github/actions/setup-build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ runs:
sudo chown -R $USER /usr/local/.ghcup
shell: bash

- uses: haskell/actions/[email protected].6
- uses: haskell/actions/[email protected].7
id: HaskEnvSetup
with:
ghc-version : ${{ inputs.ghc }}
Expand Down
4 changes: 2 additions & 2 deletions .github/scripts/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ download_cabal_cache "$HOME/.local/bin/cabal-cache"
# build
ghcup install ghc "${GHC_VERSION}"
ghcup set ghc "${GHC_VERSION}"
(cd .. && ecabal update) # run cabal update outside project dir
sed -i.bak -e '/DELETE MARKER FOR CI/,/END DELETE/d' cabal.project # see comment in cabal.project
ecabal update
ecabal user-config diff
ecabal user-config init -f
"ghc-${GHC_VERSION}" --info
Expand Down Expand Up @@ -56,7 +57,6 @@ case "$(uname)" in
cp "$(cabal list-bin -v0 ${args[@]} exe:hls-wrapper)" "$CI_PROJECT_DIR/out/${ARTIFACT}/haskell-language-server-wrapper${ext}"
;;
*)
sed -i.bak -e '/DELETE MARKER FOR CI/,/END DELETE/d' cabal.project # see comment in cabal.project
emake --version
emake GHCUP=ghcup CABAL_CACHE_BIN=cabal-cache.sh S3_HOST="${S3_HOST}" S3_KEY="${ARTIFACT}" GHC_VERSION="${GHC_VERSION}" hls-ghc
;;
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ jobs:
example: ['cabal', 'lsp-types']

steps:
- uses: haskell/actions/[email protected].6
- uses: haskell/actions/[email protected].7
with:
ghc-version : ${{ matrix.ghc }}
cabal-version: ${{ matrix.cabal }}
Expand Down
21 changes: 15 additions & 6 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
strategy:
fail-fast: false
matrix:
ghc: ["9.6.2", "9.4.7", "9.2.8", "9.0.2"]
ghc: ["9.8.1", "9.6.3", "9.4.7", "9.2.8", "9.0.2"]
platform: [ { image: "debian:9"
, installCmd: "sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list && sed -i 's|security.debian.org|archive.debian.org/|g' /etc/apt/sources.list && sed -i /-updates/d /etc/apt/sources.list && apt-get update && apt-get install -y"
, toolRequirements: "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf"
Expand Down Expand Up @@ -145,7 +145,16 @@ jobs:
, ARTIFACT: "x86_64-linux-unknown"
, ADD_CABAL_ARGS: "--enable-split-sections"
}
- ghc: 9.6.2
- ghc: 9.6.3
platform:
{ image: "rockylinux:8"
, installCmd: "yum -y install epel-release && yum install -y --allowerasing"
, toolRequirements: "autoconf automake binutils bzip2 coreutils curl elfutils-devel elfutils-libs findutils gcc gcc-c++ git gmp gmp-devel jq lbzip2 make ncurses ncurses-compat-libs ncurses-devel openssh-clients patch perl pxz python3 sqlite sudo wget which xz zlib-devel patchelf"
, DISTRO: "Unknown"
, ARTIFACT: "x86_64-linux-unknown"
, ADD_CABAL_ARGS: "--enable-split-sections"
}
- ghc: 9.8.1
platform:
{ image: "rockylinux:8"
, installCmd: "yum -y install epel-release && yum install -y --allowerasing"
Expand Down Expand Up @@ -213,7 +222,7 @@ jobs:
strategy:
fail-fast: true
matrix:
ghc: ["9.6.2", "9.4.7", "9.2.8", "9.0.2"]
ghc: ["9.8.1", "9.6.3", "9.4.7", "9.2.8", "9.0.2"]
steps:
- uses: docker://arm64v8/ubuntu:focal
name: Cleanup (aarch64 linux)
Expand Down Expand Up @@ -273,7 +282,7 @@ jobs:
strategy:
fail-fast: false
matrix:
ghc: ["9.6.2", "9.4.7", "9.2.8", "9.0.2"]
ghc: ["9.8.1", "9.6.3", "9.4.7", "9.2.8", "9.0.2"]
steps:
- name: Checkout code
uses: actions/checkout@v3
Expand Down Expand Up @@ -318,7 +327,7 @@ jobs:
strategy:
fail-fast: false
matrix:
ghc: ["9.6.2", "9.4.7", "9.2.8"]
ghc: ["9.8.1", "9.6.3", "9.4.7", "9.2.8"]
steps:
- name: Checkout code
uses: actions/checkout@v3
Expand Down Expand Up @@ -363,7 +372,7 @@ jobs:
strategy:
fail-fast: false
matrix:
ghc: ["9.6.2", "9.4.7", "9.2.8", "9.0.2"]
ghc: ["9.8.1", "9.6.3", "9.4.7", "9.2.8", "9.0.2"]
steps:
- name: install windows deps
shell: pwsh
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/supported-ghc-versions.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[ "9.6", "9.4" , "9.2" , "9.0" ]
[ "9.8", "9.6", "9.4" , "9.2" , "9.0" ]
22 changes: 11 additions & 11 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -135,15 +135,15 @@ jobs:
HLS_WRAPPER_TEST_EXE: hls-wrapper
run: cabal test wrapper-test --test-options="$TEST_OPTS --rerun-log-file .tasty-rerun-log-wrapper"

- if: matrix.test
- if: matrix.test && !startsWith(matrix.ghc,'9.8')
name: Test hls-refactor-plugin
run: cabal test hls-refactor-plugin --test-options="$TEST_OPTS" || cabal test hls-refactor-plugin --test-options="$TEST_OPTS"

- if: matrix.test && matrix.ghc != '9.6'
- if: matrix.test && matrix.ghc != '9.6' && !startsWith(matrix.ghc,'9.8')
name: Test hls-floskell-plugin
run: cabal test hls-floskell-plugin --test-options="$TEST_OPTS" || cabal test hls-floskell-plugin --test-options="$TEST_OPTS"

- if: matrix.test
- if: matrix.test && !startsWith(matrix.ghc,'9.8')
name: Test hls-class-plugin
run: cabal test hls-class-plugin --test-options="$TEST_OPTS" || cabal test hls-class-plugin --test-options="$TEST_OPTS"

Expand All @@ -155,19 +155,19 @@ jobs:
name: Test hls-eval-plugin
run: cabal test hls-eval-plugin --test-options="$TEST_OPTS" || cabal test hls-eval-plugin --test-options="$TEST_OPTS"

- if: matrix.test
- if: matrix.test && !startsWith(matrix.ghc,'9.8')
name: Test hls-splice-plugin
run: cabal test hls-splice-plugin --test-options="$TEST_OPTS" || cabal test hls-splice-plugin --test-options="$TEST_OPTS"

- if: matrix.test
- if: matrix.test && !startsWith(matrix.ghc,'9.8')
name: Test hls-stylish-haskell-plugin
run: cabal test hls-stylish-haskell-plugin --test-options="$TEST_OPTS" || cabal test hls-stylish-haskell-plugin --test-options="$TEST_OPTS"

- if: matrix.test
- if: matrix.test && !startsWith(matrix.ghc,'9.8')
name: Test hls-ormolu-plugin
run: cabal test hls-ormolu-plugin --test-options="$TEST_OPTS" || cabal test hls-ormolu-plugin --test-options="$TEST_OPTS"

- if: matrix.test
- if: matrix.test && !startsWith(matrix.ghc,'9.8')
name: Test hls-fourmolu-plugin
run: cabal test hls-fourmolu-plugin --test-options="$TEST_OPTS" || cabal test hls-fourmolu-plugin --test-options="$TEST_OPTS"

Expand All @@ -179,11 +179,11 @@ jobs:
name: Test hls-call-hierarchy-plugin test suite
run: cabal test hls-call-hierarchy-plugin --test-options="$TEST_OPTS" || cabal test hls-call-hierarchy-plugin --test-options="$TEST_OPTS"

- if: matrix.test && matrix.os != 'windows-latest'
- if: matrix.test && matrix.os != 'windows-latest' && !startsWith(matrix.ghc,'9.8')
name: Test hls-rename-plugin test suite
run: cabal test hls-rename-plugin --test-options="$TEST_OPTS" || cabal test hls-rename-plugin --test-options="$TEST_OPTS"

- if: matrix.test
- if: matrix.test && !startsWith(matrix.ghc,'9.8')
name: Test hls-hlint-plugin test suite
run: cabal test hls-hlint-plugin --test-options="$TEST_OPTS" || cabal test hls-hlint-plugin --test-options="$TEST_OPTS"

Expand All @@ -207,7 +207,7 @@ jobs:
name: Test hls-change-type-signature test suite
run: cabal test hls-change-type-signature-plugin --test-options="$TEST_OPTS" || cabal test hls-change-type-signature-plugin --test-options="$TEST_OPTS"

- if: matrix.test
- if: matrix.test && !startsWith(matrix.ghc,'9.8')
name: Test hls-gadt-plugin test suit
run: cabal test hls-gadt-plugin --test-options="$TEST_OPTS" || cabal test hls-gadt-plugin --test-options="$TEST_OPTS"

Expand All @@ -228,7 +228,7 @@ jobs:
name: Test hls-cabal-plugin test suite
run: cabal test hls-cabal-plugin --test-options="$TEST_OPTS" || cabal test hls-cabal-plugin --test-options="$TEST_OPTS"

- if: matrix.test
- if: matrix.test && !startsWith(matrix.ghc,'9.8')
name: Test hls-retrie-plugin test suite
run: cabal test hls-retrie-plugin --test-options="$TEST_OPTS" || cabal test hls-retrie-plugin --test-options="$TEST_OPTS"

Expand Down
3 changes: 2 additions & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
/ghcide/session-loader @pepeiborra @fendor
/hls-graph @pepeiborra
/hls-plugin-api @berberman
/hls-test-utils
/hls-test-utils @fendor
/test @fendor
/hie-compat

# Plugins
Expand Down
77 changes: 77 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,82 @@
# Changelog for haskell-language-server

## 2.4.0.0

* Initial support for GHC 9.8.1, without plugins dependent on `ghc-exactprint`
* Fix broken Windows binaries (#3822)

### Pull Requests

- Remove constraint on stm-hamt
([#3829](https://github.com/haskell/haskell-language-server/pull/3829)) by @iMichka
- Cleanup func-test suite
([#3828](https://github.com/haskell/haskell-language-server/pull/3828)) by @fendor
- Bump haskell/actions from 2.4.6 to 2.4.7 in /.github/actions/setup-build
([#3824](https://github.com/haskell/haskell-language-server/pull/3824)) by @dependabot[bot]
- Bump haskell/actions from 2.4.6 to 2.4.7
([#3823](https://github.com/haskell/haskell-language-server/pull/3823)) by @dependabot[bot]
- Release 2.3.0.0
([#3818](https://github.com/haskell/haskell-language-server/pull/3818)) by @wz1000
- GHC 9.8 support
([#3727](https://github.com/haskell/haskell-language-server/pull/3727)) by @wz1000

## 2.3.0.0

* Binaries for GHC 9.6.3
* Drop support for GHC 8.10
* Remove `hls-haddock-comments-plugin`, `hls-stan-plugin`, and `hls-tactics-plugin`
* Don't suggest bogus modules names in `hls-module-name-plugin` (#3784)
* Add support for external Ormolu (#3771)
* Improve refine imports behaviour for qualified imports (#3806)

### Pull Requests

- Switch chat room to matrix
([#3817](https://github.com/haskell/haskell-language-server/pull/3817)) by @July541
- Fix flaky hie bios test
([#3814](https://github.com/haskell/haskell-language-server/pull/3814)) by @fendor
- Revert "Bump actions/checkout from 3 to 4"
([#3813](https://github.com/haskell/haskell-language-server/pull/3813)) by @wz1000
- Add test directories to hls-retrie-plugin
([#3808](https://github.com/haskell/haskell-language-server/pull/3808)) by @Vekhir
- Change refine imports behaviour for qualified imports
([#3806](https://github.com/haskell/haskell-language-server/pull/3806)) by @joyfulmantis
- Update links to Nix documentation
([#3805](https://github.com/haskell/haskell-language-server/pull/3805)) by @maralorn
- Bump actions/checkout from 3 to 4
([#3802](https://github.com/haskell/haskell-language-server/pull/3802)) by @dependabot[bot]
- Bump cachix/install-nix-action from 22 to 23
([#3801](https://github.com/haskell/haskell-language-server/pull/3801)) by @dependabot[bot]
- Add support for Fourmolu 0.14.0.0
([#3796](https://github.com/haskell/haskell-language-server/pull/3796)) by @brandonchinn178
- Add code lens and fix code actions experiments
([#3791](https://github.com/haskell/haskell-language-server/pull/3791)) by @joyfulmantis
- Bump lsp versions in flake
([#3790](https://github.com/haskell/haskell-language-server/pull/3790)) by @colonelpanic8
- Clean up Release CI
([#3787](https://github.com/haskell/haskell-language-server/pull/3787)) by @fendor
- Do not suggest bogus module names
([#3784](https://github.com/haskell/haskell-language-server/pull/3784)) by @Bodigrim
- Delete `hls-haddock-comments-plugin`, `hls-stan-plugin`, and `hls-tactics-plugin`
([#3782](https://github.com/haskell/haskell-language-server/pull/3782)) by @michaelpj
- Enhance/releasing checklist
([#3781](https://github.com/haskell/haskell-language-server/pull/3781)) by @fendor
- Add cradle dependencies to session loading errors
([#3779](https://github.com/haskell/haskell-language-server/pull/3779)) by @VeryMilkyJoe
- Prepare release 2.2.0.0
([#3775](https://github.com/haskell/haskell-language-server/pull/3775)) by @fendor
- Add support for external Ormolu
([#3771](https://github.com/haskell/haskell-language-server/pull/3771)) by @sir4ur0n
- Support for resolve for class-plugin lenses
([#3769](https://github.com/haskell/haskell-language-server/pull/3769)) by @joyfulmantis
- Introduce declarative test project definition for plugin tests
([#3767](https://github.com/haskell/haskell-language-server/pull/3767)) by @fendor
- Use latest version of fourmolu possible
([#3764](https://github.com/haskell/haskell-language-server/pull/3764)) by @brandonchinn178
- Drop support for GHC 8.10
([#3434](https://github.com/haskell/haskell-language-server/pull/3434)) by @michaelpj


## 2.2.0.0

* Binaries for GHC 9.4.7
Expand Down
2 changes: 1 addition & 1 deletion GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ BINDIST_BASE_DIR := out/bindist/$(ARTIFACT)
BINDIST_OUT_DIR := $(BINDIST_BASE_DIR)/haskell-language-server-$(HLS_VERSION)

CABAL_BASE_ARGS ?= --store-dir=$(ROOT_DIR)/$(STORE_DIR)
CABAL_ARGS ?= --disable-tests --disable-profiling -O2
CABAL_ARGS ?= --disable-tests --disable-profiling -O2 $(ADD_CABAL_ARGS)
CABAL_INSTALL_ARGS ?= --overwrite-policy=always --install-method=copy
CABAL_INSTALL := $(CABAL) $(CABAL_BASE_ARGS) v2-install
PROJECT_FILE := cabal.project
Expand Down
81 changes: 43 additions & 38 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -34,46 +34,26 @@ packages:
./plugins/hls-refactor-plugin
./plugins/hls-overloaded-record-dot-plugin

-- Standard location for temporary packages needed for particular environments
-- For example it is used in the project gitlab mirror to help in the MAcOS M1 build script
-- See https://github.com/haskell/haskell-language-server/blob/master/.gitlab-ci.yml
optional-packages: vendored/*/*.cabal
index-state: 2023-10-06T06:12:29Z

tests: True
test-show-details: direct

-- mfsolve has duplicate instances in its test suite
-- See: https://github.com/kuribas/mfsolve/issues/8
package mfsolve
tests: False

package *
ghc-options: -haddock
test-show-details: direct
benchmarks: True

write-ghc-environment-files: never

index-state: 2023-09-08T00:00:00Z
-- Make sure dependencies are build with haddock so we get
-- haddock shown on hover
package *
ghc-options: -haddock

constraints:
-- For GHC 9.4, older versions of entropy fail to build on Windows
entropy >= 0.4.1.10,
-- For GHC 9.4
basement >= 0.0.15,
-- For GHC 9.4
hw-prim >= 0.6.3.2,
hyphenation +embed,
-- remove this when hlint sets ghc-lib to true by default
-- https://github.com/ndmitchell/hlint/issues/1376
hlint +ghc-lib,
-- C++ is hard to distribute, especially on older GHCs
-- See https://github.com/haskell/haskell-language-server/issues/3822
text -simdutf,
ghc-check -ghc-check-use-package-abis,
ghc-lib-parser-ex -auto,
stylish-haskell +ghc-lib,
fourmolu -fixity-th,
setup.happy == 1.20.1.1,
happy == 1.20.1.1,
filepath installed,
-- for ghc 8.10, stm-hamt 1.2.0.10 doesn't build
stm-hamt < 1.2.0.10,
-- Centos 7 comes with an old gcc version that doesn't know about
-- the flag '-fopen-simd', which blocked the release 2.2.0.0.
-- We want to be able to benefit from the performance optimisations
Expand All @@ -93,13 +73,38 @@ source-repository-package
tag: 7a0af7a8fd38045fd15fb13445bdcc7085325460
-- END DELETE

allow-newer:
-- ghc-9.4
ekg-json:base,
ekg-wai:time,
if impl(ghc >= 9.1)
-- ekg packagess are old and unmaintained, but we
-- don't rely on them for the mainline build, so
-- this is okay
allow-newer:
ekg-json:base,
ekg-wai:time,
ekg-core:ghc-prim

if impl(ghc >= 9.5)
if impl(ghc >= 9.7)
allow-newer:
-- ghc-9.6
ekg-core:ghc-prim,
stm-hamt:transformers,
base,
template-haskell,
ghc,
ghc-prim,
integer-gmp,
ghc-bignum,
template-haskell,
text,
binary,
bytestring,
Cabal,
unix,
deepseq,

repository head.hackage.ghc.haskell.org
url: https://ghc.gitlab.haskell.org/head.hackage/
secure: True
key-threshold: 3
root-keys:
f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89
26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329
7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d

active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org
8 changes: 5 additions & 3 deletions docs/support/ghc-version-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,13 @@ Support status (see the support policy below for more details):

| GHC version | Last supporting HLS version | Support status |
|--------------|--------------------------------------------------------------------------------------|-----------------------------------------------------------------------------|
| 9.6.2 | [latest](https://github.com/haskell/haskell-language-server/releases/latest) | basic support |
| 9.8.1 | [latest](https://github.com/haskell/haskell-language-server/releases/latest) | initial support |
| 9.6.3 | [latest](https://github.com/haskell/haskell-language-server/releases/latest) | basic support |
| 9.6.2 | [2.2.0.0](https://github.com/haskell/haskell-language-server/releases/latest) | basic support |
| 9.6.1 | [2.0.0.0](https://github.com/haskell/haskell-language-server/releases/tag/2.0.0.0) | basic support |
| 9.4.7 | [latest](https://github.com/haskell/haskell-language-server/releases/latest) | full support |
| 9.4.6 | [latest](https://github.com/haskell/haskell-language-server/releases/latest) | full support |
| 9.4.5 | [latest](https://github.com/haskell/haskell-language-server/releases/latest) | full support |
| 9.4.6 | [2.2.0.0](https://github.com/haskell/haskell-language-server/releases/latest) | full support |
| 9.4.5 | [2.2.0.0](https://github.com/haskell/haskell-language-server/releases/latest) | full support |
| 9.4.4 | [1.10.0.0](https://github.com/haskell/haskell-language-server/releases/tag/1.10.0.0) | deprecated |
| 9.4.3 | [1.9.1.0](https://github.com/haskell/haskell-language-server/releases/tag/1.9.1.0) | deprecated |
| 9.4.(1,2) | [1.8.0.0](https://github.com/haskell/haskell-language-server/releases/tag/1.8.0.0) | deprecated |
Expand Down
Loading

0 comments on commit be15be6

Please sign in to comment.