haskell-language-server: Use hackage version and cleanup

This commit is contained in:
Malte Brandy
2021-02-05 19:27:09 +01:00
committed by Peter Simons
parent b1d2e3b10f
commit bac09b7658
13 changed files with 80 additions and 340 deletions

View File

@@ -1,53 +0,0 @@
{ mkDerivation, aeson, base, binary, blaze-markup, brittany
, bytestring, containers, data-default, deepseq, directory, extra
, fetchgit, filepath, floskell, fourmolu, ghc, ghc-boot-th
, ghc-paths, ghcide, gitrev, hashable, haskell-lsp, hie-bios
, hls-class-plugin, hls-eval-plugin, hls-explicit-imports-plugin
, hls-hlint-plugin, hls-plugin-api, hls-retrie-plugin
, hls-tactics-plugin, hslogger, hspec, hspec-core
, hspec-expectations, lens, lsp-test, mtl, optparse-applicative
, optparse-simple, ormolu, process, regex-tdfa, safe-exceptions
, shake, lib, stm, stylish-haskell, tasty, tasty-ant-xml
, tasty-expected-failure, tasty-golden, tasty-hunit, tasty-rerun
, temporary, text, transformers, unordered-containers, with-utf8
, yaml
}:
mkDerivation {
pname = "haskell-language-server";
version = "0.8.0.0";
src = fetchgit {
url = "https://github.com/haskell/haskell-language-server.git";
sha256 = "0p6fqs07lajbi2g1wf4w3j5lvwknnk58n12vlg48cs4iz25gp588";
rev = "eb58f13f7b8e4f9bc771af30ff9fd82dc4309ff5";
fetchSubmodules = true;
};
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
base containers data-default directory extra filepath ghc ghcide
gitrev haskell-lsp hls-plugin-api hslogger optparse-applicative
optparse-simple process shake text unordered-containers
];
executableHaskellDepends = [
aeson base binary brittany bytestring containers deepseq directory
extra filepath floskell fourmolu ghc ghc-boot-th ghc-paths ghcide
gitrev hashable haskell-lsp hie-bios hls-class-plugin
hls-eval-plugin hls-explicit-imports-plugin hls-hlint-plugin
hls-plugin-api hls-retrie-plugin hls-tactics-plugin hslogger lens
mtl optparse-applicative optparse-simple ormolu process regex-tdfa
safe-exceptions shake stylish-haskell temporary text transformers
unordered-containers with-utf8
];
testHaskellDepends = [
aeson base blaze-markup bytestring containers data-default
directory extra filepath haskell-lsp hie-bios hls-plugin-api
hslogger hspec hspec-core hspec-expectations lens lsp-test process
stm tasty tasty-ant-xml tasty-expected-failure tasty-golden
tasty-hunit tasty-rerun temporary text transformers
unordered-containers yaml
];
testToolDepends = [ ghcide ];
homepage = "https://github.com/haskell/haskell-language-server#readme";
description = "LSP server for GHC";
license = lib.licenses.asl20;
}

View File

@@ -1,21 +0,0 @@
{ mkDerivation, aeson, base, containers, fetchgit, ghc
, ghc-exactprint, ghcide, haskell-lsp, hls-plugin-api, lens, shake
, lib, text, transformers, unordered-containers
}:
mkDerivation {
pname = "hls-class-plugin";
version = "0.1.0.0";
src = fetchgit {
url = "https://github.com/haskell/haskell-language-server.git";
sha256 = "0p6fqs07lajbi2g1wf4w3j5lvwknnk58n12vlg48cs4iz25gp588";
rev = "eb58f13f7b8e4f9bc771af30ff9fd82dc4309ff5";
fetchSubmodules = true;
};
postUnpack = "sourceRoot+=/plugins/hls-class-plugin; echo source root reset to $sourceRoot";
libraryHaskellDepends = [
aeson base containers ghc ghc-exactprint ghcide haskell-lsp
hls-plugin-api lens shake text transformers unordered-containers
];
description = "Explicit imports plugin for Haskell Language Server";
license = lib.licenses.asl20;
}

View File

@@ -1,27 +0,0 @@
{ mkDerivation, aeson, base, containers, deepseq, Diff, directory
, extra, fetchgit, filepath, ghc, ghc-boot-th, ghc-paths, ghcide
, hashable, haskell-lsp, haskell-lsp-types, hls-plugin-api
, parser-combinators, pretty-simple, QuickCheck, safe-exceptions
, shake, lib, temporary, text, time, transformers
, unordered-containers
}:
mkDerivation {
pname = "hls-eval-plugin";
version = "0.1.0.0";
src = fetchgit {
url = "https://github.com/haskell/haskell-language-server.git";
sha256 = "0p6fqs07lajbi2g1wf4w3j5lvwknnk58n12vlg48cs4iz25gp588";
rev = "eb58f13f7b8e4f9bc771af30ff9fd82dc4309ff5";
fetchSubmodules = true;
};
postUnpack = "sourceRoot+=/plugins/hls-eval-plugin; echo source root reset to $sourceRoot";
libraryHaskellDepends = [
aeson base containers deepseq Diff directory extra filepath ghc
ghc-boot-th ghc-paths ghcide hashable haskell-lsp haskell-lsp-types
hls-plugin-api parser-combinators pretty-simple QuickCheck
safe-exceptions shake temporary text time transformers
unordered-containers
];
description = "Eval plugin for Haskell Language Server";
license = lib.licenses.asl20;
}

View File

@@ -1,21 +0,0 @@
{ mkDerivation, aeson, base, containers, deepseq, fetchgit, ghc
, ghcide, haskell-lsp-types, hls-plugin-api, shake, lib, text
, unordered-containers
}:
mkDerivation {
pname = "hls-explicit-imports-plugin";
version = "0.1.0.0";
src = fetchgit {
url = "https://github.com/haskell/haskell-language-server.git";
sha256 = "0p6fqs07lajbi2g1wf4w3j5lvwknnk58n12vlg48cs4iz25gp588";
rev = "eb58f13f7b8e4f9bc771af30ff9fd82dc4309ff5";
fetchSubmodules = true;
};
postUnpack = "sourceRoot+=/plugins/hls-explicit-imports-plugin; echo source root reset to $sourceRoot";
libraryHaskellDepends = [
aeson base containers deepseq ghc ghcide haskell-lsp-types
hls-plugin-api shake text unordered-containers
];
description = "Explicit imports plugin for Haskell Language Server";
license = lib.licenses.asl20;
}

View File

@@ -1,26 +0,0 @@
{ mkDerivation, aeson, apply-refact, base, binary, bytestring
, containers, data-default, deepseq, Diff, directory, extra
, fetchgit, filepath, ghc, ghc-lib, ghc-lib-parser-ex, ghcide
, hashable, haskell-lsp, hlint, hls-plugin-api, hslogger, lens
, regex-tdfa, shake, lib, temporary, text, transformers
, unordered-containers
}:
mkDerivation {
pname = "hls-hlint-plugin";
version = "0.1.0.0";
src = fetchgit {
url = "https://github.com/haskell/haskell-language-server.git";
sha256 = "0p6fqs07lajbi2g1wf4w3j5lvwknnk58n12vlg48cs4iz25gp588";
rev = "eb58f13f7b8e4f9bc771af30ff9fd82dc4309ff5";
fetchSubmodules = true;
};
postUnpack = "sourceRoot+=/plugins/hls-hlint-plugin; echo source root reset to $sourceRoot";
libraryHaskellDepends = [
aeson apply-refact base binary bytestring containers data-default
deepseq Diff directory extra filepath ghc ghc-lib ghc-lib-parser-ex
ghcide hashable haskell-lsp hlint hls-plugin-api hslogger lens
regex-tdfa shake temporary text transformers unordered-containers
];
description = "Hlint integration plugin with Haskell Language Server";
license = lib.licenses.asl20;
}

View File

@@ -1,23 +0,0 @@
{ mkDerivation, aeson, base, containers, deepseq, directory, extra
, fetchgit, ghc, ghcide, hashable, haskell-lsp, haskell-lsp-types
, hls-plugin-api, retrie, safe-exceptions, shake, lib, text
, transformers, unordered-containers
}:
mkDerivation {
pname = "hls-retrie-plugin";
version = "0.1.0.0";
src = fetchgit {
url = "https://github.com/haskell/haskell-language-server.git";
sha256 = "0p6fqs07lajbi2g1wf4w3j5lvwknnk58n12vlg48cs4iz25gp588";
rev = "eb58f13f7b8e4f9bc771af30ff9fd82dc4309ff5";
fetchSubmodules = true;
};
postUnpack = "sourceRoot+=/plugins/hls-retrie-plugin; echo source root reset to $sourceRoot";
libraryHaskellDepends = [
aeson base containers deepseq directory extra ghc ghcide hashable
haskell-lsp haskell-lsp-types hls-plugin-api retrie safe-exceptions
shake text transformers unordered-containers
];
description = "Retrie integration plugin for Haskell Language Server";
license = lib.licenses.asl20;
}

View File

@@ -1,32 +0,0 @@
{ mkDerivation, aeson, base, checkers, containers, deepseq
, directory, extra, fetchgit, filepath, fingertree, generic-lens
, ghc, ghc-boot-th, ghc-exactprint, ghc-source-gen, ghcide
, haskell-lsp, hie-bios, hls-plugin-api, hspec, hspec-discover
, lens, mtl, QuickCheck, refinery, retrie, shake, lib, syb, text
, transformers
}:
mkDerivation {
pname = "hls-tactics-plugin";
version = "0.5.1.0";
src = fetchgit {
url = "https://github.com/haskell/haskell-language-server.git";
sha256 = "0p6fqs07lajbi2g1wf4w3j5lvwknnk58n12vlg48cs4iz25gp588";
rev = "eb58f13f7b8e4f9bc771af30ff9fd82dc4309ff5";
fetchSubmodules = true;
};
postUnpack = "sourceRoot+=/plugins/tactics; echo source root reset to $sourceRoot";
libraryHaskellDepends = [
aeson base containers deepseq directory extra filepath fingertree
generic-lens ghc ghc-boot-th ghc-exactprint ghc-source-gen ghcide
haskell-lsp hls-plugin-api lens mtl refinery retrie shake syb text
transformers
];
testHaskellDepends = [
base checkers containers ghc hie-bios hls-plugin-api hspec mtl
QuickCheck
];
testToolDepends = [ hspec-discover ];
description = "Tactics plugin for Haskell Language Server";
license = "unknown";
hydraPlatforms = lib.platforms.none;
}

View File

@@ -1,50 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p cabal2nix jq curl
#
# This script will update the haskell-language-server derivation to the latest version using
# cabal2nix.
#
# Note that you should always try building haskell-language-server after updating it here, since
# some of the overrides in pkgs/development/haskell/configuration-nix.nix may
# need to be updated/changed.
#
# Remember to split out different updates into multiple commits
set -eo pipefail
# This is the directory of this update.sh script.
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
# ===========================
# HLS
# ===========================
# hls derivation created with cabal2nix.
hls_derivation_file="${script_dir}/default.nix"
# This is the current revision of hls in Nixpkgs.
hls_old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$hls_derivation_file")"
# This is the latest release version of hls on GitHub.
# Get all tag names, filter to the hls ones (no prefix like 'hls-plugin-api-'),
# sort for the latest one and select just that
hls_latest_release=$(curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/haskell/haskell-language-server/tags |
jq --raw-output 'map(.name) | .[]' |
grep '^[0-9]' |
sort --version-sort |
tail -n1)
# Use this value instead for the very latest revision
# hls_head=(curl --silent "https://api.github.com/repos/haskell/haskell-language-server/commits/master" | jq '.sha' --raw-output)
hls_new_version=$hls_latest_release
echo "Updating haskell-language-server from old version $hls_old_version to new version $hls_new_version."
echo "Running cabal2nix and outputting to ${hls_derivation_file}..."
cabal2nix --revision "$hls_new_version" "https://github.com/haskell/haskell-language-server.git" > "$hls_derivation_file"
cabal2nix --revision "$hls_new_version" --subpath plugins/tactics "https://github.com/haskell/haskell-language-server.git" > "${script_dir}/hls-tactics-plugin.nix"
for plugin in "hls-hlint-plugin" "hls-explicit-imports-plugin" "hls-retrie-plugin" "hls-class-plugin" "hls-eval-plugin"; do
cabal2nix --revision "$hls_new_version" --subpath plugins/$plugin "https://github.com/haskell/haskell-language-server.git" > "${script_dir}/$plugin.nix"
done
echo "Finished."