haskellPackages.haskell-language-server: Fix dependencies and refactor overrides

This commit is contained in:
Malte Brandy 2022-02-05 03:12:50 +01:00
parent 7ef2b7a350
commit 11895db491
4 changed files with 33 additions and 200 deletions

View file

@ -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;

View file

@ -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:

View file

@ -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 dont 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 dont work with the nix store.
hls-stylish-haskell-plugin = dontCheck super.hls-stylish-haskell-plugin;
hls-hlint-plugin = dontCheck super.hls-hlint-plugin;
}

View file

@ -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