diff --git a/docs/contributing/contributing.md b/docs/contributing/contributing.md index 8dd8f2c354..4cea8eebd6 100644 --- a/docs/contributing/contributing.md +++ b/docs/contributing/contributing.md @@ -51,8 +51,8 @@ If you are using nix 2.4 style command (enabled by `experimental-features = nix- you can use `nix develop` instead of `nix-shell` to enter the development shell. To enter the shell with specific GHC versions: * `nix develop` or `nix develop .#haskell-language-server-dev` - default GHC version -* `nix develop .#haskell-language-server-8107-dev` - GHC 8.10.7 * `nix develop .#haskell-language-server-884-dev` - GHC 8.8.4 +* `nix develop .#haskell-language-server-8107-dev` - GHC 8.10.7 * `nix develop .#haskell-language-server-901-dev` - GHC 9.0.1 If you are looking for a Nix expression to create haskell-language-server binaries, see https://github.com/haskell/haskell-language-server/issues/122 @@ -60,8 +60,8 @@ If you are looking for a Nix expression to create haskell-language-server binari To create binaries: * `nix build` or `nix build .#haskell-language-server` - default GHC version -* `nix build .#haskell-language-server-8107` - GHC 8.10.7 * `nix build .#haskell-language-server-884` - GHC 8.8.4 +* `nix build .#haskell-language-server-8107` - GHC 8.10.7 * `nix build .#haskell-language-server-901` - GHC 9.0.1 GHC 8.6.5 is not supported here because `nixpkgs-unstable` no longer maintains the corresponding packages set. diff --git a/docs/supported-versions.md b/docs/supported-versions.md index 2485d94f4f..4173766a59 100644 --- a/docs/supported-versions.md +++ b/docs/supported-versions.md @@ -7,6 +7,7 @@ The current support for different GHC versions is given in the following table. | GHC version | Last supporting HLS version | Deprecation status | | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | | 9.2.0 | [not supported](https://github.com/haskell/haskell-language-server/issues/2179) yet | | +| 9.0.2 | [not supported](https://github.com/haskell/haskell-language-server/issues/2536) yet | | | 9.0.1 | [current](https://github.com/haskell/haskell-language-server/releases/latest) ([partial](https://github.com/haskell/haskell-language-server/issues/297)) | | | 8.10.7 | [current](https://github.com/haskell/haskell-language-server/releases/latest) | | | 8.10.6 | [current](https://github.com/haskell/haskell-language-server/releases/latest) | will be deprecated after LTS and HLS full support for ghc-9.0 | @@ -25,6 +26,26 @@ GHC versions not in the list have never been supported by HLS, or are not planne The policy for when we deprecate support for versions of GHC is given below. The table reflects that, but we may decide to deviate from it for good reasons. +### Support for the new GHC version + + 1. The platform installers of GHC must provide install support for the new GHC version. + * [ghcup-metadata](https://github.com/haskell/ghcup-metadata) for `ghcup`. + * [GhcChoco](https://github.com/Mistuke/GhcChoco) for Windows. + 2. A report opened in [HLS reports](https://github.com/haskell/haskell-language-server/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22type%3A+distribution%22) with `type: distribution` label. + 3. Provision the code for HLS to work with the new GHC version. That PR would: + * Have the code that supports the new GHC. + * Major GHC release support [is a complex task](https://github.com/haskell/haskell-language-server/pull/2503) & so would be often a crowdsource work, in that case in the branch do not force push. + * [Minor GHC release support example](https://github.com/haskell/haskell-language-server/pull/1899) + * Regardless of the type of GHC release the PR would need to (can be asked to crowdsource): + * Update to `.cabal` (at least `tested-with`), create new/update `.project` files (at least update `index-state`). + * Provide support through `stack*.yml` files. + * During work/builds GHC API changes would/may appear, they should be mirrored in `Compat*` modules. + * Enable CI to build-test with the new GHC release. + * Pass the CI. + 4. A period of testing. + 5. Doing [the HLS release](./contributing/releases.md). + 6. `ghcup` to support the installation. + ### Using deprecated GHC versions Users who want to use a GHC version which is not supported by the latest HLS can still use older versions of HLS (consult the version support table above to identify the appropriate HLS version).