From f2a3df2f309137ae2bb282861bcb0d736a7679fb Mon Sep 17 00:00:00 2001 From: Malte Brandy Date: Tue, 14 Sep 2021 01:04:39 +0200 Subject: [PATCH] haskell-language-server: Fix build for new version + cleanups --- .../haskell-modules/configuration-common.nix | 25 ++++++----- .../configuration-hackage2nix/main.yaml | 3 +- .../haskell-modules/configuration-nix.nix | 10 +++++ .../haskell-modules/hackage-packages.nix | 43 +++++++++++-------- 4 files changed, 50 insertions(+), 31 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 57dcfbe604f2..b4ee2e390132 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1354,19 +1354,12 @@ self: super: { # 2021-06-20: Tests fail: https://github.com/haskell/haskell-language-server/issues/1949 hls-refine-imports-plugin = dontCheck super.hls-refine-imports-plugin; - # 2021-03-09: Golden tests seem to be missing in hackage release: - # https://github.com/haskell/haskell-language-server/issues/1536 - hls-tactics-plugin = dontCheck (super.hls-tactics-plugin.override { refinery = self.refinery_0_3_0_0; }); + # 2021-09-14: Tests are broken because of undeterministic variable names + hls-tactics-plugin = dontCheck super.hls-tactics-plugin; # 2021-03-21 Test hangs # https://github.com/haskell/haskell-language-server/issues/1562 - # Jailbreak because of: https://github.com/haskell/haskell-language-server/pull/1595 - ghcide = doJailbreak (dontCheck super.ghcide); - - # 2020-03-09: Tests broken in hackage release - # fixed on upstream, but not released in hiedb 0.3.0.1 - # https://github.com/wz1000/HieDb/issues/30 - hiedb = dontCheck super.hiedb; + ghcide = dontCheck super.ghcide; data-tree-print = doJailbreak super.data-tree-print; @@ -1842,9 +1835,6 @@ EOT testFlags = [ "--pattern" "!/[NOCI]/" ]; }; - # Tests require to run a binary which isn't built - lsp-test = dontCheck super.lsp-test; - # 2021-05-22: Tests fail sometimes (even consistently on hydra) # when running a fs-related test with >= 12 jobs. To work around # this, run tests with only a single job. @@ -1934,4 +1924,13 @@ EOT language-docker = self.language-docker_10_1_2; }; + # 2021-09-13: hls 1.3 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; + # 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 self.lsp-test_0_14_0_1 (old: { testTarget = "tests func-test"; })); + + } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index 022e8f74f233..9df8daeb0452 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -96,6 +96,8 @@ 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.* extra-packages: - base16-bytestring < 1 # required for cabal-install etc. @@ -118,7 +120,6 @@ extra-packages: - mmorph == 1.1.3 # Newest working version of mmorph on ghc 8.6.5. needed for hls - network == 2.6.3.1 # required by pkgs/games/hedgewars/default.nix, 2020-11-15 - optparse-applicative < 0.16 # needed for niv-0.2.19 - - refinery == 0.3.* # required by hls-tactics-plugin-1.0.0.0 - resolv == 0.1.1.2 # required to build cabal-install-3.0.0.0 with pre ghc-8.8.x - sbv == 7.13 # required for pkgs.petrinizer - crackNum < 3.0 # 2021-05-21: 3.0 removed the lib which sbv 7.13 uses diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index 1f15b4cdda7c..446eaaff7ac4 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -842,6 +842,16 @@ self: super: builtins.intersectAttrs super { export HOME=$TMPDIR/home ''; }); + hiedb = overrideCabal super.hiedb (drv: { + preCheck = '' + export PATH=$PWD/dist/build/hiedb:$PATH + ''; + }); + hls-call-hierarchy-plugin = overrideCabal super.hls-call-hierarchy-plugin (drv: { + preCheck = '' + export HOME=$TMPDIR/home + ''; + }); # 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 super.hls-haddock-comments-plugin (drv: { diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 7c527acc301b..17a96f710750 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -129792,6 +129792,31 @@ 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 @@ -129814,6 +129839,7 @@ self: { ]; description = "Generates a references DB from .hie files"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; }) {}; "hieraclus" = callPackage @@ -222979,23 +223005,6 @@ self: { broken = true; }) {}; - "refinery_0_3_0_0" = callPackage - ({ mkDerivation, base, checkers, exceptions, hspec, logict, mmorph - , mtl, QuickCheck - }: - mkDerivation { - pname = "refinery"; - version = "0.3.0.0"; - sha256 = "1bsbnxf75prw153c3k02jk84h3sravdi1c1sl75c7sx4xq81qhlp"; - libraryHaskellDepends = [ base exceptions logict mmorph mtl ]; - testHaskellDepends = [ - base checkers exceptions hspec logict mmorph mtl QuickCheck - ]; - description = "Toolkit for building proof automation systems"; - license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - }) {}; - "refinery" = callPackage ({ mkDerivation, base, checkers, exceptions, hspec, mmorph, mtl , QuickCheck