From 34f316a97a3e0e69bea9b44cd1142f7e73557437 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sat, 7 Mar 2026 22:53:46 +0100 Subject: [PATCH] haskellPackages.{lsp*,hie-bios}: pin to HLS compatible versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit HLS/ghcide are the main consumers of these packages and they don't support these newly released versions yet. The same is true for a lot of other packages like dhall-lsp-server, koka, futhark, … --- .../configuration-hackage2nix/main.yaml | 5 + .../haskell-modules/hackage-packages.nix | 392 +++++++++++++++++- 2 files changed, 395 insertions(+), 2 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index a27134a99f6d..faa3ab33c3a5 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -35,6 +35,7 @@ default-package-overrides: # 2026-01-30: Needs to match hasql from Stackage LTS 24 - hasql-notifications < 0.2.5.0 # 2026-02-04: as requested by ghcide >= 2.13 + - hie-bios < 0.18.0 - hiedb < 0.8.0 # 2025-09-13: hnix 0.17.0 doesn't support hnix-store-core >= 0.8 # https://github.com/haskell-nix/hnix/pull/1112 @@ -47,6 +48,10 @@ default-package-overrides: # liquidhaskell(-boot) support one GHC at a time, so we choose the one matching the current GHC (9.10) - liquidhaskell == 0.9.10.* - liquidhaskell-boot == 0.9.10.* + # 2025-03-07: HLS and many other pkgs don't support lsp >= 2.8 (yet) + - lsp < 2.8 + - lsp-test < 0.18 + - lsp-types < 2.4 # Needs to match microlens == 0.4.* in Stackage LTS 24 - microlens-pro < 0.2.0.4 # We currently use pandoc-crossref with a patch to revert it to pandoc == 3.7.*, diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 00626e349b66..e5c9fd2841c4 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -332289,6 +332289,103 @@ self: { ) { }; hie-bios = callPackage ( + { + mkDerivation, + aeson, + base, + base16-bytestring, + bytestring, + co-log-core, + conduit, + conduit-extra, + cryptohash-sha1, + deepseq, + directory, + exceptions, + extra, + file-embed, + filepath, + ghc, + optparse-applicative, + prettyprinter, + tasty, + tasty-expected-failure, + tasty-hunit, + template-haskell, + temporary, + text, + time, + transformers, + unix-compat, + unordered-containers, + yaml, + }: + mkDerivation { + pname = "hie-bios"; + version = "0.17.0"; + sha256 = "0dgkckj73zknnhgnval0igb3v183ygyda65mfyibqmrm05phk9yi"; + revision = "1"; + editedCabalFile = "1ayi02194h4fqbrd797lv0r0apzrwv368ghndyyd8s7v5qj8r928"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson + base + base16-bytestring + bytestring + co-log-core + conduit + conduit-extra + cryptohash-sha1 + deepseq + directory + exceptions + extra + file-embed + filepath + ghc + prettyprinter + template-haskell + temporary + text + time + transformers + unix-compat + unordered-containers + yaml + ]; + executableHaskellDepends = [ + base + co-log-core + directory + filepath + optparse-applicative + prettyprinter + ]; + testHaskellDepends = [ + aeson + base + co-log-core + directory + extra + filepath + ghc + prettyprinter + tasty + tasty-expected-failure + tasty-hunit + temporary + text + transformers + yaml + ]; + description = "Set up a GHC API session"; + license = lib.licensesSpdx."BSD-3-Clause"; + mainProgram = "hie-bios"; + } + ) { }; + + hie-bios_0_18_0 = callPackage ( { mkDerivation, aeson, @@ -332379,6 +332476,7 @@ self: { ]; description = "Set up a GHC API session"; license = lib.licensesSpdx."BSD-3-Clause"; + hydraPlatforms = lib.platforms.none; mainProgram = "hie-bios"; } ) { }; @@ -439341,6 +439439,89 @@ self: { ) { inherit (pkgs) rocksdb; }; lsp = callPackage ( + { + mkDerivation, + aeson, + async, + attoparsec, + base, + bytestring, + co-log-core, + containers, + data-default, + directory, + exceptions, + extra, + filepath, + hashable, + hspec, + hspec-discover, + lens, + lens-aeson, + lsp-types, + mtl, + prettyprinter, + sorted-list, + stm, + text, + text-rope, + transformers, + unliftio, + unliftio-core, + unordered-containers, + }: + mkDerivation { + pname = "lsp"; + version = "2.7.0.1"; + sha256 = "1z3kc0vpgijzg56n70vmbi9draxzk02fifz83kgjq73rjc2scp7w"; + revision = "1"; + editedCabalFile = "1lq1gs8b47k3fv79lwz6a9zfkkywp95jy7xzxh0sb5k21x5yy7m9"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson + async + attoparsec + base + bytestring + co-log-core + containers + data-default + directory + exceptions + extra + filepath + hashable + lens + lens-aeson + lsp-types + mtl + prettyprinter + sorted-list + stm + text + text-rope + transformers + unliftio + unliftio-core + unordered-containers + ]; + testHaskellDepends = [ + base + containers + hspec + sorted-list + text + text-rope + unordered-containers + ]; + testToolDepends = [ hspec-discover ]; + description = "Haskell library for the Microsoft Language Server Protocol"; + license = lib.licensesSpdx."MIT"; + } + ) { }; + + lsp_2_8_0_0 = callPackage ( { mkDerivation, aeson, @@ -439420,6 +439601,7 @@ self: { testToolDepends = [ hspec-discover ]; description = "Haskell library for the Microsoft Language Server Protocol"; license = lib.licensesSpdx."MIT"; + hydraPlatforms = lib.platforms.none; } ) { }; @@ -439540,8 +439722,8 @@ self: { }: mkDerivation { pname = "lsp-test"; - version = "0.18.0.0"; - sha256 = "14fhjbf8s9nwks4fxghczwsc34i13swsn0iap9g6wqb0vnn4rbh3"; + version = "0.17.1.1"; + sha256 = "1mba3xv44qcxvhn24az6lj0i2kk4np7sx4bn05hzcl5sydjlzdaa"; libraryHaskellDepends = [ aeson aeson-pretty @@ -439603,7 +439785,212 @@ self: { } ) { }; + lsp-test_0_18_0_0 = callPackage ( + { + mkDerivation, + aeson, + aeson-pretty, + ansi-terminal, + async, + base, + bytestring, + co-log-core, + conduit, + conduit-parse, + containers, + data-default, + Diff, + directory, + exceptions, + extra, + filepath, + Glob, + hspec, + lens, + lens-aeson, + lsp, + lsp-types, + mtl, + parser-combinators, + process, + some, + text, + time, + transformers, + unix, + unliftio, + }: + mkDerivation { + pname = "lsp-test"; + version = "0.18.0.0"; + sha256 = "14fhjbf8s9nwks4fxghczwsc34i13swsn0iap9g6wqb0vnn4rbh3"; + libraryHaskellDepends = [ + aeson + aeson-pretty + ansi-terminal + async + base + bytestring + co-log-core + conduit + conduit-parse + containers + data-default + Diff + directory + exceptions + extra + filepath + Glob + lens + lens-aeson + lsp + lsp-types + mtl + parser-combinators + process + some + text + time + transformers + unix + ]; + testHaskellDepends = [ + aeson + base + co-log-core + containers + data-default + directory + extra + filepath + hspec + lens + lsp + mtl + parser-combinators + process + text + unliftio + ]; + testToolDepends = [ lsp ]; + benchmarkHaskellDepends = [ + base + extra + lsp + process + ]; + description = "Functional test framework for LSP servers"; + license = lib.licensesSpdx."BSD-3-Clause"; + hydraPlatforms = lib.platforms.none; + } + ) { }; + lsp-types = callPackage ( + { + mkDerivation, + aeson, + base, + binary, + containers, + data-default, + deepseq, + Diff, + directory, + dlist, + exceptions, + file-embed, + filepath, + generic-arbitrary, + hashable, + hspec, + hspec-discover, + hspec-golden, + indexed-traversable, + indexed-traversable-instances, + lens, + mod, + mtl, + network-uri, + prettyprinter, + QuickCheck, + quickcheck-instances, + regex, + row-types, + safe, + some, + template-haskell, + text, + witherable, + }: + mkDerivation { + pname = "lsp-types"; + version = "2.3.0.1"; + sha256 = "0ygq73miijswpqx1bi1dfr7ia4qs22pl8485sqsi4d6ybwlrnln6"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson + base + binary + containers + data-default + deepseq + Diff + dlist + exceptions + file-embed + filepath + generic-arbitrary + hashable + indexed-traversable + indexed-traversable-instances + lens + mod + mtl + network-uri + prettyprinter + QuickCheck + quickcheck-instances + row-types + safe + some + template-haskell + text + ]; + executableHaskellDepends = [ + base + containers + directory + filepath + mtl + prettyprinter + regex + text + witherable + ]; + testHaskellDepends = [ + aeson + base + filepath + hspec + hspec-golden + lens + network-uri + prettyprinter + QuickCheck + quickcheck-instances + text + ]; + testToolDepends = [ hspec-discover ]; + doHaddock = false; + description = "Haskell library for the Microsoft Language Server Protocol, data types"; + license = lib.licensesSpdx."MIT"; + mainProgram = "generator"; + } + ) { }; + + lsp-types_2_4_0_0 = callPackage ( { mkDerivation, aeson, @@ -439703,6 +440090,7 @@ self: { doHaddock = false; description = "Haskell library for the Microsoft Language Server Protocol, data types"; license = lib.licensesSpdx."MIT"; + hydraPlatforms = lib.platforms.none; mainProgram = "generator"; } ) { };