2.1.0.0
github-actions
released this
11 Aug 17:09
·
443 commits
to master
since this release
Binaries for this release are available at
https://downloads.haskell.org/~hls/haskell-language-server-2.1.0.0/.
These binaries can be installed using GHCup or the Haskell VSCode extension.
All of these tarballs have associated GPG signatures. The signature should be from Hannes Siebenhandl [email protected] (key ID 9849506453CA97E75F505D054EF829564CA34FC8).
ChangeLog
- Binaries for GHC 9.4.6
- Completions for .cabal files
- Performance improvements
- Show package name and its version while hovering on import statements (#3691)
- Fix code edits in lsp spec compliant editors like helix. (#3643)
Pull requests merged
- Update to latest lsp packages
(#3747) by @joyfulmantis - Remove unnecessary allow-newer in stack.yaml
(#3746) by @July541 - Log fourmolu and ormolu version that hls using
(#3744) by @July541 - Various PluginError PR suggestions I missed earlier
(#3737) by @joyfulmantis - Add resolve support in refine imports by merging it with explicit imports
(#3729) by @joyfulmantis - Fix other file goto definition
(#3725) by @nlander - Fix Nix builds
(#3724) by @cydparser - Better plugin error infrastructure
(#3717) by @joyfulmantis - Move Recorder to hls-plugin-api
(#3714) by @joyfulmantis - Actually force usages
(#3713) by @wz1000 - Best-effort support of Qualified Imports in GHC 9.4
(#3712) by @konn - Skip test if only CODEOWNERS changed
(#3707) by @July541 - Update stack stuff
(#3706) by @July541 - Mark hls-floskell-plugin as tier 3
(#3705) by @July541 - Remove isovector as an owner
(#3700) by @isovector - Bump haskell/actions from 2.4.3 to 2.4.4 in /.github/actions/setup-build
(#3699) by @dependabot[bot] - Bump haskell/actions from 2.4.3 to 2.4.4
(#3698) by @dependabot[bot] - Catch exceptions in commands and use lsp null
(#3696) by @joyfulmantis - Show package name and its version while hovering on import statements
(#3691) by @July541 - Resolve refactoring
(#3688) by @joyfulmantis - Prefer non-boot files when creating the FinderCache.
(#3687) by @wz1000 - Some fixes for multi component stuff
(#3686) by @wz1000 - Further hlint resolve changes.
(#3685) by @joyfulmantis - docs (plugin-support): fix plugin name typo
(#3683) by @PiDelport - Resolve for explicit-imports
(#3682) by @joyfulmantis - Hls 2.0.0.1 forward port
(#3680) by @hasufell - Resolve 2: Support for resolve in hls-hlint-plugin
(#3679) by @joyfulmantis - Resolve 0: Generic support for resolve in hls packages
(#3678) by @joyfulmantis - Ship hls-hlint-plugin for ghc-9.6
(#3677) by @July541 - Remove extra call to newHscEnvEqWithImportPaths
(#3676) by @nlander - Fixes pragma plugin offering incorrect code actions #3673
(#3674) by @joyfulmantis - Restore short option for logfile
(#3672) by @michaelpj - Enable stylish-haskell for 9.6
(#3670) by @michaelpj - Bump supported ormolu, allow for 9.6
(#3668) by @michaelpj - Bump cachix/install-nix-action from 21 to 22
(#3666) by @dependabot[bot] - Add arguments to direct logs to various locations
(#3665) by @michaelpj - Support fourmolu 0.13
(#3662) by @brandonchinn178 - Resolve 1: Support for resolve in overloaded-record-dot
(#3658) by @joyfulmantis - fix ISO8601 related deprecation in time
(#3654) by @HugoPeters1024 - Add a log-level argument to set the log level
(#3651) by @michaelpj - Update Contributing.md
(#3650) by @VeryMilkyJoe - Commit to prettyprinter >= 1.7
(#3649) by @michaelpj - Add missing Monad constraint in the eval plugin
(#3648) by @sandydoo - hls-pragmas-plugin: Reduce noisy completions
(#3647) by @akshaymankar - Correctly pass VersionedTextDocumentIdentifier through hls
(#3643) by @maralorn - Add an assist for importing record fields when using OverloadedRecordDot
(#3642) by @simmsb - update flakes to compile with ghc928 and ghc962
(#3641) by @smunix - Split pragmas plugin by providers + decrease disable-warning priority
(#3640) by @mrcjkb - Reintroduce cabal-install in flake.nix
(#3637) by @cgeorgii - Delete dead cbits
(#3635) by @michaelpj - Simplify selection of GHCs to build on
(#3633) by @michaelpj - Support fourmolu 0.13.0.0
(#3631) by @brandonchinn178 - Bump haskell/actions from 2.4.1 to 2.4.3 in /.github/actions/setup-build
(#3627) by @dependabot[bot] - Bump haskell/actions from 2.4.1 to 2.4.3
(#3626) by @dependabot[bot] - remove ghc minor versions in nix flake package builds
(#3625) by @smunix - HLS for the new generated LSP 2 release
(#3621) by @joyfulmantis - Keep plugin id of cabal-fmt in sync with default config id
(#3615) by @VeryMilkyJoe - Fix some grammar mistakes and typos
(#3614) by @VeryMilkyJoe - Bump cachix/install-nix-action from 20 to 21
(#3612) by @dependabot[bot] - fix: remove the
Indexing
progress message when exeption in withHieDb
(#3610) by @guibou - Bump haskell/actions from 2.4.0 to 2.4.1 in /.github/actions/setup-build
(#3604) by @dependabot[bot] - Bump haskell/actions from 2.4.0 to 2.4.1
(#3603) by @dependabot[bot] - Cabal file completions
(#3268) by @VeryMilkyJoe - Share ModuleGraphs for all files
(#3232) by @wz1000
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)- HLS uses a lockstep versioning. The core packages and all plugins use the same version number, and only support exactly the this version.
- Exceptions:
hie-compat
requires no automatic version bump.shake-bench
is an internal testing tool, not exposed to the outside world. Thus, no version bump required for releases.
- Exceptions:
- For updating cabal files, the following script can be used:
-
# Update all `version:` fields sed -ri "s/^version:( +)2.1.0.0/version:\12.2.0.0/" **/*.cabal # Update all constraints expected to be in the form `== <version>`. # We usually don't force an exact version, so this is relatively unambiguous. # We could introduce some more ad-hoc parsing, if there is still ambiguity. sed -ri "s/== 2.1.0.0/== 2.2.0.0/" **/*.cabal
- It still requires manual verification and review
-
- HLS uses a lockstep versioning. The core packages and all plugins use the same version number, and only support exactly the this version.
- generate and update changelog
- Generate a ChangeLog via
./GenChangelogs.hs <api-key> <tag>
<tag>
is the git tag you want to generate the ChangeLog from.<api-key>
is a github access key: https://github.com/settings/tokens
- Generate a ChangeLog via
- create release branch as
wip/<version>
git switch -c wip/<version>
- create release tag as
<version>
git tag <version>
- trigger release pipeline by pushing the tag
- this creates a draft release
- run
sh scripts/release/download-gh-artifacts <version> <your-gpg-email>
- downloads artifacts to
gh-release-artifacts/<version>/
- also downloads FreeBSD bindist from circle CI
- adds signatures
- downloads artifacts to
- upload artifacts to downloads.haskell.org manually from
gh-release-artifacts/<version>/
- create PR to ghcup-metadata
- update
ghcup-0.0.7.yaml
andghcup-vanilla-0.0.7.yaml
- can use
sh scripts/release/create-yaml-snippet.sh <version>
to generate a snippet that can be manually inserted into the yaml files
- can use
- 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
- utilize
- update
- 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