From 77ae6ed566a2c41d95827928567a5a866016be30 Mon Sep 17 00:00:00 2001 From: Olivier Benz <olivier.benz@b-data.ch> Date: Wed, 19 Jun 2024 16:55:33 +0200 Subject: [PATCH] Update HLS to v2.9.0.0 --- .devcontainer/VERSION_MATRIX.md | 10 ++--- .devcontainer/ghc-9.10/devcontainer.json | 1 + .devcontainer/ghc-9.8/devcontainer.json | 2 +- .gitlab-ci.yml | 6 +-- packages/hls/2.9.0.0.Dockerfile | 50 ++++++++++++++++++++++++ 5 files changed, 60 insertions(+), 9 deletions(-) create mode 100644 packages/hls/2.9.0.0.Dockerfile diff --git a/.devcontainer/VERSION_MATRIX.md b/.devcontainer/VERSION_MATRIX.md index 3a5b121..c58adf1 100644 --- a/.devcontainer/VERSION_MATRIX.md +++ b/.devcontainer/VERSION_MATRIX.md @@ -2,11 +2,11 @@ ## Current -| GHC | Cabal[^1] | Stack[^1] | HLS | -|:------------------------------|:----------|:----------|:----------------------------- | -| latest<br>9.10.1<br>9.10<br>9 | 3.11.0.0 | ≥ 2.13.1 | n/a | -| 9.8.2<br>9.8 | 3.10.3.0 | ≥ 2.13.1 | 2.8.0.0<br>2.7.0.0<br>2.6.0.0 | -| 9.6.5<br>9.6 | 3.10.3.0 | ≥ 2.13.1 | 2.8.0.0<br>2.7.0.0 | +| GHC | Cabal[^1] | Stack[^1] | HLS | +|:------------------------------|:----------|:----------|:---------------------------------------- | +| latest<br>9.10.1<br>9.10<br>9 | 3.11.0.0 | ≥ 2.13.1 | latest<br>2.9.0.0 | +| 9.8.2<br>9.8 | 3.10.3.0 | ≥ 2.13.1 | 2.9.0.0<br>2.8.0.0<br>2.7.0.0<br>2.6.0.0 | +| 9.6.5<br>9.6 | 3.10.3.0 | ≥ 2.13.1 | 2.9.0.0<br>2.8.0.0<br>2.7.0.0 | [^1]: built-in version; see [GHC musl > Version Matrix](../VERSION_MATRIX.md) diff --git a/.devcontainer/ghc-9.10/devcontainer.json b/.devcontainer/ghc-9.10/devcontainer.json index c0e15c8..77042a0 100644 --- a/.devcontainer/ghc-9.10/devcontainer.json +++ b/.devcontainer/ghc-9.10/devcontainer.json @@ -5,6 +5,7 @@ "context": "..", "args": { "GHC_VERSION": "9.10", + "HLS_VERSION": "2.9.0.0", "USE_ZSH_FOR_ROOT": "unset-to-use-ash", "SET_LANG": "C.UTF-8", "SET_TZ": "" diff --git a/.devcontainer/ghc-9.8/devcontainer.json b/.devcontainer/ghc-9.8/devcontainer.json index 70cf528..166f7d5 100644 --- a/.devcontainer/ghc-9.8/devcontainer.json +++ b/.devcontainer/ghc-9.8/devcontainer.json @@ -5,7 +5,7 @@ "context": "..", "args": { "GHC_VERSION": "9.8", - "HLS_VERSION": "2.8.0.0", + "HLS_VERSION": "2.9.0.0", "USE_ZSH_FOR_ROOT": "unset-to-use-ash", "SET_LANG": "C.UTF-8", "SET_TZ": "" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9c4108c..c4e42a0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,9 +3,9 @@ GHC_VERSION: "9.10.1" CABAL_VERSION: "3.12.0.0-prerelease" STACK_VERSION: "2.15.7" - HLS_VERSION: "2.8.0.0" - BUILD_GHC: "true" - BUILD_HLS: "false" + HLS_VERSION: "2.9.0.0" + BUILD_GHC: "false" + BUILD_HLS: "true" TAG_VERSION_MAJ_MIN: "false" TAG_VERSION_MAJ: "false" diff --git a/packages/hls/2.9.0.0.Dockerfile b/packages/hls/2.9.0.0.Dockerfile new file mode 100644 index 0000000..571cad3 --- /dev/null +++ b/packages/hls/2.9.0.0.Dockerfile @@ -0,0 +1,50 @@ +ARG GHC_VERSION +ARG HLS_VERSION=2.9.0.0 + +FROM glcr.b-data.ch/ghc/ghc-musl:${GHC_VERSION} as builder + +ARG HLS_VERSION + +RUN apk add --no-cache patchelf findutils \ + && cd /tmp \ + && curl -sSL "https://github.com/haskell/haskell-language-server/archive/refs/tags/$HLS_VERSION.tar.gz" \ + -o "haskell-language-server-$HLS_VERSION.tar.gz" \ + && tar -xzf "haskell-language-server-$HLS_VERSION.tar.gz" \ + && cd "haskell-language-server-$HLS_VERSION" \ + && . .github/scripts/env.sh \ + && . .github/scripts/common.sh \ + && sed -i.bak -e '/DELETE MARKER FOR CI/,/END DELETE/d' cabal.project \ + && GHCS="$GHC_VERSION" \ + && export GHCS \ + && ARTIFACT="$(uname -m)-linux-alpine" \ + && export ARTIFACT \ + && cabal update \ + && emake hls-ghc \ + && CABAL_VERSION_NUMERIC="$(cabal --numeric-version)" \ + && if dpkg --compare-versions "${CABAL_VERSION_NUMERIC%.*.*}" ge "3.11"; then \ + sed -i 's|"$(STORE_DIR)/ghc-$(GHC_VERSION)"|"$(STORE_DIR)/ghc-$(GHC_VERSION)-inplace"|g' \ + GNUmakefile; \ + fi \ + && emake bindist \ + && strip "out/bindist/$ARTIFACT/haskell-language-server-$HLS_VERSION/lib/$GHC_VERSION"/*.so \ + && emake bindist-tar + +FROM alpine:3.20 as hls + +ARG HLS_VERSION + +COPY --from=builder /tmp/haskell-language-server-"$HLS_VERSION"/out/haskell-language-server-*-linux-alpine.tar.xz /tmp/ + +RUN apk add --no-cache build-base \ + && cd /tmp \ + && tar -xJf haskell-language-server-"$HLS_VERSION"-*-linux-alpine.tar.xz \ + && cd haskell-language-server-"$HLS_VERSION" \ + && make install + +FROM scratch + +ARG HLS_VERSION + +ENV HLS_VERSION=${HLS_VERSION} + +COPY --from=hls /usr/local /usr/local -- GitLab