Skip to content

Commit ae772a2

Browse files
committed
Merge branch 'master' into cabal-plugin-outline-view
2 parents aeca984 + f523690 commit ae772a2

File tree

255 files changed

+2834
-3343
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

255 files changed

+2834
-3343
lines changed

.circleci/config.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -58,16 +58,16 @@ defaults: &defaults
5858

5959
version: 2
6060
jobs:
61-
stackage-lts21:
61+
stackage-lts22:
6262
docker:
63-
- image: haskell:9.4.8-slim-buster
63+
- image: haskell:9.6.5-slim-buster
6464
environment:
65-
- STACK_FILE: "stack-lts21.yaml"
65+
- STACK_FILE: "stack-lts22.yaml"
6666
<<: *defaults
6767

6868
stackage-nightly:
6969
docker:
70-
- image: haskell:9.6.4-slim-buster
70+
- image: haskell:9.8.2-slim-buster
7171
environment:
7272
- STACK_FILE: "stack.yaml"
7373
<<: *defaults
@@ -76,5 +76,5 @@ workflows:
7676
version: 2
7777
multiple-ghcs:
7878
jobs:
79-
- stackage-lts21
79+
- stackage-lts22
8080
- stackage-nightly

.github/scripts/env.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ fi
1111
export PATH="$HOME/.local/bin:$PATH"
1212

1313
export BOOTSTRAP_HASKELL_NONINTERACTIVE=1
14-
export BOOTSTRAP_HASKELL_CABAL_VERSION="${CABAL_VER:-3.10.2.0}"
14+
export BOOTSTRAP_HASKELL_CABAL_VERSION="${CABAL_VER:-3.10.3.0}"
1515
export BOOTSTRAP_HASKELL_ADJUST_CABAL_CONFIG=no
1616
export BOOTSTRAP_HASKELL_INSTALL_NO_STACK=yes
1717
export BOOTSTRAP_HASKELL_ADJUST_BASHRC=1

.github/scripts/test.sh

+17-4
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,25 @@ set -eux
88
. .github/scripts/env.sh
99
. .github/scripts/common.sh
1010

11-
test_package="bytestring-0.11.1.0"
12-
test_module="Data/ByteString.hs"
11+
test_package="text-2.1.1"
12+
test_module="src/Data/Text.hs"
1313

1414
create_cradle() {
1515
echo "cradle:" > hie.yaml
1616
echo " cabal:" >> hie.yaml
1717
}
1818

19+
# Tests and benchmarks can't be built on some GHC versions, such as GHC 9.10.1 on Windows.
20+
# Disable these packages for now, building bytestring-0.12.1.0 works completely fine.
21+
create_cabal_project() {
22+
echo "packages: ./" > cabal.project
23+
echo "" >> cabal.project
24+
echo "tests: False" >> cabal.project
25+
echo "benchmarks: False" >> cabal.project
26+
27+
echo "flags: -simdutf -pure-haskell" >> cabal.project
28+
}
29+
1930
enter_test_package() {
2031
local tmp_dir
2132
tmp_dir=$(mktempdir)
@@ -38,7 +49,7 @@ test_all_hls() {
3849
bin_noexe=${bin/.exe/}
3950
if ! [[ "${bin_noexe}" =~ "haskell-language-server-wrapper" ]] && ! [[ "${bin_noexe}" =~ "~" ]] ; then
4051
if ghcup install ghc --set "${bin_noexe/haskell-language-server-/}" ; then
41-
"${hls}" typecheck "${test_module}" || fail "failed to typecheck with HLS for GHC ${bin_noexe/haskell-language-server-/}"
52+
"${hls}" --debug typecheck "${test_module}" || fail "failed to typecheck with HLS for GHC ${bin_noexe/haskell-language-server-/}"
4253

4354
# After running the test, free up disk space by deleting the unneeded GHC version.
4455
# Helps us staying beneath the 14GB SSD disk limit.
@@ -60,7 +71,7 @@ env
6071

6172
# ensure ghcup
6273
install_ghcup
63-
ghcup install ghc --set 9.4.5
74+
ghcup install ghc --set 9.4.8
6475

6576
(cd .. && ecabal update) # run cabal update outside project dir
6677

@@ -77,6 +88,7 @@ case "${TARBALL_EXT}" in
7788

7889
enter_test_package
7990
create_cradle
91+
create_cabal_project
8092
test_all_hls "$GHCUP_BIN"
8193

8294
;;
@@ -106,6 +118,7 @@ case "${TARBALL_EXT}" in
106118

107119
enter_test_package
108120
create_cradle
121+
create_cabal_project
109122
test_all_hls "$(ghcup whereis bindir)"
110123

111124
;;

.github/workflows/caching.yml

+2-6
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,6 @@ jobs:
8989
- ubuntu-latest
9090
- macOS-latest
9191
- windows-latest
92-
exclude:
93-
# We disable this this combo in test.yml due to long path issues, so we also need to disable it here
94-
- os: windows-latest
95-
ghc: "9.2"
9692
steps:
9793
- uses: actions/checkout@v3
9894

@@ -105,7 +101,7 @@ jobs:
105101
# Fetching from github cache is faster than doing it from hackage
106102
# Sources does not change per ghc and ghc version son only doing it
107103
# for one matrix job (it is arbitrary)
108-
- if: steps.compiled-deps.outputs.cache-hit != 'true' && runner.os == 'Linux' && matrix.ghc == '9.2'
104+
- if: steps.compiled-deps.outputs.cache-hit != 'true' && runner.os == 'Linux' && matrix.ghc == '9.6'
109105
name: Download sources
110106
run: |
111107
cabal $cabalBuild --only-download --enable-benchmarks --enable-tests
@@ -120,7 +116,7 @@ jobs:
120116
# We build ghcide with benchs and test enabled to include its dependencies in the cache
121117
# (including shake-bench)
122118
# Only for the same ghc and os used in the bench workflow, so we save cache space
123-
- if: steps.compiled-deps.outputs.cache-hit != 'true' && runner.os == 'Linux' && matrix.ghc == '9.2'
119+
- if: steps.compiled-deps.outputs.cache-hit != 'true' && runner.os == 'Linux' && matrix.ghc == '9.6'
124120
name: Build ghcide benchmark
125121
run: |
126122
cabal $cabalBuild ghcide --enable-benchmarks --enable-tests

.github/workflows/pre-commit.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
- uses: ./.github/actions/setup-build
2828
with:
2929
# select a stable GHC version
30-
ghc: 9.2
30+
ghc: 9.6
3131
os: ${{ runner.os }}
3232
shorten-hls: false
3333

.github/workflows/release.yaml

+13-13
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
strategy:
3131
fail-fast: false
3232
matrix:
33-
ghc: ["9.8.2", "9.6.5", "9.4.8", "9.2.8"]
33+
ghc: ["9.10.1", "9.8.2", "9.6.5", "9.4.8"]
3434
platform: [ { image: "debian:9"
3535
, 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"
3636
, 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"
@@ -118,25 +118,25 @@ jobs:
118118
# Perhaps we can migrate *all* unknown linux builds to a uniform
119119
# image.
120120
include:
121-
- ghc: 9.2.8
121+
- ghc: 9.4.8
122122
platform:
123-
{ image: "rockylinux:8"
124-
, installCmd: "yum -y install epel-release && yum install -y --allowerasing"
123+
{ image: "fedora:27"
124+
, installCmd: "dnf install -y"
125125
, 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"
126126
, DISTRO: "Unknown"
127127
, ARTIFACT: "x86_64-linux-unknown"
128128
, ADD_CABAL_ARGS: "--enable-split-sections"
129129
}
130-
- ghc: 9.4.8
130+
- ghc: 9.6.5
131131
platform:
132-
{ image: "fedora:27"
133-
, installCmd: "dnf install -y"
132+
{ image: "rockylinux:8"
133+
, installCmd: "yum -y install epel-release && yum install -y --allowerasing"
134134
, 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"
135135
, DISTRO: "Unknown"
136136
, ARTIFACT: "x86_64-linux-unknown"
137137
, ADD_CABAL_ARGS: "--enable-split-sections"
138138
}
139-
- ghc: 9.6.5
139+
- ghc: 9.8.2
140140
platform:
141141
{ image: "rockylinux:8"
142142
, installCmd: "yum -y install epel-release && yum install -y --allowerasing"
@@ -145,7 +145,7 @@ jobs:
145145
, ARTIFACT: "x86_64-linux-unknown"
146146
, ADD_CABAL_ARGS: "--enable-split-sections"
147147
}
148-
- ghc: 9.8.2
148+
- ghc: 9.10.1
149149
platform:
150150
{ image: "rockylinux:8"
151151
, installCmd: "yum -y install epel-release && yum install -y --allowerasing"
@@ -213,7 +213,7 @@ jobs:
213213
strategy:
214214
fail-fast: true
215215
matrix:
216-
ghc: ["9.8.2", "9.6.5", "9.4.8", "9.2.8" ]
216+
ghc: ["9.10.1", "9.8.2", "9.6.5", "9.4.8"]
217217
steps:
218218
- uses: docker://arm64v8/ubuntu:focal
219219
name: Cleanup (aarch64 linux)
@@ -273,7 +273,7 @@ jobs:
273273
strategy:
274274
fail-fast: false
275275
matrix:
276-
ghc: ["9.8.2", "9.6.5", "9.4.8", "9.2.8"]
276+
ghc: ["9.10.1", "9.8.2", "9.6.5", "9.4.8"]
277277
steps:
278278
- name: Checkout code
279279
uses: actions/checkout@v3
@@ -318,7 +318,7 @@ jobs:
318318
strategy:
319319
fail-fast: false
320320
matrix:
321-
ghc: ["9.8.2", "9.6.5", "9.4.8", "9.2.8"]
321+
ghc: ["9.10.1", "9.8.2", "9.6.5", "9.4.8"]
322322
steps:
323323
- name: Checkout code
324324
uses: actions/checkout@v3
@@ -363,7 +363,7 @@ jobs:
363363
strategy:
364364
fail-fast: false
365365
matrix:
366-
ghc: ["9.8.2", "9.6.5", "9.4.8", "9.2.8"]
366+
ghc: ["9.10.1", "9.8.2", "9.6.5", "9.4.8"]
367367
steps:
368368
- name: install windows deps
369369
shell: pwsh
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[ "9.8", "9.6", "9.4" , "9.2" ]
1+
["9.10", "9.8", "9.6", "9.4"]

.github/workflows/test.yml

+15-12
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,6 @@ jobs:
7878
- true
7979
- false
8080
exclude:
81-
# Don't do anything for windows on 9.2, it has particularly bad long-path issues
82-
- os: windows-latest
83-
ghc: "9.2"
8481
# Exclude the test configuration on macos, it's sufficiently similar to other OSs
8582
# that it mostly just burns CI time. Buiding is still useful since it catches
8683
# solver issues.
@@ -98,7 +95,7 @@ jobs:
9895
- uses: ./.github/actions/setup-build
9996
with:
10097
ghc: ${{ matrix.ghc }}
101-
os: ${{ runner.os }}
98+
os: ${{ runner.os }}
10299

103100
- name: Build
104101
run: cabal build all
@@ -141,7 +138,8 @@ jobs:
141138
name: Test hls-refactor-plugin
142139
run: cabal test hls-refactor-plugin-tests || cabal test hls-refactor-plugin-tests
143140

144-
- if: matrix.test
141+
# TODO enable when it supports 9.10
142+
- if: matrix.test && matrix.ghc != '9.10'
145143
name: Test hls-floskell-plugin
146144
run: cabal test hls-floskell-plugin-tests || cabal test hls-floskell-plugin-tests
147145

@@ -157,15 +155,18 @@ jobs:
157155
name: Test hls-eval-plugin
158156
run: cabal test hls-eval-plugin-tests || cabal test hls-eval-plugin-tests
159157

160-
- if: matrix.test
158+
# TODO enable when it supports 9.10
159+
- if: matrix.test && matrix.ghc != '9.10'
161160
name: Test hls-splice-plugin
162161
run: cabal test hls-splice-plugin-tests || cabal test hls-splice-plugin-tests
163162

164-
- if: matrix.test && matrix.ghc != '9.2'
163+
# TODO enable when it supports 9.10
164+
- if: matrix.test && matrix.ghc != '9.10'
165165
name: Test hls-stan-plugin
166166
run: cabal test hls-stan-plugin-tests || cabal test hls-stan-plugin-tests
167167

168-
- if: matrix.test
168+
# TODO enable when it supports 9.10
169+
- if: matrix.test && matrix.ghc != '9.10'
169170
name: Test hls-stylish-haskell-plugin
170171
run: cabal test hls-stylish-haskell-plugin-tests || cabal test hls-stylish-haskell-plugin-tests
171172

@@ -189,7 +190,8 @@ jobs:
189190
name: Test hls-rename-plugin test suite
190191
run: cabal test hls-rename-plugin-tests || cabal test hls-rename-plugin-tests
191192

192-
- if: matrix.test
193+
# TODO enable when it supports 9.10
194+
- if: matrix.test && matrix.ghc != '9.10'
193195
name: Test hls-hlint-plugin test suite
194196
run: cabal test hls-hlint-plugin-tests || cabal test hls-hlint-plugin-tests
195197

@@ -225,8 +227,8 @@ jobs:
225227
name: Test hls-explicit-record-fields-plugin test suite
226228
run: cabal test hls-explicit-record-fields-plugin-tests || cabal test hls-explicit-record-fields-plugin-tests
227229

228-
## version needs to be limited since the tests depend on cabal-fmt which only builds using specific ghc versions
229-
- if: matrix.test && matrix.ghc == '9.2'
230+
# versions need to be limited since the tests depend on cabal-fmt which only builds with ghc <9.10
231+
- if: matrix.test && matrix.ghc != '9.10'
230232
name: Test hls-cabal-fmt-plugin test suite
231233
run: cabal test hls-cabal-fmt-plugin-tests --flag=isolateCabalfmtTests || cabal test hls-cabal-fmt-plugin-tests --flag=isolateCabalfmtTests
232234

@@ -238,7 +240,8 @@ jobs:
238240
name: Test hls-cabal-plugin test suite
239241
run: cabal test hls-cabal-plugin-tests || cabal test hls-cabal-plugin-tests
240242

241-
- if: matrix.test
243+
# TODO enable when it supports 9.10
244+
- if: matrix.test && matrix.ghc != '9.10'
242245
name: Test hls-retrie-plugin test suite
243246
run: cabal test hls-retrie-plugin-tests || cabal test hls-retrie-plugin-tests
244247

0 commit comments

Comments
 (0)