diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 2d599b24e738..e99d653d832b 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -2038,13 +2038,13 @@ self: super: { # 2021-08-18: streamly-posix was released with hspec 2.8.2, but it works with older versions too. streamly-posix = doJailbreak super.streamly-posix; - # 2021-09-13: hls 1.3 needs a newer lsp than stackage-lts. (lsp >= 1.2.0.1) + # 2021-09-13: hls 1.6 needs a newer lsp than stackage-lts. (lsp >= 1.2.0.1) # (hls is nearly the only consumer, but consists of 18 packages, so we bump lsp globally.) - lsp = doDistribute self.lsp_1_2_0_1; - lsp-types = doDistribute self.lsp-types_1_3_0_1; + lsp = doDistribute self.lsp_1_4_0_0; + lsp-types = doDistribute self.lsp-types_1_4_0_1; # Not running the "example" test because it requires a binary from lsps test # suite which is not part of the output of lsp. - lsp-test = doDistribute (overrideCabal (old: { testTarget = "tests func-test"; }) self.lsp-test_0_14_0_1); + lsp-test = doDistribute (overrideCabal (old: { testTarget = "tests func-test"; }) self.lsp-test_0_14_0_2); # 2021-09-14: Tests are flaky. hls-splice-plugin = dontCheck super.hls-splice-plugin; diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index 72c6cebb7bb4..799a668ea075 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -82,8 +82,6 @@ default-package-overrides: - reflex-dom-pandoc < 1.0.0.0 # 2021-09-07: pin to our current GHC version - ghc-api-compat == 8.10.7 - # 2021-09-14: Pin hiedb to version needed by ghcide - - hiedb == 0.4.0.* # 2021-10-13: weeder 2.3.0 require GHC == 9.0.*; remove pin when GHC version changes - weeder < 2.3.0 # 2021-10-10: taskwarrior 0.4 requires aeson > 2.0.1.0 @@ -169,10 +167,6 @@ extra-packages: - brick == 0.64.* # 2021-12-03: matterhorn depends on brick < 0.65 - path == 0.9.0 # 2021-12-03: path version building with stackage genvalidity and GHC 9.0.2 - ormolu == 0.3.* # 2021-12-03: for HLS with GHC 9.0.2 - # 2022-01-08 hls-plugin-api 1.2.0.2 needs lsp < 1.3, but newer than stackage - - lsp < 1.3 - - lsp-types < 1.4 - - lsp-test < 0.14.0.2 package-maintainers: abbradar: diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index 58a8aaa7fd43..2e753d3de807 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -804,90 +804,11 @@ self: super: builtins.intersectAttrs super { '' + drv.postInstall or ""; }) super.hlint; - hls-brittany-plugin = overrideCabal (drv: { - testToolDepends = [ pkgs.git ]; - preCheck = '' - export HOME=$TMPDIR/home - ''; - }) super.hls-brittany-plugin; - hls-class-plugin = overrideCabal (drv: { - testToolDepends = [ pkgs.git ]; - preCheck = '' - export HOME=$TMPDIR/home - ''; - }) super.hls-class-plugin; - hls-ormolu-plugin = overrideCabal (drv: { - testToolDepends = [ pkgs.git ]; - preCheck = '' - export HOME=$TMPDIR/home - ''; - }) super.hls-ormolu-plugin; - hls-fourmolu-plugin = overrideCabal (drv: { - testToolDepends = [ pkgs.git ]; - preCheck = '' - export HOME=$TMPDIR/home - ''; - }) super.hls-fourmolu-plugin; - hls-module-name-plugin = overrideCabal (drv: { - testToolDepends = [ pkgs.git ]; - preCheck = '' - export HOME=$TMPDIR/home - ''; - }) super.hls-module-name-plugin; - hls-rename-plugin = overrideCabal (drv: { - testToolDepends = [ pkgs.git ]; - preCheck = '' - export HOME=$TMPDIR/home - '' + (drv.preCheck or ""); - }) super.hls-rename-plugin; - hls-splice-plugin = overrideCabal (drv: { - testToolDepends = [ pkgs.git ]; - preCheck = '' - export HOME=$TMPDIR/home - ''; - }) super.hls-splice-plugin; - hls-floskell-plugin = overrideCabal (drv: { - testToolDepends = [ pkgs.git ]; - preCheck = '' - export HOME=$TMPDIR/home - ''; - }) super.hls-floskell-plugin; - hls-pragmas-plugin = overrideCabal (drv: { - testToolDepends = [ pkgs.git ]; - preCheck = '' - export HOME=$TMPDIR/home - ''; - }) super.hls-pragmas-plugin; - hls-hlint-plugin = overrideCabal (drv: { - testToolDepends = [ pkgs.git ]; - preCheck = '' - export HOME=$TMPDIR/home - ''; - }) super.hls-hlint-plugin; hiedb = overrideCabal (drv: { preCheck = '' export PATH=$PWD/dist/build/hiedb:$PATH ''; }) super.hiedb; - hls-call-hierarchy-plugin = overrideCabal (drv: { - preCheck = '' - export HOME=$TMPDIR/home - ''; - }) super.hls-call-hierarchy-plugin; - # Tests have file permissions expections that don‘t work with the nix store. - hls-stylish-haskell-plugin = dontCheck super.hls-stylish-haskell-plugin; - hls-haddock-comments-plugin = overrideCabal (drv: { - testToolDepends = [ pkgs.git ]; - preCheck = '' - export HOME=$TMPDIR/home - ''; - }) super.hls-haddock-comments-plugin; - hls-eval-plugin = overrideCabal (drv: { - testToolDepends = [ pkgs.git ]; - preCheck = '' - export HOME=$TMPDIR/home - ''; - }) super.hls-eval-plugin; taglib = overrideCabal (drv: { librarySystemDepends = [ @@ -1052,4 +973,33 @@ self: super: builtins.intersectAttrs super { install -Dm644 test/examples/*.jac -t "$docDir/examples" ''; }) super.jacinda; + +# haskell-language-server plugins all use the same test harness so we give them what we want in this loop. +} // pkgs.lib.mapAttrs + (_: overrideCabal (drv: { + testToolDepends = (drv.testToolDepends or [ ]) ++ [ pkgs.git ]; + preCheck = '' + export HOME=$TMPDIR/home + '' + (drv.preCheck or ""); + })) +{ + inherit (super) + hls-alternate-number-format-plugin + hls-brittany-plugin + hls-call-hierarchy-plugin + hls-class-plugin + hls-eval-plugin + hls-floskell-plugin + hls-fourmolu-plugin + hls-haddock-comments-plugin + hls-module-name-plugin + hls-ormolu-plugin + hls-pragmas-plugin + hls-qualify-imported-names-plugin + hls-rename-plugin + hls-selection-range-plugin + hls-splice-plugin; + # Tests have file permissions expections that don‘t work with the nix store. + hls-stylish-haskell-plugin = dontCheck super.hls-stylish-haskell-plugin; + hls-hlint-plugin = dontCheck super.hls-hlint-plugin; } diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index a09aa177f047..1e5d7ff77b33 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -134292,31 +134292,6 @@ self: { }) {}; "hiedb" = callPackage - ({ mkDerivation, algebraic-graphs, ansi-terminal, array, base - , bytestring, containers, directory, extra, filepath, ghc - , ghc-paths, hie-compat, hspec, lucid, mtl, optparse-applicative - , process, sqlite-simple, temporary, terminal-size, text - }: - mkDerivation { - pname = "hiedb"; - version = "0.4.0.0"; - sha256 = "1frcl9mxmn97qc97l3kw21ksapyndn6jq7yfxxrr0fvzn7jji7wv"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - algebraic-graphs ansi-terminal array base bytestring containers - directory extra filepath ghc hie-compat lucid mtl - optparse-applicative sqlite-simple terminal-size text - ]; - executableHaskellDepends = [ base ghc-paths ]; - testHaskellDepends = [ - base directory filepath ghc ghc-paths hspec process temporary - ]; - description = "Generates a references DB from .hie files"; - license = lib.licenses.bsd3; - }) {}; - - "hiedb_0_4_1_0" = callPackage ({ mkDerivation, algebraic-graphs, ansi-terminal, array, base , bytestring, containers, directory, extra, filepath, ghc , ghc-paths, hie-compat, hspec, lucid, mtl, optparse-applicative @@ -134339,7 +134314,6 @@ self: { ]; description = "Generates a references DB from .hie files"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "hieraclus" = callPackage @@ -176741,39 +176715,6 @@ self: { license = lib.licenses.mit; }) {}; - "lsp_1_2_0_1" = callPackage - ({ mkDerivation, aeson, async, attoparsec, base, bytestring - , containers, data-default, dependent-map, exceptions, filepath - , hashable, hslogger, hspec, hspec-discover, lens, lsp-types, mtl - , network-uri, QuickCheck, quickcheck-instances, random - , rope-utf16-splay, scientific, sorted-list, stm, text, time - , transformers, unliftio-core, unordered-containers, uuid - }: - mkDerivation { - pname = "lsp"; - version = "1.2.0.1"; - sha256 = "1bdgbxakdyhkrddj58f0al2wrx1mckp6hia7hk2wqjix20my8v49"; - revision = "1"; - editedCabalFile = "193y4b3l6agm83ng2c0ngvd0j9a71q237g9i5v57p502lhzfaag2"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson async attoparsec base bytestring containers data-default - dependent-map exceptions hashable hslogger lens lsp-types mtl - network-uri random scientific sorted-list stm text time - transformers unliftio-core unordered-containers uuid - ]; - testHaskellDepends = [ - aeson base containers filepath hspec lens network-uri QuickCheck - quickcheck-instances rope-utf16-splay sorted-list text - unordered-containers - ]; - testToolDepends = [ hspec-discover ]; - description = "Haskell library for the Microsoft Language Server Protocol"; - license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - }) {}; - "lsp_1_4_0_0" = callPackage ({ mkDerivation, aeson, async, attoparsec, base, bytestring , containers, data-default, exceptions, filepath, hashable @@ -176832,34 +176773,6 @@ self: { license = lib.licenses.bsd3; }) {}; - "lsp-test_0_14_0_1" = callPackage - ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base - , bytestring, conduit, conduit-parse, containers, data-default - , Diff, directory, extra, filepath, Glob, hspec, lens, lsp - , lsp-types, mtl, parser-combinators, process, some, text, time - , transformers, unix, unliftio, unordered-containers - }: - mkDerivation { - pname = "lsp-test"; - version = "0.14.0.1"; - sha256 = "0fr1812dnzv9hljb77khspaz666wqr6m1gj963v0z2j6xgvw2ipy"; - libraryHaskellDepends = [ - aeson aeson-pretty ansi-terminal async base bytestring conduit - conduit-parse containers data-default Diff directory filepath Glob - lens lsp-types mtl parser-combinators process some text time - transformers unix unordered-containers - ]; - testHaskellDepends = [ - aeson async base data-default directory filepath hspec lens lsp mtl - parser-combinators process text unliftio unordered-containers - ]; - testToolDepends = [ lsp ]; - benchmarkHaskellDepends = [ base extra lsp process ]; - description = "Functional test framework for LSP servers"; - license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - }) {}; - "lsp-test_0_14_0_2" = callPackage ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base , bytestring, conduit, conduit-parse, containers, data-default @@ -176911,30 +176824,6 @@ self: { license = lib.licenses.mit; }) {}; - "lsp-types_1_3_0_1" = callPackage - ({ mkDerivation, aeson, base, binary, bytestring, containers - , data-default, deepseq, dependent-sum, dependent-sum-template - , Diff, directory, dlist, filepath, hashable, hslogger, lens, mtl - , network-uri, rope-utf16-splay, scientific, some, template-haskell - , temporary, text, unordered-containers - }: - mkDerivation { - pname = "lsp-types"; - version = "1.3.0.1"; - sha256 = "05zgd99y7xnxnydisq5x24n1af2isar172p247hb5q0mp12hdd3z"; - revision = "1"; - editedCabalFile = "031b69fxi8m4fcwwgqb7cf4k806ikkmjqnn3wv6bn3sny1hn5gg7"; - libraryHaskellDepends = [ - aeson base binary bytestring containers data-default deepseq - dependent-sum dependent-sum-template Diff directory dlist filepath - hashable hslogger lens mtl network-uri rope-utf16-splay scientific - some template-haskell temporary text unordered-containers - ]; - description = "Haskell library for the Microsoft Language Server Protocol, data types"; - license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - }) {}; - "lsp-types_1_4_0_1" = callPackage ({ mkDerivation, aeson, base, binary, bytestring, containers , data-default, deepseq, Diff, directory, dlist, filepath, hashable