Merge pull request #97784 from NixOS/haskell-updates

Update Haskell package set to LTS 16.13 (plus other fixes)
This commit is contained in:
Peter Simons 2020-09-11 22:03:25 +02:00 committed by GitHub
commit c98d97ed92
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 1033 additions and 716 deletions

@ -69,7 +69,7 @@ self: super: {
name = "git-annex-${super.git-annex.version}-src";
url = "git://git-annex.branchable.com/";
rev = "refs/tags/" + super.git-annex.version;
sha256 = "1d24080xh7gl197i0y5bkn3j94hvh8zqyg9gfcnx2qdlxfca1knb";
sha256 = "19ipaalp9g25zhg44rialwhp2fv5n8q5fzqw72rfcjcca5iy6r72";
};
}).override {
dbus = if pkgs.stdenv.isLinux then self.dbus else null;
@ -923,7 +923,7 @@ self: super: {
dhall-json = generateOptparseApplicativeCompletions ["dhall-to-json" "dhall-to-yaml"] super.dhall-json;
dhall-nix = generateOptparseApplicativeCompletion "dhall-to-nix" (
super.dhall-nix.overrideScope (self: super: {
dhall = super.dhall_1_34_0;
dhall = super.dhall_1_35_0;
repline = self.repline_0_4_0_0;
haskeline = self.haskeline_0_8_1_0;
}));
@ -1211,7 +1211,7 @@ self: super: {
# we need an override because ghcide is tracking haskell-lsp closely.
ghcide = dontCheck (appendPatch (super.ghcide.override {
hie-bios = dontCheck super.hie-bios_0_7_1;
lsp-test = dontCheck self.lsp-test_0_11_0_4;
lsp-test = dontCheck self.lsp-test_0_11_0_5;
}) (pkgs.fetchpatch {
# This patch loosens the hie-bios upper bound.
# It is already merged into upstream and wont be needed for ghcide 0.4.0
@ -1340,7 +1340,7 @@ self: super: {
# 2020-08-14: gi-pango from stackage is to old for the C libs it links against in nixpkgs.
# That's why we need to bump a ton of dependency versions to unbreak them.
gi-pango = assert super.gi-pango.version == "1.0.22"; self.gi-pango_1_0_23;
haskell-gi-base = assert super.haskell-gi-base.version == "0.23.0"; addBuildDepends (self.haskell-gi-base_0_24_2) [ pkgs.gobject-introspection ];
haskell-gi-base = assert super.haskell-gi-base.version == "0.23.0"; addBuildDepends (self.haskell-gi-base_0_24_3) [ pkgs.gobject-introspection ];
haskell-gi = assert super.haskell-gi.version == "0.23.1"; self.haskell-gi_0_24_4;
gi-cairo = assert super.gi-cairo.version == "1.0.23"; self.gi-cairo_1_0_24;
gi-glib = assert super.gi-glib.version == "2.0.23"; self.gi-glib_2_0_24;
@ -1459,43 +1459,47 @@ self: super: {
# We want the latest version of cryptonite. This is a first step towards
# resolving https://github.com/NixOS/nixpkgs/issues/81915.
cryptonite = self.cryptonite_0_27;
cryptonite = doDistribute self.cryptonite_0_27;
# We want the latest version of Pandoc.
hslua = self.hslua_1_1_2;
jira-wiki-markup = self.jira-wiki-markup_1_3_2;
pandoc = self.pandoc_2_10_1;
pandoc-citeproc = self.pandoc-citeproc_0_17_0_2;
pandoc-plot = self.pandoc-plot_0_9_2_0;
pandoc-types = self.pandoc-types_1_21;
rfc5051 = self.rfc5051_0_2;
hslua = doDistribute self.hslua_1_1_2;
jira-wiki-markup = doDistribute self.jira-wiki-markup_1_3_2;
pandoc = doDistribute self.pandoc_2_10_1;
pandoc-citeproc = doDistribute self.pandoc-citeproc_0_17_0_2;
pandoc-plot = doDistribute self.pandoc-plot_0_9_2_0;
pandoc-types = doDistribute self.pandoc-types_1_21;
rfc5051 = doDistribute self.rfc5051_0_2;
# Upstream forgot to change the Cabal version bounds in the test suite.
# See: https://github.com/jaspervdj/stylish-haskell/pull/297
# Will be fixed whenever they next bump the version number
stylish-haskell = appendPatch super.stylish-haskell (pkgs.fetchpatch {
url = "https://github.com/jaspervdj/stylish-haskell/commit/9550aa1cd177aa6fe271d075177109d66a79e67f.patch";
sha256 = "1ffnbd2s4fx0ylnnlcyyag119yxb32p5r20b38l39lsa0jwv229f";
});
# INSERT NEW OVERRIDES ABOVE THIS LINE
} // (let
inherit (self) hls-ghcide;
inherit (self) hls-ghcide hls-brittany;
hlsScopeOverride = self: super: {
# haskell-language-server uses its own fork of ghcide
# Test disabled: it seems to freeze (is it just that it takes a long time ?)
ghcide = hls-ghcide;
ghcide = dontCheck hls-ghcide;
# we are faster than stack here
hie-bios = dontCheck super.hie-bios_0_7_1;
lsp-test = dontCheck super.lsp-test_0_11_0_4;
lsp-test = dontCheck super.lsp-test_0_11_0_5;
# fourmolu cant compile with an older aeson
aeson = dontCheck super.aeson_1_5_2_0;
# brittany has an aeson upper bound of 1.5
brittany = doJailbreak super.brittany;
brittany = hls-brittany;
data-tree-print = doJailbreak super.data-tree-print;
ghc-exactprint = dontCheck super.ghc-exactprint_0_6_3_2;
};
in {
# jailbreaking for hie-bios 0.7.0 (upstream PR: https://github.com/haskell/haskell-language-server/pull/357)
haskell-language-server = dontCheck (doJailbreak (super.haskell-language-server.overrideScope hlsScopeOverride));
hls-ghcide = appendPatch (dontCheck (super.hls-ghcide.overrideScope hlsScopeOverride))
(pkgs.fetchpatch {
# This patch loosens the hie-bios upper bound.
# It is already merged into upstream and wont be needed for ghcide 0.4.0
url = "https://github.com/haskell/ghcide/commit/3e1b3620948870a4da8808ca0c0897fbd3ecad16.patch";
sha256 = "1jwn7jgi740x6wwv1k0mz9d4z0b9p3mzs54pdg4nfq0h2v7zxchz";
});
fourmolu = super.fourmolu.overrideScope hlsScopeOverride;
hls-ghcide = dontCheck (super.hls-ghcide.overrideScope hlsScopeOverride);
hls-brittany = dontCheck (super.hls-brittany.overrideScope hlsScopeOverride);
fourmolu = dontCheck (super.fourmolu.overrideScope hlsScopeOverride);
}
) // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super

@ -66,7 +66,7 @@ self: super: {
unliftio-core = doJailbreak super.unliftio-core;
# Use the latest version to fix the build.
dhall = self.dhall_1_34_0;
dhall = self.dhall_1_35_0;
lens = self.lens_4_19_2;
optics = self.optics_0_3;
optics-core = self.optics-core_0_3_0_1;

@ -72,7 +72,7 @@ default-package-overrides:
# gi-gdkx11-4.x requires gtk-4.x, which is still under development and
# not yet available in Nixpkgs
- gi-gdkx11 < 4
# LTS Haskell 16.12
# LTS Haskell 16.13
- abstract-deque ==0.3
- abstract-par ==0.3.3
- AC-Angle ==1.0
@ -489,7 +489,7 @@ default-package-overrides:
- concurrent-split ==0.0.1.1
- concurrent-supply ==0.1.8
- cond ==0.4.1.1
- conduit ==1.3.2
- conduit ==1.3.2.1
- conduit-algorithms ==0.0.11.0
- conduit-combinators ==1.3.0
- conduit-concurrent-map ==0.1.1
@ -504,7 +504,7 @@ default-package-overrides:
- config-ini ==0.2.4.0
- configurator ==0.3.0.0
- configurator-export ==0.1.0.1
- configurator-pg ==0.2.3
- configurator-pg ==0.2.4
- connection ==0.3.1
- connection-pool ==0.2.2
- console-style ==0.0.2.1
@ -733,7 +733,7 @@ default-package-overrides:
- errors ==2.3.0
- errors-ext ==0.4.2
- ersatz ==0.4.8
- esqueleto ==3.3.3.2
- esqueleto ==3.3.3.3
- essence-of-live-coding ==0.1.0.3
- essence-of-live-coding-gloss ==0.1.0.3
- essence-of-live-coding-pulse ==0.1.0.3
@ -1092,14 +1092,14 @@ default-package-overrides:
- hslua-module-doclayout ==0.1.0
- hslua-module-system ==0.2.2
- hslua-module-text ==0.2.1
- HsOpenSSL ==0.11.4.18
- HsOpenSSL ==0.11.4.19
- hsp ==0.10.0
- hspec ==2.7.2
- hspec ==2.7.4
- hspec-attoparsec ==0.1.0.2
- hspec-checkers ==0.1.0.2
- hspec-contrib ==0.5.1
- hspec-core ==2.7.2
- hspec-discover ==2.7.2
- hspec-core ==2.7.4
- hspec-discover ==2.7.4
- hspec-expectations ==0.8.2
- hspec-expectations-lifted ==0.10.0
- hspec-expectations-pretty-diff ==0.7.2.5
@ -1385,13 +1385,13 @@ default-package-overrides:
- mainland-pretty ==0.7.0.1
- main-tester ==0.2.0.1
- makefile ==1.1.0.0
- managed ==1.0.7
- managed ==1.0.8
- markdown ==0.1.17.4
- markdown-unlit ==0.5.0
- markov-chain ==0.0.3.4
- massiv ==0.5.3.2
- massiv ==0.5.4.0
- massiv-io ==0.2.1.0
- massiv-test ==0.1.3.1
- massiv-test ==0.1.4
- mathexpr ==0.3.0.0
- math-extras ==0.1.1.0
- math-functions ==0.3.4.1
@ -1433,7 +1433,7 @@ default-package-overrides:
- midi ==0.2.2.2
- mighty-metropolis ==2.0.0
- mime-mail ==0.5.0
- mime-mail-ses ==0.4.2
- mime-mail-ses ==0.4.3
- mime-types ==0.1.0.9
- mini-egison ==1.0.0
- minimal-configuration ==0.1.4
@ -1963,7 +1963,7 @@ default-package-overrides:
- servant-checked-exceptions-core ==2.2.0.0
- servant-client ==0.16.0.1
- servant-client-core ==0.16
- servant-conduit ==0.15
- servant-conduit ==0.15.1
- servant-docs ==0.11.4
- servant-docs-simple ==0.2.0.1
- servant-elm ==0.7.2
@ -1972,9 +1972,9 @@ default-package-overrides:
- servant-js ==0.9.4.2
- servant-JuicyPixels ==0.3.0.5
- servant-lucid ==0.9
- servant-machines ==0.15
- servant-machines ==0.15.1
- servant-mock ==0.8.5
- servant-pipes ==0.15.1
- servant-pipes ==0.15.2
- servant-purescript ==0.10.0.0
- servant-rawm ==0.3.2.0
- servant-server ==0.16.2
@ -2118,7 +2118,7 @@ default-package-overrides:
- stringsearch ==0.3.6.6
- string-transform ==1.1.1
- stripe-concepts ==1.0.2.4
- stripe-signature ==1.0.0.4
- stripe-signature ==1.0.0.6
- strive ==5.0.12
- structs ==0.1.3
- structured ==0.1
@ -2145,7 +2145,7 @@ default-package-overrides:
- system-fileio ==0.3.16.4
- system-filepath ==0.4.14
- system-info ==0.5.1
- tabular ==0.2.2.7
- tabular ==0.2.2.8
- taffybar ==3.2.2
- tagchup ==0.4.1.1
- tagged ==0.8.6
@ -2182,7 +2182,7 @@ default-package-overrides:
- TCache ==0.12.1
- tce-conf ==1.3
- tdigest ==0.2.1
- template-haskell-compat-v0208 ==0.1.4
- template-haskell-compat-v0208 ==0.1.5
- temporary ==1.3
- temporary-rc ==1.2.0.3
- temporary-resourcet ==0.1.0.1
@ -2474,7 +2474,7 @@ default-package-overrides:
- xdg-basedir ==0.2.2
- xdg-desktop-entry ==0.1.1.1
- xdg-userdirs ==0.1.0.2
- xeno ==0.4.1
- xeno ==0.4.2
- xls ==0.1.3
- xlsx ==0.8.1
- xlsx-tabular ==0.2.2.1
@ -3971,6 +3971,7 @@ broken-packages:
- compdata-automata
- compdata-dags
- compdata-param
- compdoc
- competition
- compilation
- complexity
@ -3978,6 +3979,7 @@ broken-packages:
- composite-aeson
- composite-aeson-path
- composite-aeson-refined
- composite-aeson-throw
- composite-binary
- composite-ekg
- composite-opaleye

File diff suppressed because it is too large Load Diff

@ -23,6 +23,7 @@ self: super: {
# 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-ghcide = self.callPackage ../tools/haskell/haskell-language-server/hls-ghcide.nix { };
hls-brittany = self.callPackage ../tools/haskell/haskell-language-server/hls-brittany.nix { };
# cabal2nix --revision <rev> https://github.com/hasura/ci-info-hs.git
ci-info = self.callPackage ../misc/haskell/hasura/ci-info {};

@ -14,8 +14,8 @@ mkDerivation {
version = "0.4.0.0";
src = fetchgit {
url = "https://github.com/haskell/haskell-language-server.git";
sha256 = "157bsq6i824bl6krw7znp0byd8ibaqsq7mfwnkl741dmrflsxpa9";
rev = "cb861b878ae01911b066182ff0d8080050c3b2d6";
sha256 = "1fh9k9b3880m6ql4i10yn2yanskk9xhrakrrddqvainhcf2ik8hl";
rev = "c4576992f443a9abe48ffcfa0e2d2b9bce15d7ae";
fetchSubmodules = true;
};
isLibrary = true;

@ -0,0 +1,36 @@
{ mkDerivation, aeson, base, butcher, bytestring, cmdargs
, containers, czipwith, data-tree-print, deepseq, directory, extra
, fetchgit, filepath, ghc, ghc-boot-th, ghc-exactprint, ghc-paths
, hspec, monad-memo, mtl, multistate, parsec, pretty, random, safe
, semigroups, stdenv, strict, syb, text, transformers, uniplate
, unsafe, yaml
}:
mkDerivation {
pname = "brittany";
version = "0.12.1.1";
src = fetchgit {
url = "https://github.com/bubba/brittany";
sha256 = "1rkk09f8750qykrmkqfqbh44dbx1p8aq1caznxxlw8zqfvx39cxl";
rev = "c59655f10d5ad295c2481537fc8abf0a297d9d1c";
fetchSubmodules = true;
};
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
aeson base butcher bytestring cmdargs containers czipwith
data-tree-print deepseq directory extra filepath ghc ghc-boot-th
ghc-exactprint ghc-paths monad-memo mtl multistate pretty random
safe semigroups strict syb text transformers uniplate unsafe yaml
];
executableHaskellDepends = [ base ];
testHaskellDepends = [
aeson base butcher bytestring cmdargs containers czipwith
data-tree-print deepseq directory extra filepath ghc ghc-boot-th
ghc-exactprint ghc-paths hspec monad-memo mtl multistate parsec
pretty safe semigroups strict syb text transformers uniplate unsafe
yaml
];
homepage = "https://github.com/lspitzner/brittany/";
description = "Haskell source code formatter";
license = stdenv.lib.licenses.agpl3;
}

@ -5,21 +5,20 @@
, ghc-boot-th, ghc-check, ghc-paths, ghc-typelits-knownnat, gitrev
, haddock-library, hashable, haskell-lsp, haskell-lsp-types
, hie-bios, hslogger, lens, lsp-test, mtl, network-uri
, opentelemetry, optparse-applicative, prettyprinter
, prettyprinter-ansi-terminal, process, QuickCheck
, quickcheck-instances, regex-tdfa, rope-utf16-splay, safe
, safe-exceptions, shake, sorted-list, stdenv, stm, syb, tasty
, tasty-expected-failure, tasty-hunit, tasty-quickcheck
, tasty-rerun, text, time, transformers, unix, unordered-containers
, utf8-string, yaml
, optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
, process, QuickCheck, quickcheck-instances, regex-tdfa
, rope-utf16-splay, safe, safe-exceptions, shake, sorted-list
, stdenv, stm, syb, tasty, tasty-expected-failure, tasty-hunit
, tasty-quickcheck, tasty-rerun, text, time, transformers, unix
, unordered-containers, utf8-string, yaml
}:
mkDerivation {
pname = "ghcide";
version = "0.2.0";
version = "0.3.0";
src = fetchgit {
url = "https://github.com/haskell/ghcide";
sha256 = "1zq7ngaak8il91a309rl51dghzasnk4m2sm3av6d93cyqyra1hfc";
rev = "078e3d3c0d319f83841ccbcdc60ff5f0e243f6be";
sha256 = "15v3g3i5v0xbq50lfvl4bv3rx01nixiqx02sddqi5lj2idgmg24g";
rev = "96cf8c53d0bdc16d3d2cd0559b74962593ce6dc5";
fetchSubmodules = true;
};
isLibrary = true;
@ -29,10 +28,10 @@ mkDerivation {
containers cryptohash-sha1 data-default deepseq directory extra
filepath fuzzy ghc ghc-boot ghc-boot-th ghc-check ghc-paths
haddock-library hashable haskell-lsp haskell-lsp-types hie-bios
hslogger mtl network-uri opentelemetry prettyprinter
prettyprinter-ansi-terminal regex-tdfa rope-utf16-splay safe
safe-exceptions shake sorted-list stm syb text time transformers
unix unordered-containers utf8-string
hslogger mtl network-uri prettyprinter prettyprinter-ansi-terminal
regex-tdfa rope-utf16-splay safe safe-exceptions shake sorted-list
stm syb text time transformers unix unordered-containers
utf8-string
];
executableHaskellDepends = [
aeson base bytestring containers data-default directory extra
@ -52,7 +51,7 @@ mkDerivation {
aeson base Chart Chart-diagrams diagrams diagrams-svg directory
extra filepath shake text yaml
];
homepage = "https://github.com/digital-asset/ghcide#readme";
homepage = "https://github.com/haskell/ghcide#readme";
description = "The core of an IDE";
license = stdenv.lib.licenses.asl20;
}

@ -7,6 +7,8 @@
# 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
@ -31,6 +33,22 @@ echo "Running cabal2nix and outputting to ${ghcide_derivation_file}..."
cabal2nix --revision "$ghcide_new_version" "https://github.com/haskell/ghcide" > "$ghcide_derivation_file"
# ===========================
# 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