Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
7a40af7
haskellPackages: stackage LTS 19.22 -> LTS 19.23
maralorn Sep 18, 2022
284e415
all-cabal-hashes: 2022-09-11T02:31:18Z -> 2022-09-18T11:31:48Z
maralorn Sep 18, 2022
f604bbc
haskellPackages: regenerate package set based on current config
maralorn Sep 18, 2022
ee0290c
Merge master into haskell-updates
github-actions[bot] Sep 19, 2022
eb735a4
Merge master into haskell-updates
github-actions[bot] Sep 20, 2022
25cb491
all-cabal-hashes: 2022-09-18T11:31:48Z -> 2022-09-19T12:29:18Z
maralorn Sep 19, 2022
2d4bd88
haskellPackages: Bump hspec versions
maralorn Sep 20, 2022
6f241f7
haskellPackages: Move permanent overrides to configuration.nix
maralorn Sep 20, 2022
cbb2292
haskellPackages.hie-bios: Remove unused 0.5.0 override
maralorn Sep 20, 2022
161a30b
haskellPackages: regenerate package set based on current config
maralorn Sep 20, 2022
2a5b10b
stack: get 2.9.1 building
cdepillabout Sep 20, 2022
e678b76
hedgewars: disable on darwin
maralorn Sep 20, 2022
31b235f
Merge master into haskell-updates
github-actions[bot] Sep 21, 2022
a7d50b4
haskellPackages.ghcup: Remove override for defunct package
maralorn Sep 21, 2022
7c2fda4
haskell-language-server: 1.7.0.0 -> 1.8.0.0
maralorn Sep 20, 2022
89c97c0
Merge pull request #191987 from maralorn/hls-1.8
maralorn Sep 21, 2022
fae2ff5
haskell.{compiler,packages}: Add aliases without minor versions
maralorn Sep 20, 2022
352da0c
haskellPackages.hlint: Fix plugin and ghc924 jobs
maralorn Sep 21, 2022
772ea71
haskellPackages: mark builds failing on hydra as broken
maralorn Sep 21, 2022
e2c6425
Merge pull request #191991 from maralorn/drop-minor-versions
maralorn Sep 21, 2022
b6f1e6a
haskell.packages: Show minor version in test names
maralorn Sep 21, 2022
bdcbbc7
haskell-language-server: Default toplevel attribute to dynamic linkin…
maralorn Sep 21, 2022
188ea7b
haskell.packages: Revert to minor version test names
maralorn Sep 21, 2022
413c67c
haskell.compiler.native-bignum: Readd missing minor versions
maralorn Sep 21, 2022
122c082
haskell.pkgsStatic: Fix missing minor version for hydr checks
maralorn Sep 21, 2022
39a02ce
haskell.compiler: Don‘t filter redundant major version jobs
maralorn Sep 21, 2022
bc5a846
haskellPackages.ghcide-bench: dontCheck
maralorn Sep 21, 2022
90eacab
Merge branch 'master' into haskell-updates
maralorn Sep 21, 2022
5c46871
Merge pull request #192178 from maralorn/hls-dynamic
maralorn Sep 21, 2022
d3eeb5f
Merge remote-tracking branch 'refs/remotes/origin/haskell-updates' in…
maralorn Sep 21, 2022
7e058ce
haskellPackages: mark builds failing on hydra as broken
maralorn Sep 21, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions maintainers/scripts/haskell/update-stackage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,14 @@ sed -r \
-e '/ jailbreak-cabal /d' \
-e '/ language-nix /d' \
-e '/ cabal-install /d' \
-e '/ lsp /d' \
-e '/ lsp-types /d' \
-e '/ lsp-test /d' \
-e '/ hie-bios /d' \
< "${tmpfile_new}" >> $stackage_config
# Explanations:
# cabal2nix, distribution-nixpkgs, jailbreak-cabal, language-nix: These are our packages and we know what we are doing.
# lsp, lsp-types, lsp-test, hie-bios: These are tightly coupled to hls which is not in stackage. They have no rdeps in stackage.

if [[ "${1:-}" == "--do-commit" ]]; then
git add $stackage_config
Expand Down
4 changes: 2 additions & 2 deletions nixos/doc/manual/development/option-declarations.section.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,14 +124,14 @@ lib.mkOption {
```nix
lib.mkPackageOption pkgs "GHC" {
default = [ "ghc" ];
example = "pkgs.haskell.packages.ghc924.ghc.withPackages (hkgs: [ hkgs.primes ])";
example = "pkgs.haskell.packages.ghc92.ghc.withPackages (hkgs: [ hkgs.primes ])";
}
# is like
lib.mkOption {
type = lib.types.package;
default = pkgs.ghc;
defaultText = lib.literalExpression "pkgs.ghc";
example = lib.literalExpression "pkgs.haskell.packages.ghc924.ghc.withPackages (hkgs: [ hkgs.primes ])";
example = lib.literalExpression "pkgs.haskell.packages.ghc92.ghc.withPackages (hkgs: [ hkgs.primes ])";
description = "The GHC package to use.";
}
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,14 +189,14 @@ lib.mkOption {
<programlisting language="bash">
lib.mkPackageOption pkgs &quot;GHC&quot; {
default = [ &quot;ghc&quot; ];
example = &quot;pkgs.haskell.packages.ghc924.ghc.withPackages (hkgs: [ hkgs.primes ])&quot;;
example = &quot;pkgs.haskell.packages.ghc92.ghc.withPackages (hkgs: [ hkgs.primes ])&quot;;
}
# is like
lib.mkOption {
type = lib.types.package;
default = pkgs.ghc;
defaultText = lib.literalExpression &quot;pkgs.ghc&quot;;
example = lib.literalExpression &quot;pkgs.haskell.packages.ghc924.ghc.withPackages (hkgs: [ hkgs.primes ])&quot;;
example = lib.literalExpression &quot;pkgs.haskell.packages.ghc92.ghc.withPackages (hkgs: [ hkgs.primes ])&quot;;
description = &quot;The GHC package to use.&quot;;
}
</programlisting>
Expand Down
22 changes: 22 additions & 0 deletions nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1469,6 +1469,16 @@ Superuser created successfully.
extent.
</para>
</listitem>
<listitem>
<para>
<literal>pkgs.haskell-language-server</literal> will now by
default be linked dynamically to improve TemplateHaskell
compatibility. To mitigate the increased closure size it will
now by default only support our current default ghc (at the
moment 9.0.2). Add other ghc versions via e.g.
<literal>pkgs.haskell-language-server.override { supportedGhcVersions = [ &quot;90&quot; &quot;92&quot; ]; }</literal>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-21.11-notable-changes">
Expand Down Expand Up @@ -2087,6 +2097,18 @@ Superuser created successfully.
<literal>java-packages.compiler</literal>.
</para>
</listitem>
<listitem>
<para>
The sets <literal>haskell.packages</literal> and
<literal>haskell.compiler</literal> now contain for every ghc
version an attribute with the minor version dropped. E.g. for
<literal>ghc8107</literal> there also now exists
<literal>ghc810</literal>. Those attributes point to the same
compilers and packagesets but have the advantage that e.g.
<literal>ghc92</literal> stays stable when we update from
<literal>ghc924</literal> to <literal>ghc925</literal>.
</para>
</listitem>
</itemizedlist>
</section>
</section>
4 changes: 4 additions & 0 deletions nixos/doc/manual/release-notes/rl-2111.section.md
Original file line number Diff line number Diff line change
Expand Up @@ -437,6 +437,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `/usr` will always be included in the initial ramdisk. See the `fileSystems.<name>.neededForBoot` option.
If any files exist under `/usr` (which is not typical for NixOS), they will be included in the initial ramdisk, increasing its size to a possibly problematic extent.

- `pkgs.haskell-language-server` will now by default be linked dynamically to improve TemplateHaskell compatibility. To mitigate the increased closure size it will now by default only support our current default ghc (at the moment 9.0.2). Add other ghc versions via e.g. `pkgs.haskell-language-server.override { supportedGhcVersions = [ "90" "92" ]; }`.

## Other Notable Changes {#sec-release-21.11-notable-changes}


Expand Down Expand Up @@ -573,3 +575,5 @@ In addition to numerous new and upgraded packages, this release has the followin
- hydrus has been upgraded from version `438` to `463`. Since upgrading between releases this old is advised against, be sure to have a backup of your data before upgrading. For details, see [the hydrus manual](https://hydrusnetwork.github.io/hydrus/help/getting_started_installing.html#big_updates).

- More jdk and jre versions are now exposed via `java-packages.compiler`.

- The sets `haskell.packages` and `haskell.compiler` now contain for every ghc version an attribute with the minor version dropped. E.g. for `ghc8107` there also now exists `ghc810`. Those attributes point to the same compilers and packagesets but have the advantage that e.g. `ghc92` stays stable when we update from `ghc924` to `ghc925`.
2 changes: 1 addition & 1 deletion nixos/modules/services/x11/window-managers/xmonad.nix
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ in {
haskellPackages = mkOption {
default = pkgs.haskellPackages;
defaultText = literalExpression "pkgs.haskellPackages";
example = literalExpression "pkgs.haskell.packages.ghc8107";
example = literalExpression "pkgs.haskell.packages.ghc810";
type = types.attrs;
description = lib.mdDoc ''
haskellPackages used to build Xmonad and other packages.
Expand Down
8 changes: 4 additions & 4 deletions pkgs/data/misc/hackage/pin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"commit": "d921dcbcb495c59ebdd949f1b70c00d0b0dfbc34",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/d921dcbcb495c59ebdd949f1b70c00d0b0dfbc34.tar.gz",
"sha256": "1kdb392fhm2jvf3rsznx2gzwqki978bj3dpmpjfjxqadbzz9cl34",
"msg": "Update from Hackage at 2022-09-11T02:31:18Z"
"commit": "e456824564bb5457549a70dc03c7ae00b3dfaec3",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/e456824564bb5457549a70dc03c7ae00b3dfaec3.tar.gz",
"sha256": "0kvjhghjhs5b6ldp4yyyy158lqk54aahqqp4n0mm67p7qv09i5xr",
"msg": "Update from Hackage at 2022-09-19T12:29:18Z"
}
2 changes: 1 addition & 1 deletion pkgs/development/compilers/elm/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ let

fetchElmDeps = pkgs.callPackage ./fetchElmDeps.nix { };

hsPkgs = self: pkgs.haskell.packages.ghc8107.override {
hsPkgs = self: pkgs.haskell.packages.ghc810.override {
overrides = self: super: with pkgs.haskell.lib.compose; with lib;
let elmPkgs = rec {
elm = overrideCabal (drv: {
Expand Down
122 changes: 49 additions & 73 deletions pkgs/development/haskell-modules/configuration-common.nix
Original file line number Diff line number Diff line change
Expand Up @@ -817,12 +817,12 @@ self: super: {
# requires git at test-time *and* runtime, but we'll just rely on users to
# bring their own git at runtime
sensei = overrideCabal (drv: {
testHaskellDepends = drv.testHaskellDepends or [] ++ [ self.hspec-meta_2_9_3 ];
testHaskellDepends = drv.testHaskellDepends or [] ++ [ self.hspec-meta_2_10_5 ];
testToolDepends = drv.testToolDepends or [] ++ [ pkgs.git ];
}) (super.sensei.override {
hspec = self.hspec_2_10_5;
hspec = self.hspec_2_10_6;
hspec-wai = super.hspec-wai.override {
hspec = self.hspec_2_10_5;
hspec = self.hspec_2_10_6;
};
});

Expand Down Expand Up @@ -1010,27 +1010,14 @@ self: super: {
# https://github.com/haskell-hvr/hgettext/issues/14
hgettext = doJailbreak super.hgettext;

# Generate shell completion.
cabal2nix = generateOptparseApplicativeCompletion "cabal2nix" super.cabal2nix;

ormolu = generateOptparseApplicativeCompletion "ormolu" super.ormolu;

stack =
generateOptparseApplicativeCompletion "stack"
(doJailbreak # for Cabal constraint added on hackage
(appendPatch
(fetchpatch {
# https://github.com/commercialhaskell/stack/pull/5559
# When removing, also remove doJailbreak.
name = "stack-pull-5559.patch";
url = "https://github.com/hercules-ci/stack/compare/v2.7.5...brandon-leapyear/chinn/cabal-0.patch";
sha256 = "sha256-OXmdGgQ2KSKtQKOK6eePLgvUOTlzac544HQYKJpcjnU=";
})
# stack has a bunch of constraints in its .cabal file that don't seem to be necessary
(doJailbreak
(super.stack.overrideScope (self: super: {
# stack 2.7.5 requires aeson <= 1.6.
aeson = self.aeson_1_5_6_0;
}))
));
# Needs Cabal-3.6
Cabal = self.Cabal_3_6_3_0;
})));

# Too strict version bound on hashable-time.
# Tests require newer package version.
Expand Down Expand Up @@ -1299,13 +1286,17 @@ self: super: {
# upstream: https://github.com/obsidiansystems/which/pull/6
which = doJailbreak super.which;

# the test suite attempts to run the binaries built in this package
# through $PATH but they aren't in $PATH
dhall-lsp-server = dontCheck super.dhall-lsp-server;

# https://github.com/ocharles/weeder/issues/15
weeder = doJailbreak super.weeder;

# 2022-09-20: We have overridden lsp to not be the stackage version.
# dhall-lsp-server needs the older 1.4.0.0 lsp
dhall-lsp-server = super.dhall-lsp-server.override {
lsp = dontCheck (super.lsp_1_4_0_0.override {
lsp-types = super.lsp-types_1_4_0_1;
});
};

# Requested version bump on upstream https://github.com/obsidiansystems/constraints-extras/issues/32
constraints-extras = doJailbreak super.constraints-extras;

Expand Down Expand Up @@ -1531,20 +1522,28 @@ self: super: {
})
] super.binary-strict;

# 2020-11-19: Checks nearly fixed, but still disabled because of flaky tests:
# https://github.com/haskell/haskell-language-server/issues/610
# https://github.com/haskell/haskell-language-server/issues/611
haskell-language-server = lib.pipe super.haskell-language-server [
haskell-language-server = (lib.pipe super.haskell-language-server [
dontCheck
(appendConfigureFlags ["-ftactics"])
(overrideCabal (old: {
libraryHaskellDepends = old.libraryHaskellDepends ++ [
super.hls-tactics-plugin
];
}))
];
(disableCabalFlag "stan") # Sorry stan is totally unmaintained and terrible to get to run. It only works on ghc 8.8 or 8.10 anyways …
]).overrideScope (lself: lsuper: {
ormolu = doJailbreak lself.ormolu_0_5_0_1;
fourmolu = doJailbreak lself.fourmolu_0_8_2_0;
hlint = enableCabalFlag "ghc-lib" lself.hlint_3_4_1;
ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_4;
ghc-lib-parser = lself.ghc-lib-parser_9_2_4_20220729;
});

lsp = assert super.lsp.version == "1.4.0.0"; dontCheck super.lsp;
hls-hlint-plugin = super.hls-hlint-plugin.overrideScope (lself: lsuper: {
# For "ghc-lib" flag see https://github.com/haskell/haskell-language-server/issues/3185#issuecomment-1250264515
hlint = enableCabalFlag "ghc-lib" lself.hlint_3_4_1;
ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_4;
ghc-lib-parser = lself.ghc-lib-parser_9_2_4_20220729;
});

# For -f-auto see cabal.project in haskell-language-server.
ghc-lib-parser-ex_9_2_0_4 = disableCabalFlag "auto" (super.ghc-lib-parser-ex_9_2_0_4.override {
ghc-lib-parser = self.ghc-lib-parser_9_2_4_20220729;
});

# 2021-05-08: Tests fail: https://github.com/haskell/haskell-language-server/issues/1809
hls-eval-plugin = dontCheck super.hls-eval-plugin;
Expand All @@ -1565,6 +1564,9 @@ self: super: {
# https://github.com/haskell/haskell-language-server/issues/2375
hls-pragmas-plugin = dontCheck super.hls-pragmas-plugin;

# 2022-09-19: https://github.com/haskell/haskell-language-server/issues/3200
hls-refactor-plugin = dontCheck super.hls-refactor-plugin;

# 2021-03-21: Test hangs
# https://github.com/haskell/haskell-language-server/issues/1562
# 2021-11-13: Too strict upper bound on implicit-hie-cradle
Expand Down Expand Up @@ -1642,15 +1644,15 @@ self: super: {
servant-openapi3 = dontCheck super.servant-openapi3;

# Give hspec 2.10.* correct dependency versions without overrideScope
hspec_2_10_5 = doDistribute (super.hspec_2_10_5.override {
hspec-discover = self.hspec-discover_2_10_5;
hspec-core = self.hspec-core_2_10_5;
hspec_2_10_6 = doDistribute (super.hspec_2_10_6.override {
hspec-discover = self.hspec-discover_2_10_6;
hspec-core = self.hspec-core_2_10_6;
});
hspec-discover_2_10_5 = super.hspec-discover_2_10_5.override {
hspec-meta = self.hspec-meta_2_9_3;
hspec-discover_2_10_6 = super.hspec-discover_2_10_6.override {
hspec-meta = self.hspec-meta_2_10_5;
};
hspec-core_2_10_5 = super.hspec-core_2_10_5.override {
hspec-meta = self.hspec-meta_2_9_3;
hspec-core_2_10_6 = super.hspec-core_2_10_6.override {
hspec-meta = self.hspec-meta_2_10_5;
};

# Point hspec 2.7.10 to correct dependencies
Expand Down Expand Up @@ -2109,26 +2111,9 @@ self: super: {
# https://github.com/plow-technologies/hspec-golden-aeson/issues/17
hspec-golden-aeson = dontCheck super.hspec-golden-aeson;

# 2021-11-05: jailBreak the too tight upper bound on haskus-utils-variant
ghcup = doJailbreak (super.ghcup.overrideScope (self: super: {
Cabal = self.Cabal_3_6_3_0;
}));

# 2022-03-21: Newest stylish-haskell needs ghc-lib-parser-9_2
stylish-haskell = (super.stylish-haskell.override {
ghc-lib-parser = super.ghc-lib-parser_9_2_4_20220729;
ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_1_1;
});

ghc-lib-parser-ex_9_2_1_1 = super.ghc-lib-parser-ex_9_2_1_1.override {
ghc-lib-parser = super.ghc-lib-parser_9_2_4_20220729;
};

ghc-lib-parser-ex_9_2_0_4 = super.ghc-lib-parser-ex_9_2_0_4.override {
ghc-lib-parser = super.ghc-lib-parser_9_2_4_20220729;
};

hlint_3_4_1 = doDistribute (super.hlint_3_4_1.override {
ghc-lib-parser = self.ghc-lib-parser_9_2_4_20220729;
ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_4;
});

Expand Down Expand Up @@ -2159,10 +2144,6 @@ self: super: {
# 2021-08-18: streamly-posix was released with hspec 2.8.2, but it works with older versions too.
streamly-posix = doJailbreak super.streamly-posix;

# 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 = overrideCabal (old: { testTarget = "tests func-test"; }) super.lsp-test;

# 2021-09-14: Tests are flaky.
hls-splice-plugin = dontCheck super.hls-splice-plugin;

Expand Down Expand Up @@ -2510,13 +2491,8 @@ self: super: {
# has been resolved.
lucid-htmx = doJailbreak super.lucid-htmx;

lsp_1_5_0_0 = doDistribute (super.lsp_1_5_0_0.override {
lsp-types = self.lsp-types_1_5_0_0;
});

futhark = super.futhark.override {
lsp = self.lsp_1_5_0_0;
};
# 2022-09-20: Restrictive upper bound on lsp
futhark = doJailbreak super.futhark;

# Too strict bounds on hspec
# https://github.com/klapaucius/vector-hashtables/issues/11
Expand Down
35 changes: 12 additions & 23 deletions pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
Original file line number Diff line number Diff line change
Expand Up @@ -96,30 +96,19 @@ self: super: {
executableHaskellDepends = drv.executableToolDepends or [] ++ [ self.repline ];
}) super.hnix);

mime-string = disableOptimization super.mime-string;
haskell-language-server = addBuildDepend self.hls-brittany-plugin (super.haskell-language-server.overrideScope (lself: lsuper: {
Cabal = lself.Cabal_3_6_3_0;
aeson = lself.aeson_1_5_6_0;
lsp-types = doJailbreak lsuper.lsp-types; # Checks require aeson >= 2.0
}));

hls-brittany-plugin = super.hls-brittany-plugin.overrideScope (lself: lsuper: {
brittany = doJailbreak lself.brittany_0_13_1_2;
aeson = lself.aeson_1_5_6_0;
lsp-types = doJailbreak lsuper.lsp-types; # Checks require aeson >= 2.0
});

# Older compilers need the latest ghc-lib to build this package.
# Fix build with ghc-lib >= 9.0 and ghc <= 8.10.7
# https://github.com/haskell/haskell-language-server/issues/2728
hls-hlint-plugin = addBuildDepend self.ghc-lib (appendPatch (pkgs.fetchpatch {
name = "hls-hlint-plugin-workaround.patch";
url = "https://github.com/haskell/haskell-language-server/pull/2854.patch";
hash = "sha256-bLGu0OQtXsmMF3rZM+R6k7bsZm4Vgf2r0ert5Wunong=";
stripLen = 2;
includes = ["src/Ide/Plugin/Hlint.hs"];
}) super.hls-hlint-plugin);

haskell-language-server = appendConfigureFlags [
"-f-stylishhaskell"
"-f-brittany"
]
super.haskell-language-server;

# has a restrictive lower bound on Cabal
fourmolu = doJailbreak super.fourmolu;

# ormolu 0.3 requires Cabal == 3.4
ormolu = super.ormolu_0_2_0_0;
mime-string = disableOptimization super.mime-string;

# weeder 2.3.0 no longer supports GHC 8.10
weeder = doDistribute (doJailbreak self.weeder_2_2_0);
Expand Down
Loading