diff --git a/.github/scripts/bindist.sh b/.github/scripts/bindist.sh index 1698cee3be..72e8fe4676 100644 --- a/.github/scripts/bindist.sh +++ b/.github/scripts/bindist.sh @@ -26,7 +26,6 @@ case "${TARBALL_EXT}" in emake --version emake GHCUP=ghcup ARTIFACT="${ARTIFACT}" GHCS="${GHCS}" bindist emake GHCUP=ghcup ARTIFACT="${ARTIFACT}" bindist-tar - emake GHCUP=ghcup GHCS="${GHCS}" clean-ghcs ;; *) fail "Unknown TARBALL_EXT: ${TARBALL_EXT}" diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index da47acd5ad..396eee871c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -25,7 +25,7 @@ jobs: strategy: fail-fast: false matrix: - ghc: ["9.6.1", "9.4.5", "9.2.7", "9.0.2", "8.10.7"] + ghc: ["9.6.2", "9.4.5", "9.2.8", "9.2.7", "9.0.2", "8.10.7"] 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" @@ -113,9 +113,11 @@ jobs: 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.2.7 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.2.8 + 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.4.5 platform: { image: "fedora:33", installCmd: "dnf install -y", 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 tree", DISTRO: "Unknown", ARTIFACT: "x86_64-linux-unknown", ADD_CABAL_ARGS: "--enable-split-sections" } - - ghc: 9.6.1 + - ghc: 9.6.2 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" } container: image: ${{ matrix.platform.image }} @@ -156,7 +158,7 @@ jobs: build-arm: name: Build ARM binary - runs-on: [self-hosted, Linux, ARM64, beefy] + runs-on: [self-hosted, Linux, ARM64] env: AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} @@ -171,7 +173,7 @@ jobs: strategy: fail-fast: true matrix: - ghc: ["9.6.1","9.4.5", "9.2.7", "9.0.2", "8.10.7"] + ghc: ["9.6.2", "9.4.5", "9.2.8", "9.2.7", "9.0.2", "8.10.7"] steps: - uses: docker://arm64v8/ubuntu:focal name: Cleanup (aarch64 linux) @@ -226,7 +228,7 @@ jobs: strategy: fail-fast: false matrix: - ghc: ["9.6.1", "9.4.5", "9.2.7", "9.0.2", "8.10.7"] + ghc: ["9.6.2", "9.4.5", "9.2.8", "9.2.7", "9.0.2", "8.10.7"] steps: - name: Checkout code uses: actions/checkout@v3 @@ -266,7 +268,7 @@ jobs: strategy: fail-fast: false matrix: - ghc: ["9.6.1", "9.4.5", "9.2.7", "8.10.7"] + ghc: ["9.6.2", "9.4.5", "9.2.8", "9.2.7", "8.10.7"] steps: - name: Checkout code uses: actions/checkout@v3 @@ -315,7 +317,7 @@ jobs: strategy: fail-fast: false matrix: - ghc: ["9.6.1", "9.4.5", "9.2.7", "9.0.2", "8.10.7"] + ghc: ["9.6.2", "9.4.5", "9.2.8", "9.2.7", "9.0.2", "8.10.7"] steps: - name: install windows deps shell: pwsh @@ -350,7 +352,7 @@ jobs: bindist-linux: name: Tar linux bindists (linux) - runs-on: ubuntu-latest + runs-on: [self-hosted, linux-space] needs: ["build-linux"] env: TARBALL_EXT: tar.xz diff --git a/ChangeLog.md b/ChangeLog.md index a7f58ac52a..b79433540d 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,5 +1,10 @@ # Changelog for haskell-language-server +## 2.0.0.1 + +- Add overloaded record dot plugin intial version (closes #3350) (#3560) +- Binaries for GHC 9.2.8 and GHC 9.6.2 + ## 2.0.0.0 - New versioning scheme for all packages distributed as part of HLS, @@ -95,7 +100,7 @@ ([#3411](https://github.com/haskell/haskell-language-server/pull/3411)) by @pepeiborra - Support fourmolu 0.10 ([#3410](https://github.com/haskell/haskell-language-server/pull/3410)) by @brandonchinn178 -- Fix nix build CI +- Fix nix build CI ([#3404](https://github.com/haskell/haskell-language-server/pull/3404)) by @wavewave - Fix fourmolu with -f-fixity-th in nix env ([#3400](https://github.com/haskell/haskell-language-server/pull/3400)) by @wavewave @@ -145,7 +150,7 @@ ([#3339](https://github.com/haskell/haskell-language-server/pull/3339)) by @santiweight - Add hls-cabal-fmt-plugin to hackage release CI script and HLS library ([#3335](https://github.com/haskell/haskell-language-server/pull/3335)) by @fendor -- Ensure at least 1 capability +- Ensure at least 1 capability ([#3334](https://github.com/haskell/haskell-language-server/pull/3334)) by @pepeiborra - Add support for Fourmolu 0.9 ([#3331](https://github.com/haskell/haskell-language-server/pull/3331)) by @brandonchinn178 @@ -324,7 +329,7 @@ - Initial support for GHC 9.4 with binaries for GHC 9.4.1 and GHC 9.4.2 - Startup time and performance improvements on projects using Template Haskell by serializing intermediate core (#2813) - Memory usage improvements due to using a packed representation for filepaths (#3067, @kokobd) -- Improvements for hls-class-plugin (#2920, @July541) +- Improvements for hls-class-plugin (#2920, @July541) - The new hls-gadt-plugin (#2899, @July541) - Moving code actions from ghcide to the new hls-refactor-plugin (#3091, @wz1000) - Many more improvements and bug fixes thanks to our contributors! @@ -549,7 +554,7 @@ ([#2873](https://github.com/haskell/haskell-language-server/pull/2873)) by @pepeiborra - Expand input to pragma if available ([#2871](https://github.com/haskell/haskell-language-server/pull/2871)) by @July541 -- Fix hanging redundant import on Unicode function +- Fix hanging redundant import on Unicode function ([#2870](https://github.com/haskell/haskell-language-server/pull/2870)) by @drsooch - Compatibility with older aeson releases ([#2868](https://github.com/haskell/haskell-language-server/pull/2868)) by @pepeiborra @@ -754,7 +759,7 @@ - Improve logging ([#2558](https://github.com/haskell/haskell-language-server/pull/2558)) by @eddiemundo - Improve recompilation avoidance in the presence of TH -([#2316](https://github.com/haskell/haskell-language-server/pull/2316)) by @wz1000 +([#2316](https://github.com/haskell/haskell-language-server/pull/2316)) by @wz1000 ## 1.6.1.1 (*only hackage release*) diff --git a/GNUmakefile b/GNUmakefile index b6e1925030..4cce69541c 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -43,6 +43,7 @@ CP := cp # by default don't run ghcup GHCUP ?= echo GHCUP_GC ?= $(GHCUP) gc +GHCUP_RM ?= $(GHCUP) rm CABAL_CACHE_BIN ?= echo @@ -87,7 +88,8 @@ hls: for ghc in $(GHCS) ; do \ $(GHCUP) install ghc `echo $$ghc` && \ $(GHCUP_GC) -p -s -c -t && \ - $(MAKE) GHC_VERSION=`echo $$ghc` hls-ghc || exit 1 ; \ + $(MAKE) GHC_VERSION=`echo $$ghc` hls-ghc || exit 1 && \ + $(GHCUP_RM) `echo $$ghc` ; \ done hls-ghc: @@ -108,7 +110,8 @@ bindist: for ghc in $(GHCS) ; do \ $(GHCUP) install ghc `echo $$ghc` && \ $(GHCUP_GC) -p -s -c -t && \ - $(MAKE) GHC_VERSION=`echo $$ghc` bindist-ghc || exit 1 ; \ + $(MAKE) GHC_VERSION=`echo $$ghc` bindist-ghc || exit 1 && \ + $(GHCUP_RM) `echo $$ghc` ; \ done $(SED) -e "s/@@HLS_VERSION@@/$(HLS_VERSION)/" \ bindist/GNUmakefile.in > "$(BINDIST_OUT_DIR)/GNUmakefile" diff --git a/RELEASING.md b/RELEASING.md new file mode 100644 index 0000000000..73d25f340f --- /dev/null +++ b/RELEASING.md @@ -0,0 +1,31 @@ +# Releasing + +## Release checklist + +- [ ] check ghcup supports new GHC releases if any +- [ ] set the supported GHCs in workflow file `.github/workflows/release.yaml` +- [ ] check all plugins still work if release includes code changes +- [ ] bump package versions in all `*.cabal` files (same version as hls) +- [ ] generate and update changelog +- [ ] create release branch as `wip/` +- [ ] create release tag as `` +- [ ] trigger release pipeline by pushing the tag + - this creates a draft release +- [ ] run `sh scripts/release/download-gh-artifacts ` + - downloads artifacts to `gh-release-artifacts//` + - also downloads FreeBSD bindist from circle CI + - adds signatures +- [ ] upload artifacts to downloads.haskell.org manually from `gh-release-artifacts//` +- [ ] create PR to [ghcup-metadata](https://github.com/haskell/ghcup-metadata) + - [ ] update `ghcup-0.0.7.yaml` and `ghcup-vanilla-0.0.7.yaml` + - can use `sh scripts/release/create-yaml-snippet.sh ` to generate a snippet that can be manually inserted into the yaml files + - [ ] update `hls-metadata-0.0.1.json` + - utilize `cabal run ghcup-gen -- generate-hls-ghcs -f ghcup-0.0.7.yaml --format json --stdout` in the root of ghcup-metadata repository +- [ ] get sign-off on release + - from wz1000, michealpj, maerwald and fendor +- [ ] publish release on github +- [ ] upload hackage packages + - requires credentials +- [ ] update https://haskell-language-server.readthedocs.io/en/latest/support/ghc-version-support.html#current-ghc-version-support-status +- [ ] post release on discourse and reddit +- [ ] merge release PR to master or forward port relevant changes diff --git a/docs/support/ghc-version-support.md b/docs/support/ghc-version-support.md index 76f424f13b..46b7c6af15 100644 --- a/docs/support/ghc-version-support.md +++ b/docs/support/ghc-version-support.md @@ -17,11 +17,13 @@ Support status (see the support policy below for more details): | GHC version | Last supporting HLS version | Support status | |--------------|--------------------------------------------------------------------------------------|-----------------------------------------------------------------------------| -| 9.6.1 | [latest](https://github.com/haskell/haskell-language-server/releases/latest) | basic support | +| 9.6.2 | [latest](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.5 | [latest](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.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 | +| 9.2.8 | [latest](https://github.com/haskell/haskell-language-server/releases/latest) | full support | | 9.2.7 | [latest](https://github.com/haskell/haskell-language-server/releases/latest) | full support | | 9.2.(5,6) | [1.9.1.0](https://github.com/haskell/haskell-language-server/releases/tag/1.9.1.0) | deprecated | | 9.2.(3,4) | [1.8.0.0](https://github.com/haskell/haskell-language-server/releases/tag/1.8.0.0) | deprecated | diff --git a/plugins/hls-overloaded-record-dot-plugin/hls-overloaded-record-dot-plugin.cabal b/plugins/hls-overloaded-record-dot-plugin/hls-overloaded-record-dot-plugin.cabal index 8010c90f26..195fad87f5 100644 --- a/plugins/hls-overloaded-record-dot-plugin/hls-overloaded-record-dot-plugin.cabal +++ b/plugins/hls-overloaded-record-dot-plugin/hls-overloaded-record-dot-plugin.cabal @@ -22,11 +22,11 @@ common warnings ghc-options: -Wall library + import: warnings if impl(ghc < 9.2) buildable: False else buildable: True - import: warnings exposed-modules: Ide.Plugin.OverloadedRecordDot build-depends: , base >=4.16 && <5 @@ -46,11 +46,11 @@ library default-language: GHC2021 test-suite tests + import: warnings if impl(ghc < 9.2) buildable: False else buildable: True - import: warnings default-language: GHC2021 type: exitcode-stdio-1.0 hs-source-dirs: test diff --git a/scripts/release/create-yaml-snippet.sh b/scripts/release/create-yaml-snippet.sh new file mode 100644 index 0000000000..d999ea3d92 --- /dev/null +++ b/scripts/release/create-yaml-snippet.sh @@ -0,0 +1,107 @@ +#!/bin/bash + +set -eu +set -o pipefail + +RELEASE=$1 + +cd "gh-release-artifacts/${RELEASE}" + +cat < /dev/stdout + $RELEASE: + viTags: + - Latest + viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md + viPostInstall: *hls-post-install + viSourceDL: + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-src.tar.gz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-src.tar.gz" | awk '{ print $1 }') + viArch: + A_64: + Linux_Debian: + '< 10': &hls-${RELEASE//./}-64-deb9 + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-x86_64-linux-deb9.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-x86_64-linux-deb9.tar.xz" | awk '{ print $1 }') + '(>= 10 && < 11)': &hls-${RELEASE//./}-64-deb10 + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-x86_64-linux-deb10.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-x86_64-linux-deb10.tar.xz" | awk '{ print $1 }') + unknown_versioning: &hls-${RELEASE//./}-64-deb11 + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-x86_64-linux-deb11.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-x86_64-linux-deb11.tar.xz" | awk '{ print $1 }') + Linux_Ubuntu: + '( >= 16 && < 19 )': &hls-${RELEASE//./}-64-ubuntu18 + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-x86_64-linux-ubuntu18.04.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-x86_64-linux-ubuntu18.04.tar.xz" | awk '{ print $1 }') + '( >= 20 && < 22 )': &hls-${RELEASE//./}-64-ubuntu20 + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-x86_64-linux-ubuntu20.04.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-x86_64-linux-ubuntu20.04.tar.xz" | awk '{ print $1 }') + unknown_versioning: &hls-${RELEASE//./}-64-ubuntu22 + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-x86_64-linux-ubuntu22.04.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-x86_64-linux-ubuntu22.04.tar.xz" | awk '{ print $1 }') + Linux_Mint: + '< 20': + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-x86_64-linux-mint19.3.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-x86_64-linux-mint19.3.tar.xz" | awk '{ print $1 }') + '(>= 20 && < 21)': + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-x86_64-linux-mint20.2.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-x86_64-linux-mint20.2.tar.xz" | awk '{ print $1 }') + '>= 21': *hls-${RELEASE//./}-64-ubuntu22 + Linux_Fedora: + '< 33': &hls-${RELEASE//./}-64-fedora27 + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-x86_64-linux-fedora27.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-x86_64-linux-fedora27.tar.xz" | awk '{ print $1 }') + '>= 33': &hls-${RELEASE//./}-64-fedora33 + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-x86_64-linux-fedora33.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-x86_64-linux-fedora33.tar.xz" | awk '{ print $1 }') + unknown_versioning: *hls-${RELEASE//./}-64-fedora27 + Linux_CentOS: + '( >= 7 && < 8 )': &hls-${RELEASE//./}-64-centos + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-x86_64-linux-centos7.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-x86_64-linux-centos7.tar.xz" | awk '{ print $1 }') + unknown_versioning: *hls-${RELEASE//./}-64-centos + Linux_RedHat: + unknown_versioning: *hls-${RELEASE//./}-64-centos + Linux_UnknownLinux: + unknown_versioning: + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-x86_64-linux-unknown.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-x86_64-linux-unknown.tar.xz" | awk '{ print $1 }') + Darwin: + unknown_versioning: + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-x86_64-apple-darwin.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-x86_64-apple-darwin.tar.xz" | awk '{ print $1 }') + Windows: + unknown_versioning: + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-x86_64-mingw64.zip + dlHash: $(sha256sum "haskell-language-server-$RELEASE-x86_64-mingw64.zip" | awk '{ print $1 }') + FreeBSD: + unknown_versioning: + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-x86_64-freebsd.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-x86_64-freebsd.tar.xz" | awk '{ print $1 }') + A_ARM64: + Linux_UnknownLinux: + unknown_versioning: + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-aarch64-linux-ubuntu20.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-aarch64-linux-ubuntu20.tar.xz" | awk '{ print $1 }') + Darwin: + unknown_versioning: + dlUri: https://downloads.haskell.org/~hls/haskell-language-server-$RELEASE/haskell-language-server-$RELEASE-aarch64-apple-darwin.tar.xz + dlSubdir: haskell-language-server-$RELEASE + dlHash: $(sha256sum "haskell-language-server-$RELEASE-aarch64-apple-darwin.tar.xz" | awk '{ print $1 }') +EOF +