Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 673bcd44d710
Choose a base ref
...
head repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 8764ced02eea
Choose a head ref
  • 3 commits
  • 10 files changed
  • 2 contributors

Commits on Dec 17, 2020

  1. haskellPackages.haskell-language-server: 0.6.0 -> 0.7.0

    Remove hls-brittany as it's no longer necessary
    
    Fix the update script to include hls-explicit-imports-plugin and
    hls-retrhls-retrie-plugin
    expipiplus1 committed Dec 17, 2020

    Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    marsam Mario Rodas
    Copy the full SHA
    496863f View commit details
  2. Unverified

    No user is associated with the committer email.
    Copy the full SHA
    eb4b8d2 View commit details
  3. Merge pull request #107078 from expipiplus1/joe-hls

     haskellPackages.haskell-language-server: 0.6.0 -> 0.7.0
    maralorn authored Dec 17, 2020

    Unverified

    No user is associated with the committer email.
    Copy the full SHA
    8764ced View commit details
7 changes: 1 addition & 6 deletions pkgs/development/haskell-modules/configuration-common.nix
Original file line number Diff line number Diff line change
@@ -1402,6 +1402,7 @@ self: super: {
# https://github.com/haskell/haskell-language-server/issues/611
haskell-language-server = dontCheck (super.haskell-language-server.override {
lsp-test = dontCheck self.lsp-test_0_11_0_7;
fourmolu = self.fourmolu_0_3_0_0;
});

fourmolu = dontCheck super.fourmolu;
@@ -1412,12 +1413,6 @@ self: super: {
));
refinery = doDistribute super.refinery_0_3_0_0;
data-tree-print = doJailbreak super.data-tree-print;
# the hls brittany is objectively better, because there hasn‘t been a
# brittany release in a while and this version works with 8.10.
# And we need to build it anyways.
# 2020-11-15: jailbreaking because we have strict 0.4 which is to new
brittany = self.hls-brittany;
hls-brittany = dontCheck (doJailbreak super.hls-brittany);

# 2020-11-15: aeson 1.5.4.1 needs to new quickcheck-instances for testing
aeson = dontCheck super.aeson;
Original file line number Diff line number Diff line change
@@ -6399,7 +6399,6 @@ broken-packages:
- hlrdb
- hlrdb-core
- hls
- hls-brittany
- hlwm
- hly
- hmark
3 changes: 2 additions & 1 deletion pkgs/development/haskell-modules/non-hackage-packages.nix
Original file line number Diff line number Diff line change
@@ -19,9 +19,10 @@ self: super: {
# HLS and its fork of ghcide that it uses
# both are auto-generated by pkgs/development/tools/haskell/haskell-language-server/update.sh
haskell-language-server = self.callPackage ../tools/haskell/haskell-language-server { };
hls-brittany = self.callPackage ../tools/haskell/haskell-language-server/hls-brittany.nix { };
hls-hlint-plugin = self.callPackage ../tools/haskell/haskell-language-server/hls-hlint-plugin.nix { };
hls-tactics-plugin = self.callPackage ../tools/haskell/haskell-language-server/hls-tactics-plugin.nix { };
hls-explicit-imports-plugin = self.callPackage ../tools/haskell/haskell-language-server/hls-explicit-imports-plugin.nix { };
hls-retrie-plugin = self.callPackage ../tools/haskell/haskell-language-server/hls-retrie-plugin.nix { };

nix-output-monitor = self.callPackage ../../tools/nix/nix-output-monitor { };

36 changes: 18 additions & 18 deletions pkgs/development/tools/haskell/haskell-language-server/default.nix
Original file line number Diff line number Diff line change
@@ -2,39 +2,39 @@
, 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-hlint-plugin, hls-plugin-api, hls-tactics-plugin, hslogger
, hspec, hspec-core, lens, lsp-test, mtl, optparse-applicative
, optparse-simple, ormolu, process, regex-tdfa, retrie
, safe-exceptions, shake, stdenv, stm, stylish-haskell, tasty
, tasty-ant-xml, tasty-expected-failure, tasty-golden, tasty-hunit
, tasty-rerun, temporary, text, time, transformers
, unordered-containers, yaml
, hls-explicit-imports-plugin, hls-hlint-plugin, hls-plugin-api
, hls-retrie-plugin, hls-tactics-plugin, hslogger, hspec
, hspec-core, lens, lsp-test, mtl, optparse-applicative
, optparse-simple, ormolu, process, regex-tdfa, safe-exceptions
, shake, stdenv, stm, stylish-haskell, tasty, tasty-ant-xml
, tasty-expected-failure, tasty-golden, tasty-hunit, tasty-rerun
, temporary, text, time, transformers, unordered-containers, yaml
}:
mkDerivation {
pname = "haskell-language-server";
version = "0.6.0.0";
version = "0.7.0.0";
src = fetchgit {
url = "https://github.com/haskell/haskell-language-server.git";
sha256 = "027fq6752024wzzq9izsilm5lkq9gmpxf82rixbimbijw0yk4pwj";
rev = "372a12e797069dc3ac4fa33dcaabe3b992999d7c";
sha256 = "0w37792wkq4ys7afgali4jg1kwgkbpk8q0y95fd2j1vgpk0pndlr";
rev = "6a692de3308c06d8eb7bdf0f7b8a35b6e9a92610";
fetchSubmodules = true;
};
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
base containers data-default directory extra filepath ghc ghcide
gitrev haskell-lsp hie-bios hls-plugin-api hslogger
optparse-applicative optparse-simple process text
unordered-containers
gitrev haskell-lsp hls-plugin-api hslogger optparse-applicative
optparse-simple process 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-hlint-plugin
hls-plugin-api hls-tactics-plugin hslogger lens mtl
optparse-applicative optparse-simple ormolu process regex-tdfa
retrie safe-exceptions shake stylish-haskell temporary text time
transformers unordered-containers
gitrev hashable haskell-lsp hie-bios 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 time transformers
unordered-containers
];
testHaskellDepends = [
aeson base blaze-markup bytestring containers data-default

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{ mkDerivation, aeson, base, containers, deepseq, fetchgit, ghc
, ghcide, haskell-lsp-types, hls-plugin-api, shake, stdenv, 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 = "0w37792wkq4ys7afgali4jg1kwgkbpk8q0y95fd2j1vgpk0pndlr";
rev = "6a692de3308c06d8eb7bdf0f7b8a35b6e9a92610";
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 = stdenv.lib.licenses.asl20;
}
Original file line number Diff line number Diff line change
@@ -10,8 +10,8 @@ mkDerivation {
version = "0.1.0.0";
src = fetchgit {
url = "https://github.com/haskell/haskell-language-server.git";
sha256 = "027fq6752024wzzq9izsilm5lkq9gmpxf82rixbimbijw0yk4pwj";
rev = "372a12e797069dc3ac4fa33dcaabe3b992999d7c";
sha256 = "0w37792wkq4ys7afgali4jg1kwgkbpk8q0y95fd2j1vgpk0pndlr";
rev = "6a692de3308c06d8eb7bdf0f7b8a35b6e9a92610";
fetchSubmodules = true;
};
postUnpack = "sourceRoot+=/plugins/hls-hlint-plugin; echo source root reset to $sourceRoot";
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{ mkDerivation, aeson, base, containers, deepseq, directory, extra
, fetchgit, ghc, ghcide, hashable, haskell-lsp, haskell-lsp-types
, hls-plugin-api, retrie, safe-exceptions, shake, stdenv, 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 = "0w37792wkq4ys7afgali4jg1kwgkbpk8q0y95fd2j1vgpk0pndlr";
rev = "6a692de3308c06d8eb7bdf0f7b8a35b6e9a92610";
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 = stdenv.lib.licenses.asl20;
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
{ 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, lens, mtl
, QuickCheck, refinery, retrie, shake, stdenv, syb, text
, haskell-lsp, hie-bios, hls-plugin-api, hspec, hspec-discover
, lens, mtl, QuickCheck, refinery, retrie, shake, stdenv, 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 = "027fq6752024wzzq9izsilm5lkq9gmpxf82rixbimbijw0yk4pwj";
rev = "372a12e797069dc3ac4fa33dcaabe3b992999d7c";
sha256 = "0w37792wkq4ys7afgali4jg1kwgkbpk8q0y95fd2j1vgpk0pndlr";
rev = "6a692de3308c06d8eb7bdf0f7b8a35b6e9a92610";
fetchSubmodules = true;
};
postUnpack = "sourceRoot+=/plugins/tactics; echo source root reset to $sourceRoot";
@@ -25,8 +25,8 @@ mkDerivation {
base checkers containers ghc hie-bios hls-plugin-api hspec mtl
QuickCheck
];
homepage = "https://github.com/isovector/hls-tactics-plugin#readme";
description = "LSP server for GHC";
testToolDepends = [ hspec-discover ];
description = "Tactics plugin for Haskell Language Server";
license = "unknown";
hydraPlatforms = stdenv.lib.platforms.none;
}
32 changes: 14 additions & 18 deletions pkgs/development/tools/haskell/haskell-language-server/update.sh
Original file line number Diff line number Diff line change
@@ -15,23 +15,6 @@ 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 maintainer's Brittany fork
# ===========================

# brittany derivation created with cabal2nix.
brittany_derivation_file="${script_dir}/hls-brittany.nix"

# This is the current revision of the brittany fork in Nixpkgs.
brittany_old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$brittany_derivation_file")"

brittany_new_version=$(curl --silent "https://api.github.com/repos/bubba/brittany/commits/ghc-8.10.1" | jq '.sha' --raw-output)

echo "Updating haskell-language-server's brittany from old version $brittany_old_version to new version $brittany_new_version."
echo "Running cabal2nix and outputting to ${brittany_derivation_file}..."

cabal2nix --revision "$brittany_new_version" "https://github.com/bubba/brittany" > "$brittany_derivation_file"

# ===========================
# HLS
# ===========================
@@ -43,13 +26,26 @@ hls_derivation_file="${script_dir}/default.nix"
hls_old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$hls_derivation_file")"

# This is the latest release version of hls on GitHub.
hls_new_version=$(curl --silent "https://api.github.com/repos/haskell/haskell-language-server/commits/master" | jq '.sha' --raw-output)
# 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"
cabal2nix --revision "$hls_new_version" --subpath plugins/hls-hlint-plugin "https://github.com/haskell/haskell-language-server.git" > "${script_dir}/hls-hlint-plugin.nix"
cabal2nix --revision "$hls_new_version" --subpath plugins/hls-explicit-imports-plugin "https://github.com/haskell/haskell-language-server.git" > "${script_dir}/hls-explicit-imports-plugin.nix"
cabal2nix --revision "$hls_new_version" --subpath plugins/hls-retrie-plugin "https://github.com/haskell/haskell-language-server.git" > "${script_dir}/hls-retrie-plugin.nix"

echo "Finished."