3
0
Fork 0
forked from mirrors/nixpkgs

haskellPackages.haskell-language-server: 0.2.0 -> 0.3.0

While we are at it I:
* Disable tests, because I can‘t keep up with the speed hls introduces
more tests that cause trouble in nixpkgs.
* Fix builds of fourmolu and retrie
* Remove the wrapper for hls which is obsolete because of improved
package detection in hie-bios. And added a note that this can be removed
for ghcide soon, too.
This commit is contained in:
Malte Brandy 2020-08-16 13:47:49 +02:00
parent 00a9d3f261
commit af017c431a
No known key found for this signature in database
GPG key ID: 226A2D41EF5378C9
8 changed files with 88 additions and 73 deletions

View file

@ -1323,41 +1323,22 @@ self: super: {
# https://github.com/ennocramer/monad-dijkstra/issues/4 # https://github.com/ennocramer/monad-dijkstra/issues/4
monad-dijkstra = dontCheck (doJailbreak super.monad-dijkstra); monad-dijkstra = dontCheck (doJailbreak super.monad-dijkstra);
# haskell-language-server uses its own fork of ghcide fourmolu = super.fourmolu.overrideScope (self: super: {
# Test disabled: it seems to freeze (is it just that it takes a long time ?) aeson = dontCheck self.aeson_1_5_2_0;
hls-ghcide = });
dontCheck (( # Tests disabled because they access /home
overrideCabal super.hls-ghcide haskell-language-server = (dontCheck super.haskell-language-server).overrideScope (self: super: {
(old: { # haskell-language-server uses its own fork of ghcide
# The integration test run by lsp-test requires the executable to be in the PATH # Test disabled: it seems to freeze (is it just that it takes a long time ?)
preCheck = '' ghcide = dontCheck super.hls-ghcide;
export PATH=$PATH:dist/build/ghcide # we are faster than stack here
''; hie-bios = dontCheck self.hie-bios_0_6_2;
})).override { lsp-test = dontCheck self.lsp-test_0_11_0_4;
# we are faster than stack here # fourmolu cant compile with an older aeson
hie-bios = dontCheck self.hie-bios_0_6_2; aeson = dontCheck super.aeson_1_5_2_0;
lsp-test = dontCheck self.lsp-test_0_11_0_4; # brittany has an aeson upper bound of 1.5
}); brittany = doJailbreak super.brittany;
});
haskell-language-server = (overrideCabal super.haskell-language-server
(old: {
# The integration test run by lsp-test requires the executable to be in the PATH
preCheck = ''
export PATH=$PATH:dist/build/haskell-language-server
'';
# The wrapper test does not work for now.
testTarget = "func-test";
# test needs the git tool
testToolDepends = old.testToolDepends
++ [ pkgs.git ];
})).override {
# use a fork of ghcide
ghcide = self.hls-ghcide;
# we are faster than stack here
hie-bios = dontCheck self.hie-bios_0_6_2;
lsp-test = dontCheck self.lsp-test_0_11_0_4;
};
# https://github.com/kowainik/policeman/issues/57 # https://github.com/kowainik/policeman/issues/57
policeman = doJailbreak super.policeman; policeman = doJailbreak super.policeman;

View file

@ -2540,6 +2540,7 @@ default-package-overrides:
extra-packages: extra-packages:
- aeson < 0.8 # newer versions don't work with GHC 7.6.x or earlier - aeson < 0.8 # newer versions don't work with GHC 7.6.x or earlier
- aeson == 1.5.2.0 # needed for fourmolu 0.1.0.0, but 1.5.3 is to new for our purpose
- aeson-pretty < 0.8 # required by elm compiler - aeson-pretty < 0.8 # required by elm compiler
- Agda == 2.6.1 # allows the agdaPackage set to be fixed to this version so that it won't break when another agda version is released. - Agda == 2.6.1 # allows the agdaPackage set to be fixed to this version so that it won't break when another agda version is released.
- ansi-terminal == 0.10.3 # required by cabal-plan, and policeman in ghc-8.8.x - ansi-terminal == 0.10.3 # required by cabal-plan, and policeman in ghc-8.8.x
@ -5074,7 +5075,6 @@ broken-packages:
- foscam-filename - foscam-filename
- foscam-sort - foscam-sort
- Foster - Foster
- fourmolu
- fpco-api - fpco-api
- fplll - fplll
- fpnla-examples - fpnla-examples
@ -9165,7 +9165,6 @@ broken-packages:
- rethinkdb-client-driver - rethinkdb-client-driver
- rethinkdb-model - rethinkdb-model
- rethinkdb-wereHamster - rethinkdb-wereHamster
- retrie
- retryer - retryer
- reverse-geocoding - reverse-geocoding
- reversi - reversi

View file

@ -767,4 +767,8 @@ self: super: builtins.intersectAttrs super {
postgresql-libpq-notify = dontCheck super.postgresql-libpq-notify; postgresql-libpq-notify = dontCheck super.postgresql-libpq-notify;
postgresql-pure = dontCheck super.postgresql-pure; postgresql-pure = dontCheck super.postgresql-pure;
retrie = overrideCabal super.retrie (drv: {
testToolDepends = [ pkgs.git pkgs.mercurial ];
});
} }

View file

@ -23913,6 +23913,39 @@ self: {
license = stdenv.lib.licenses.bsd3; license = stdenv.lib.licenses.bsd3;
}) {}; }) {};
"aeson_1_5_2_0" = callPackage
({ mkDerivation, attoparsec, base, base-compat
, base-compat-batteries, base-orphans, base16-bytestring
, bytestring, containers, deepseq, Diff, directory, dlist, filepath
, generic-deriving, ghc-prim, hashable, hashable-time
, integer-logarithms, primitive, QuickCheck, quickcheck-instances
, scientific, tagged, tasty, tasty-golden, tasty-hunit
, tasty-quickcheck, template-haskell, text, th-abstraction, these
, time, time-compat, unordered-containers, uuid-types, vector
}:
mkDerivation {
pname = "aeson";
version = "1.5.2.0";
sha256 = "0awk3dss79mmcxpy147mijnd9icvlnm77bq248ibbbzx9y99hdfd";
libraryHaskellDepends = [
attoparsec base base-compat-batteries bytestring containers deepseq
dlist ghc-prim hashable primitive scientific tagged
template-haskell text th-abstraction these time time-compat
unordered-containers uuid-types vector
];
testHaskellDepends = [
attoparsec base base-compat base-orphans base16-bytestring
bytestring containers Diff directory dlist filepath
generic-deriving ghc-prim hashable hashable-time integer-logarithms
QuickCheck quickcheck-instances scientific tagged tasty
tasty-golden tasty-hunit tasty-quickcheck template-haskell text
these time time-compat unordered-containers uuid-types vector
];
description = "Fast JSON parsing and encoding";
license = stdenv.lib.licenses.bsd3;
hydraPlatforms = stdenv.lib.platforms.none;
}) {};
"aeson_1_5_3_0" = callPackage "aeson_1_5_3_0" = callPackage
({ mkDerivation, attoparsec, base, base-compat ({ mkDerivation, attoparsec, base, base-compat
, base-compat-batteries, base-orphans, base16-bytestring , base-compat-batteries, base-orphans, base16-bytestring
@ -92164,8 +92197,6 @@ self: {
testToolDepends = [ hspec-discover ]; testToolDepends = [ hspec-discover ];
description = "A formatter for Haskell source code"; description = "A formatter for Haskell source code";
license = stdenv.lib.licenses.bsd3; license = stdenv.lib.licenses.bsd3;
hydraPlatforms = stdenv.lib.platforms.none;
broken = true;
}) {}; }) {};
"fpco-api" = callPackage "fpco-api" = callPackage
@ -215815,8 +215846,6 @@ self: {
]; ];
description = "A powerful, easy-to-use codemodding tool for Haskell"; description = "A powerful, easy-to-use codemodding tool for Haskell";
license = stdenv.lib.licenses.mit; license = stdenv.lib.licenses.mit;
hydraPlatforms = stdenv.lib.platforms.none;
broken = true;
}) {}; }) {};
"retry" = callPackage "retry" = callPackage

View file

@ -105,8 +105,9 @@ symlinkJoin {
--set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}" --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
fi fi
# ghcide and haskell-language-server do package discovery without calling our ghc wrapper. # ghcide 0.2.0 does package discovery without calling our ghc wrapper.
for prg in ghcide haskell-language-server; do # 2020-08-16 We can most likely remove this workaround as soon as we build ghcide with a newer hie-bios (currently we use 0.5.1 from stack)
for prg in ghcide; do
if [[ -x "$out/bin/$prg" ]]; then if [[ -x "$out/bin/$prg" ]]; then
wrapProgram $out/bin/$prg \ wrapProgram $out/bin/$prg \
--set "NIX_${ghcCommandCaps}" "$out/bin/${ghcCommand}" \ --set "NIX_${ghcCommandCaps}" "$out/bin/${ghcCommand}" \

View file

@ -1,30 +1,31 @@
{ mkDerivation, aeson, base, binary, blaze-markup, brittany { mkDerivation, aeson, base, binary, blaze-markup, brittany
, bytestring, containers, data-default, deepseq, Diff, directory , bytestring, containers, data-default, deepseq, Diff, directory
, extra, fetchgit, filepath, floskell, ghc, ghc-paths, ghcide , extra, fetchgit, filepath, floskell, fourmolu, ghc, ghc-boot-th
, gitrev, hashable, haskell-lsp, haskell-lsp-types, hie-bios , ghc-paths, ghcide, gitrev, hashable, haskell-lsp
, hslogger, hspec, hspec-core, hspec-expectations, lens, lsp-test , haskell-lsp-types, hie-bios, hslogger, hspec, hspec-core, lens
, optparse-applicative, optparse-simple, ormolu, process , lsp-test, optparse-applicative, optparse-simple, ormolu, process
, regex-tdfa, safe-exceptions, shake, stdenv, stm, stylish-haskell , regex-tdfa, retrie, safe-exceptions, shake, stdenv, stm
, tasty, tasty-ant-xml, tasty-expected-failure, tasty-golden , stylish-haskell, tasty, tasty-ant-xml, tasty-expected-failure
, tasty-hunit, tasty-rerun, temporary, text, time, transformers , tasty-golden, tasty-hunit, tasty-rerun, temporary, text, time
, unix, unordered-containers, yaml , transformers, unix, unordered-containers, yaml
}: }:
mkDerivation { mkDerivation {
pname = "haskell-language-server"; pname = "haskell-language-server";
version = "0.2.2.0"; version = "0.3.0.0";
src = fetchgit { src = fetchgit {
url = "https://github.com/haskell/haskell-language-server.git"; url = "https://github.com/haskell/haskell-language-server.git";
sha256 = "0g9g2gyb0fidx16l741ky12djxh4cid9akvxa48105iq1gdihd8l"; sha256 = "0gh3sgy6a08d8d3q6r2qn5r817ilzka2qkp0g0y6wsx7rjwag0yx";
rev = "12c0e4423263140e3d16e76681927ec69fe4929f"; rev = "23dda97f583e8ff39993b89c01bbd1ac24187605";
fetchSubmodules = true; fetchSubmodules = true;
}; };
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
libraryHaskellDepends = [ libraryHaskellDepends = [
aeson base binary brittany bytestring containers data-default aeson base binary brittany bytestring containers data-default
deepseq Diff directory extra filepath floskell ghc ghcide gitrev deepseq Diff directory extra filepath floskell fourmolu ghc
hashable haskell-lsp hie-bios hslogger lens optparse-simple ormolu ghc-boot-th ghcide gitrev hashable haskell-lsp hie-bios hslogger
process regex-tdfa shake stylish-haskell temporary text time lens optparse-simple ormolu process regex-tdfa retrie
safe-exceptions shake stylish-haskell temporary text time
transformers unix unordered-containers transformers unix unordered-containers
]; ];
executableHaskellDepends = [ executableHaskellDepends = [
@ -36,9 +37,9 @@ mkDerivation {
testHaskellDepends = [ testHaskellDepends = [
aeson base blaze-markup bytestring containers data-default aeson base blaze-markup bytestring containers data-default
directory filepath haskell-lsp haskell-lsp-types hie-bios hslogger directory filepath haskell-lsp haskell-lsp-types hie-bios hslogger
hspec hspec-core hspec-expectations lens lsp-test process stm tasty hspec hspec-core lens lsp-test process stm tasty tasty-ant-xml
tasty-ant-xml tasty-expected-failure tasty-golden tasty-hunit tasty-expected-failure tasty-golden tasty-hunit tasty-rerun
tasty-rerun temporary text transformers unordered-containers yaml temporary text transformers unordered-containers yaml
]; ];
testToolDepends = [ ghcide ]; testToolDepends = [ ghcide ];
homepage = "https://github.com/haskell/haskell-language-server#readme"; homepage = "https://github.com/haskell/haskell-language-server#readme";

View file

@ -7,7 +7,7 @@
, hie-bios, hslogger, lens, lsp-test, mtl, network-uri , hie-bios, hslogger, lens, lsp-test, mtl, network-uri
, opentelemetry, optparse-applicative, prettyprinter , opentelemetry, optparse-applicative, prettyprinter
, prettyprinter-ansi-terminal, process, QuickCheck , prettyprinter-ansi-terminal, process, QuickCheck
, quickcheck-instances, regex-tdfa, rope-utf16-splay , quickcheck-instances, regex-tdfa, rope-utf16-splay, safe
, safe-exceptions, shake, sorted-list, stdenv, stm, syb, tasty , safe-exceptions, shake, sorted-list, stdenv, stm, syb, tasty
, tasty-expected-failure, tasty-hunit, tasty-quickcheck , tasty-expected-failure, tasty-hunit, tasty-quickcheck
, tasty-rerun, text, time, transformers, unix, unordered-containers , tasty-rerun, text, time, transformers, unix, unordered-containers
@ -17,9 +17,9 @@ mkDerivation {
pname = "ghcide"; pname = "ghcide";
version = "0.2.0"; version = "0.2.0";
src = fetchgit { src = fetchgit {
url = "https://github.com/bubba/ghcide"; url = "https://github.com/wz1000/ghcide";
sha256 = "1kj2i86mkaxgxlrbmv2d24mch7hywgcy2n61z8paj21chncs1j5w"; sha256 = "1zq7ngaak8il91a309rl51dghzasnk4m2sm3av6d93cyqyra1hfc";
rev = "7e895cfa53260b41996df707baec496a8f2c75dc"; rev = "078e3d3c0d319f83841ccbcdc60ff5f0e243f6be";
fetchSubmodules = true; fetchSubmodules = true;
}; };
isLibrary = true; isLibrary = true;
@ -30,23 +30,23 @@ mkDerivation {
filepath fuzzy ghc ghc-boot ghc-boot-th ghc-check ghc-paths filepath fuzzy ghc ghc-boot ghc-boot-th ghc-check ghc-paths
haddock-library hashable haskell-lsp haskell-lsp-types hie-bios haddock-library hashable haskell-lsp haskell-lsp-types hie-bios
hslogger mtl network-uri opentelemetry prettyprinter hslogger mtl network-uri opentelemetry prettyprinter
prettyprinter-ansi-terminal regex-tdfa rope-utf16-splay prettyprinter-ansi-terminal regex-tdfa rope-utf16-splay safe
safe-exceptions shake sorted-list stm syb text time transformers safe-exceptions shake sorted-list stm syb text time transformers
unix unordered-containers utf8-string unix unordered-containers utf8-string
]; ];
executableHaskellDepends = [ executableHaskellDepends = [
aeson base bytestring containers data-default directory extra aeson base bytestring containers data-default directory extra
filepath gitrev hashable haskell-lsp haskell-lsp-types hie-bios filepath gitrev hashable haskell-lsp haskell-lsp-types hie-bios
lsp-test optparse-applicative process safe-exceptions text lens lsp-test optparse-applicative process safe-exceptions text
unordered-containers unordered-containers
]; ];
testHaskellDepends = [ testHaskellDepends = [
aeson base bytestring containers directory extra filepath ghc aeson base binary bytestring containers directory extra filepath
ghc-typelits-knownnat haddock-library haskell-lsp haskell-lsp-types ghc ghc-typelits-knownnat haddock-library haskell-lsp
lens lsp-test network-uri optparse-applicative process QuickCheck haskell-lsp-types lens lsp-test network-uri optparse-applicative
quickcheck-instances rope-utf16-splay safe-exceptions shake tasty process QuickCheck quickcheck-instances rope-utf16-splay safe
tasty-expected-failure tasty-hunit tasty-quickcheck tasty-rerun safe-exceptions shake tasty tasty-expected-failure tasty-hunit
text tasty-quickcheck tasty-rerun text
]; ];
benchmarkHaskellDepends = [ benchmarkHaskellDepends = [
aeson base Chart Chart-diagrams diagrams diagrams-svg directory aeson base Chart Chart-diagrams diagrams diagrams-svg directory

View file

@ -29,7 +29,7 @@ ghcide_new_version=$(curl --silent "https://api.github.com/repos/haskell/haskell
echo "Updating haskell-language-server from old version $ghcide_old_version to new version $ghcide_new_version." echo "Updating haskell-language-server from old version $ghcide_old_version to new version $ghcide_new_version."
echo "Running cabal2nix and outputting to ${ghcide_derivation_file}..." echo "Running cabal2nix and outputting to ${ghcide_derivation_file}..."
cabal2nix --revision "$ghcide_new_version" "https://github.com/bubba/ghcide" > "$ghcide_derivation_file" cabal2nix --revision "$ghcide_new_version" "https://github.com/wz1000/ghcide" > "$ghcide_derivation_file"
# =========================== # ===========================