From 7dcf3e79079c6fab03666af25bbecfa933405f56 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Sat, 27 May 2023 11:28:19 +0800 Subject: [PATCH 01/11] Update ChangeLog.md for release 2.0.0.1 --- ChangeLog.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) 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*) From a4a7353e1307ff81041336e17d245c6d33de240d Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Sat, 27 May 2023 11:31:54 +0800 Subject: [PATCH 02/11] Build 9.6.2 and 9.2.8 in release CI --- .github/scripts/bindist.sh | 2 +- .github/workflows/release.yaml | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/scripts/bindist.sh b/.github/scripts/bindist.sh index 1698cee3be..c8d0a01731 100644 --- a/.github/scripts/bindist.sh +++ b/.github/scripts/bindist.sh @@ -25,8 +25,8 @@ case "${TARBALL_EXT}" in : "${GHCS:="$(cd "$CI_PROJECT_DIR/out/${ARTIFACT}" && rm -f ./*.json && for ghc in * ; do printf "%s\n" "$ghc" ; done | sort -r | tr '\n' ' ')"}" emake --version emake GHCUP=ghcup ARTIFACT="${ARTIFACT}" GHCS="${GHCS}" bindist - emake GHCUP=ghcup ARTIFACT="${ARTIFACT}" bindist-tar emake GHCUP=ghcup GHCS="${GHCS}" clean-ghcs + emake GHCUP=ghcup ARTIFACT="${ARTIFACT}" bindist-tar ;; *) fail "Unknown TARBALL_EXT: ${TARBALL_EXT}" diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index da47acd5ad..b0bc3a8ce1 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 }} @@ -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.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 From b791c78826a9be94c3daafed36facbc809ae9557 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Sun, 25 Jun 2023 17:55:56 +0800 Subject: [PATCH 03/11] Clean up GHCs to save disk space in CI --- GNUmakefile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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" From d60cac440f0e8f5224199edf474bd6bd2e082b9c Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Sun, 25 Jun 2023 20:02:43 +0800 Subject: [PATCH 04/11] Use self hoster runners for linux tar jobs --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index b0bc3a8ce1..79a2a370a2 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -352,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 From aa72107731744d3c3b51c0ad8efda1ccd4edf504 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Sun, 25 Jun 2023 20:12:52 +0800 Subject: [PATCH 05/11] Remove beefy tag --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 79a2a370a2..8ca6c4e62e 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -158,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 }} From 10ce80430cfd78e7e6765aa0d64ef54dc96b371f Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Sun, 25 Jun 2023 21:01:45 +0800 Subject: [PATCH 06/11] Fix cleanup --- .github/scripts/bindist.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/scripts/bindist.sh b/.github/scripts/bindist.sh index c8d0a01731..72e8fe4676 100644 --- a/.github/scripts/bindist.sh +++ b/.github/scripts/bindist.sh @@ -25,7 +25,6 @@ case "${TARBALL_EXT}" in : "${GHCS:="$(cd "$CI_PROJECT_DIR/out/${ARTIFACT}" && rm -f ./*.json && for ghc in * ; do printf "%s\n" "$ghc" ; done | sort -r | tr '\n' ' ')"}" emake --version emake GHCUP=ghcup ARTIFACT="${ARTIFACT}" GHCS="${GHCS}" bindist - emake GHCUP=ghcup GHCS="${GHCS}" clean-ghcs emake GHCUP=ghcup ARTIFACT="${ARTIFACT}" bindist-tar ;; *) From 96ef00d1a2a13ce57a955518fd08c391631e22d4 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Wed, 28 Jun 2023 20:16:14 +0800 Subject: [PATCH 07/11] Add create-yaml-snippet.sh --- scripts/release/create-yaml-snippet.sh | 107 +++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 scripts/release/create-yaml-snippet.sh 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 + From ec6548d0271a7f39274b64dd40de9a53cf95890b Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Wed, 28 Jun 2023 20:38:31 +0800 Subject: [PATCH 08/11] Add RELEASING.md --- RELEASING.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 RELEASING.md 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 From 43f0128632d7c5234ee3a5be43c2d35bb7a33ec6 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Wed, 28 Jun 2023 21:27:25 +0800 Subject: [PATCH 09/11] Fix cabal check on record dot plugin --- .../hls-overloaded-record-dot-plugin.cabal | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 From 9511b2fa6753845a379b820d5a52f7c41f00290a Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Wed, 28 Jun 2023 21:32:14 +0800 Subject: [PATCH 10/11] Update GHC version support table --- docs/support/ghc-version-support.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 | From 5d6744a8cb01807d64df12bcb25fa5048315a435 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Wed, 28 Jun 2023 22:05:42 +0800 Subject: [PATCH 11/11] Reinstate 9.4.5 for ARM64 linux --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 8ca6c4e62e..396eee871c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -173,7 +173,7 @@ jobs: strategy: fail-fast: true matrix: - ghc: ["9.6.2", "9.2.8", "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)