on iko/ghcjs-patch-master help sign in
shellFor: Fix bug where packages were not excluded from the env (#285)

* tests: Add regression test for shellFor build-tools bug * tests: Fix regen script * Regenerate nix expressions for tests * tests: ghc 8.4.4 -> 8.6.5 * shellFor: Fix bug where packages were not excluded from the env If a multi-package project had an build-tools dependency between packages, they would not be correctly removed from the shell's inputs.

commit686fa37877afcce4d1e0c7e77e5f8688ec8e96a8 authorRodney Lorrimar <rodney.lorrimar@iohk.io> dateFri 1 Nov 2019, 20:08 (7 years ago) parent01bc2e2
26 files changed+702−209
builder/shell-for.nix+8−5 test/builder-haddock/.plan.nix/test-haddock.nix+50−2 test/builder-haddock/pkgs.nix+14−10 test/builder-haddock/test-haddock.cabal+1−1 test/builder-haddock/test-haddock.nix+49−2 test/cabal-22/.plan.nix/project.nix+68−6 test/cabal-22/pkgs.nix+33−26 test/cabal-22/project.cabal+4−4 test/cabal-22/project.nix+67−6 test/cabal-simple/.plan.nix/cabal-simple.nix+53−6 test/cabal-simple/pkgs.nix+36−37 test/cabal-sublib/.plan.nix/cabal-sublib.nix+61−7 test/cabal-sublib/pkgs.nix+36−37 test/regen.nix+5−5 test/shell-for/.plan.nix/pkga.nix+6 test/shell-for/.plan.nix/pkgb.nix+13 test/shell-for/pkga/MainA.hs+4 test/shell-for/pkga/pkga.cabal+6 test/shell-for/pkgb/app/tests.hs+6 test/shell-for/pkgb/pkgb.cabal+9−2 test/shell-for/pkgs.nix+9−5 test/stack-simple/pkgs.nix+3−1 test/stack-simple/stack-simple.nix+55−4 test/tests.sh+13−1 test/with-packages/.plan.nix/test-with-packages.nix+48−2 test/with-packages/pkgs.nix+45−40
builder/shell-for.nix+8−5
@@ -20,11 +20,13 @@ let
2020 then "ghc-shell-for-${(lib.head selected).identifier.name}"
2121 else "ghc-shell-for-packages";
2222
23+ # Removes the selected packages from a list of packages.
2324 # If `packages = [ a b ]` and `a` depends on `b`, don't build `b`,
24− # because cabal will end up ignoring that built version, assuming
25− # new-style commands.
26− packageInputs = lib.filter
27− (input: lib.all (cfg: input.identifier != cfg.identifier) selected)
25+ # because cabal will end up ignoring that built version;
26+ removeSelected = lib.filter
27+ (input: lib.all (cfg: (input.identifier or null) != cfg.identifier) selected);
28+
29+ packageInputs = removeSelected
2830 (lib.concatMap (cfg: cfg.depends) selectedConfigs
2931 ++ additionalSelected
3032 ++ lib.concatMap (cfg: cfg.setup.config.depends or []) selected
@@ -33,7 +35,8 @@ let
3335 # Add the system libraries and build tools of the selected haskell
3436 # packages to the shell.
3537 systemInputs = lib.concatMap (p: p.components.all.buildInputs) selected;
36− nativeBuildInputs = lib.concatMap (p: p.components.all.executableToolDepends) selected;
38+ nativeBuildInputs = removeSelected
39+ (lib.concatMap (p: p.components.all.executableToolDepends) selected);
3740
3841 # Set up a "dummy" component to use with ghcForComponent.
3942 component = {
test/builder-haddock/.plan.nix/test-haddock.nix+50−2
@@ -1,4 +1,43 @@
1−{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
1+let
2+ buildDepError = pkg:
3+ builtins.throw ''
4+ The Haskell package set does not contain the package: ${pkg} (build dependency).
5+
6+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
7+ '';
8+ sysDepError = pkg:
9+ builtins.throw ''
10+ The Nixpkgs package set does not contain the package: ${pkg} (system dependency).
11+
12+ You may need to augment the system package mapping in haskell.nix so that it can be found.
13+ '';
14+ pkgConfDepError = pkg:
15+ builtins.throw ''
16+ The pkg-conf packages does not contain the package: ${pkg} (pkg-conf dependency).
17+
18+ You may need to augment the pkg-conf package mapping in haskell.nix so that it can be found.
19+ '';
20+ exeDepError = pkg:
21+ builtins.throw ''
22+ The local executable components do not include the component: ${pkg} (executable dependency).
23+ '';
24+ legacyExeDepError = pkg:
25+ builtins.throw ''
26+ The Haskell package set does not contain the package: ${pkg} (executable dependency).
27+
28+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
29+ '';
30+ buildToolDepError = pkg:
31+ builtins.throw ''
32+ Neither the Haskell package set or the Nixpkgs package set contain the package: ${pkg} (build tool dependency).
33+
34+ If this is a system dependency:
35+ You may need to augment the system package mapping in haskell.nix so that it can be found.
36+
37+ If this is a Haskell dependency:
38+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
39+ '';
40+in { system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
241 {
342 flags = {};
443 package = {
@@ -13,6 +52,15 @@
1352 synopsis = "";
1453 description = "";
1554 buildType = "Simple";
55+ isLocal = true;
56+ };
57+ components = {
58+ "library" = {
59+ depends = [
60+ (hsPkgs."base" or (buildDepError "base"))
61+ (hsPkgs."stm" or (buildDepError "stm"))
62+ ];
63+ buildable = true;
64+ };
1665 };
17− components = { "library" = { depends = [ (hsPkgs.base) (hsPkgs.stm) ]; }; };
1866 } // rec { src = (pkgs.lib).mkDefault ../.; }
test/builder-haddock/pkgs.nix+14−10
@@ -2,26 +2,30 @@
22 pkgs = hackage:
33 {
44 packages = {
5− "ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
6− "stm".revision = (((hackage."stm")."2.4.5.1").revisions).default;
5+ "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
6+ "stm".revision = (((hackage."stm")."2.5.0.0").revisions).default;
77 "rts".revision = (((hackage."rts")."1.0").revisions).default;
8− "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
9− "array".revision = (((hackage."array")."0.5.2.0").revisions).default;
8+ "base".revision = (((hackage."base")."4.12.0.0").revisions).default;
9+ "array".revision = (((hackage."array")."0.5.3.0").revisions).default;
1010 "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
1111 };
1212 compiler = {
13− version = "8.4.4";
14− nix-name = "ghc844";
13+ version = "8.6.5";
14+ nix-name = "ghc865";
1515 packages = {
16− "ghc-prim" = "0.5.2.0";
17− "stm" = "2.4.5.1";
16+ "ghc-prim" = "0.5.3";
17+ "stm" = "2.5.0.0";
1818 "rts" = "1.0";
19− "base" = "4.11.1.0";
20− "array" = "0.5.2.0";
19+ "base" = "4.12.0.0";
20+ "array" = "0.5.3.0";
2121 "integer-gmp" = "1.0.2.0";
2222 };
2323 };
2424 };
2525 extras = hackage:
2626 { packages = { test-haddock = ./.plan.nix/test-haddock.nix; }; };
27+ modules = [
28+ ({ lib, ... }:
29+ { packages = { "test-haddock" = { flags = {}; }; }; })
30+ ];
2731 }
test/builder-haddock/test-haddock.cabal+1−1
@@ -9,7 +9,7 @@ library
99 exposed-modules: TestHaddock
1010 other-modules: Paths_test_haddock
1111 -- other-extensions:
12− build-depends: base ^>=4.11.1.0
12+ build-depends: base >=4.11.1.0
1313 , stm
1414 -- hs-source-dirs:
1515 default-language: Haskell2010
test/builder-haddock/test-haddock.nix+49−2
@@ -1,4 +1,43 @@
1−{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
1+let
2+ buildDepError = pkg:
3+ builtins.throw ''
4+ The Haskell package set does not contain the package: ${pkg} (build dependency).
5+
6+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
7+ '';
8+ sysDepError = pkg:
9+ builtins.throw ''
10+ The Nixpkgs package set does not contain the package: ${pkg} (system dependency).
11+
12+ You may need to augment the system package mapping in haskell.nix so that it can be found.
13+ '';
14+ pkgConfDepError = pkg:
15+ builtins.throw ''
16+ The pkg-conf packages does not contain the package: ${pkg} (pkg-conf dependency).
17+
18+ You may need to augment the pkg-conf package mapping in haskell.nix so that it can be found.
19+ '';
20+ exeDepError = pkg:
21+ builtins.throw ''
22+ The local executable components do not include the component: ${pkg} (executable dependency).
23+ '';
24+ legacyExeDepError = pkg:
25+ builtins.throw ''
26+ The Haskell package set does not contain the package: ${pkg} (executable dependency).
27+
28+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
29+ '';
30+ buildToolDepError = pkg:
31+ builtins.throw ''
32+ Neither the Haskell package set or the Nixpkgs package set contain the package: ${pkg} (build tool dependency).
33+
34+ If this is a system dependency:
35+ You may need to augment the system package mapping in haskell.nix so that it can be found.
36+
37+ If this is a Haskell dependency:
38+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
39+ '';
40+in { system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
241 {
342 flags = {};
443 package = {
@@ -14,5 +53,13 @@
1453 description = "";
1554 buildType = "Simple";
1655 };
17− components = { "library" = { depends = [ (hsPkgs.base) (hsPkgs.stm) ]; }; };
56+ components = {
57+ "library" = {
58+ depends = [
59+ (hsPkgs."base" or (buildDepError "base"))
60+ (hsPkgs."stm" or (buildDepError "stm"))
61+ ];
62+ buildable = true;
63+ };
64+ };
1865 } // rec { src = (pkgs.lib).mkDefault ./.; }
test/cabal-22/.plan.nix/project.nix+68−6
@@ -1,4 +1,43 @@
1−{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
1+let
2+ buildDepError = pkg:
3+ builtins.throw ''
4+ The Haskell package set does not contain the package: ${pkg} (build dependency).
5+
6+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
7+ '';
8+ sysDepError = pkg:
9+ builtins.throw ''
10+ The Nixpkgs package set does not contain the package: ${pkg} (system dependency).
11+
12+ You may need to augment the system package mapping in haskell.nix so that it can be found.
13+ '';
14+ pkgConfDepError = pkg:
15+ builtins.throw ''
16+ The pkg-conf packages does not contain the package: ${pkg} (pkg-conf dependency).
17+
18+ You may need to augment the pkg-conf package mapping in haskell.nix so that it can be found.
19+ '';
20+ exeDepError = pkg:
21+ builtins.throw ''
22+ The local executable components do not include the component: ${pkg} (executable dependency).
23+ '';
24+ legacyExeDepError = pkg:
25+ builtins.throw ''
26+ The Haskell package set does not contain the package: ${pkg} (executable dependency).
27+
28+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
29+ '';
30+ buildToolDepError = pkg:
31+ builtins.throw ''
32+ Neither the Haskell package set or the Nixpkgs package set contain the package: ${pkg} (build tool dependency).
33+
34+ If this is a system dependency:
35+ You may need to augment the system package mapping in haskell.nix so that it can be found.
36+
37+ If this is a Haskell dependency:
38+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
39+ '';
40+in { system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
241 {
342 flags = {};
443 package = {
@@ -13,20 +52,43 @@
1352 synopsis = "";
1453 description = "";
1554 buildType = "Simple";
55+ isLocal = true;
1656 };
1757 components = {
18− "library" = { depends = [ (hsPkgs.base) ]; };
19− exes = { "project" = { depends = [ (hsPkgs.base) (hsPkgs.project) ]; }; };
58+ "library" = {
59+ depends = [ (hsPkgs."base" or (buildDepError "base")) ];
60+ buildable = true;
61+ };
62+ exes = {
63+ "project" = {
64+ depends = [
65+ (hsPkgs."base" or (buildDepError "base"))
66+ (hsPkgs."project" or (buildDepError "project"))
67+ ];
68+ buildable = true;
69+ };
70+ };
2071 tests = {
2172 "unit" = {
22− depends = [ (hsPkgs.base) (hsPkgs.project) (hsPkgs.hspec) ];
73+ depends = [
74+ (hsPkgs."base" or (buildDepError "base"))
75+ (hsPkgs."project" or (buildDepError "project"))
76+ (hsPkgs."hspec" or (buildDepError "hspec"))
77+ ];
2378 build-tools = [
24− (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover))
79+ (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover or (buildToolDepError "hspec-discover")))
2580 ];
81+ buildable = true;
2682 };
2783 };
2884 benchmarks = {
29− "project-bench" = { depends = [ (hsPkgs.base) (hsPkgs.project) ]; };
85+ "project-bench" = {
86+ depends = [
87+ (hsPkgs."base" or (buildDepError "base"))
88+ (hsPkgs."project" or (buildDepError "project"))
89+ ];
90+ buildable = true;
91+ };
3092 };
3193 };
3294 } // rec { src = (pkgs.lib).mkDefault ../.; }
test/cabal-22/pkgs.nix+33−26
@@ -3,65 +3,72 @@
33 {
44 packages = {
55 "tf-random".revision = (((hackage."tf-random")."0.5").revisions).default;
6− "ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
7− "stm".revision = (((hackage."stm")."2.4.5.1").revisions).default;
6+ "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
7+ "stm".revision = (((hackage."stm")."2.5.0.0").revisions).default;
88 "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
99 "rts".revision = (((hackage."rts")."1.0").revisions).default;
1010 "clock".revision = (((hackage."clock")."0.8").revisions).default;
1111 "clock".flags.llvm = false;
12− "QuickCheck".revision = (((hackage."QuickCheck")."2.13.1").revisions).default;
12+ "QuickCheck".revision = (((hackage."QuickCheck")."2.13.2").revisions).default;
1313 "QuickCheck".flags.templatehaskell = true;
1414 "hspec-discover".revision = (((hackage."hspec-discover")."2.7.1").revisions).default;
15− "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
15+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
1616 "random".revision = (((hackage."random")."1.1").revisions).default;
17− "splitmix".revision = (((hackage."splitmix")."0.0.2").revisions).default;
17+ "splitmix".revision = (((hackage."splitmix")."0.0.3").revisions).default;
18+ "splitmix".flags.optimised-mixer = false;
19+ "splitmix".flags.random = true;
1820 "HUnit".revision = (((hackage."HUnit")."1.6.0.0").revisions).default;
19− "directory".revision = (((hackage."directory")."1.3.1.5").revisions).default;
20− "template-haskell".revision = (((hackage."template-haskell")."2.13.0.0").revisions).default;
21+ "directory".revision = (((hackage."directory")."1.3.3.0").revisions).default;
22+ "template-haskell".revision = (((hackage."template-haskell")."2.14.0.0").revisions).default;
2123 "hspec-expectations".revision = (((hackage."hspec-expectations")."0.8.2").revisions).default;
22− "call-stack".revision = (((hackage."call-stack")."0.1.0").revisions).default;
24+ "call-stack".revision = (((hackage."call-stack")."0.2.0").revisions).default;
2325 "primitive".revision = (((hackage."primitive")."0.7.0.0").revisions).default;
24− "ansi-terminal".revision = (((hackage."ansi-terminal")."0.9.1").revisions).default;
26+ "ansi-terminal".revision = (((hackage."ansi-terminal")."0.10.1").revisions).default;
2527 "ansi-terminal".flags.example = false;
26− "containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
28+ "containers".revision = (((hackage."containers")."0.6.0.1").revisions).default;
2729 "bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
2830 "setenv".revision = (((hackage."setenv")."0.1.1.3").revisions).default;
29− "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
31+ "base".revision = (((hackage."base")."4.12.0.0").revisions).default;
3032 "hspec".revision = (((hackage."hspec")."2.7.1").revisions).default;
3133 "time".revision = (((hackage."time")."1.8.0.2").revisions).default;
3234 "transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
3335 "quickcheck-io".revision = (((hackage."quickcheck-io")."0.2.0").revisions).default;
3436 "colour".revision = (((hackage."colour")."2.3.5").revisions).default;
35− "filepath".revision = (((hackage."filepath")."1.4.2").revisions).default;
37+ "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
3638 "hspec-core".revision = (((hackage."hspec-core")."2.7.1").revisions).default;
3739 "pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
38− "ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.4.4").revisions).default;
39− "array".revision = (((hackage."array")."0.5.2.0").revisions).default;
40+ "ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.6.5").revisions).default;
41+ "array".revision = (((hackage."array")."0.5.3.0").revisions).default;
4042 "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
4143 };
4244 compiler = {
43− version = "8.4.4";
44− nix-name = "ghc844";
45+ version = "8.6.5";
46+ nix-name = "ghc865";
4547 packages = {
46− "ghc-prim" = "0.5.2.0";
47− "stm" = "2.4.5.1";
48+ "ghc-prim" = "0.5.3";
49+ "stm" = "2.5.0.0";
4850 "unix" = "2.7.2.2";
4951 "rts" = "1.0";
50− "deepseq" = "1.4.3.0";
51− "directory" = "1.3.1.5";
52− "template-haskell" = "2.13.0.0";
53− "containers" = "0.5.11.0";
52+ "deepseq" = "1.4.4.0";
53+ "directory" = "1.3.3.0";
54+ "template-haskell" = "2.14.0.0";
55+ "containers" = "0.6.0.1";
5456 "bytestring" = "0.10.8.2";
55− "base" = "4.11.1.0";
57+ "base" = "4.12.0.0";
5658 "time" = "1.8.0.2";
57− "filepath" = "1.4.2";
59+ "transformers" = "0.5.6.2";
60+ "filepath" = "1.4.2.1";
5861 "pretty" = "1.1.3.6";
59− "ghc-boot-th" = "8.4.4";
60− "array" = "0.5.2.0";
62+ "ghc-boot-th" = "8.6.5";
63+ "array" = "0.5.3.0";
6164 "integer-gmp" = "1.0.2.0";
6265 };
6366 };
6467 };
6568 extras = hackage:
6669 { packages = { project = ./.plan.nix/project.nix; }; };
70+ modules = [
71+ ({ lib, ... }:
72+ { packages = { "project" = { flags = {}; }; }; })
73+ ];
6774 }
test/cabal-22/project.cabal+4−4
@@ -15,20 +15,20 @@ maintainer: rodney.lorrimar@iohk.io
1515
1616library
1717 exposed-modules: Lib
18− build-depends: base ^>=4.11.1.0
18+ build-depends: base >=4.11.1.0
1919 hs-source-dirs: lib
2020 default-language: Haskell2010
2121
2222executable project
2323 main-is: Main.hs
24− build-depends: base ^>=4.11.1.0
24+ build-depends: base >=4.11.1.0
2525 , project
2626 default-language: Haskell2010
2727
2828benchmark project-bench
2929 type: exitcode-stdio-1.0
3030 main-is: Main.hs
31− build-depends: base ^>=4.11.1.0
31+ build-depends: base >=4.11.1.0
3232 , project
3333 default-language: Haskell2010
3434 ghc-options: -threaded -rtsopts -Wall -O2
@@ -36,7 +36,7 @@ benchmark project-bench
3636test-suite unit
3737 type: exitcode-stdio-1.0
3838 main-is: Main.hs
39− build-depends: base ^>=4.11.1.0
39+ build-depends: base >=4.11.1.0
4040 , project
4141 , hspec
4242 build-tools: hspec-discover
test/cabal-22/project.nix+67−6
@@ -1,4 +1,43 @@
1−{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
1+let
2+ buildDepError = pkg:
3+ builtins.throw ''
4+ The Haskell package set does not contain the package: ${pkg} (build dependency).
5+
6+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
7+ '';
8+ sysDepError = pkg:
9+ builtins.throw ''
10+ The Nixpkgs package set does not contain the package: ${pkg} (system dependency).
11+
12+ You may need to augment the system package mapping in haskell.nix so that it can be found.
13+ '';
14+ pkgConfDepError = pkg:
15+ builtins.throw ''
16+ The pkg-conf packages does not contain the package: ${pkg} (pkg-conf dependency).
17+
18+ You may need to augment the pkg-conf package mapping in haskell.nix so that it can be found.
19+ '';
20+ exeDepError = pkg:
21+ builtins.throw ''
22+ The local executable components do not include the component: ${pkg} (executable dependency).
23+ '';
24+ legacyExeDepError = pkg:
25+ builtins.throw ''
26+ The Haskell package set does not contain the package: ${pkg} (executable dependency).
27+
28+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
29+ '';
30+ buildToolDepError = pkg:
31+ builtins.throw ''
32+ Neither the Haskell package set or the Nixpkgs package set contain the package: ${pkg} (build tool dependency).
33+
34+ If this is a system dependency:
35+ You may need to augment the system package mapping in haskell.nix so that it can be found.
36+
37+ If this is a Haskell dependency:
38+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
39+ '';
40+in { system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
241 {
342 flags = {};
443 package = {
@@ -15,18 +54,40 @@
1554 buildType = "Simple";
1655 };
1756 components = {
18− "library" = { depends = [ (hsPkgs.base) ]; };
19− exes = { "project" = { depends = [ (hsPkgs.base) (hsPkgs.project) ]; }; };
57+ "library" = {
58+ depends = [ (hsPkgs."base" or (buildDepError "base")) ];
59+ buildable = true;
60+ };
61+ exes = {
62+ "project" = {
63+ depends = [
64+ (hsPkgs."base" or (buildDepError "base"))
65+ (hsPkgs."project" or (buildDepError "project"))
66+ ];
67+ buildable = true;
68+ };
69+ };
2070 tests = {
2171 "unit" = {
22− depends = [ (hsPkgs.base) (hsPkgs.project) (hsPkgs.hspec) ];
72+ depends = [
73+ (hsPkgs."base" or (buildDepError "base"))
74+ (hsPkgs."project" or (buildDepError "project"))
75+ (hsPkgs."hspec" or (buildDepError "hspec"))
76+ ];
2377 build-tools = [
24− (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover))
78+ (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover or (buildToolDepError "hspec-discover")))
2579 ];
80+ buildable = true;
2681 };
2782 };
2883 benchmarks = {
29− "project-bench" = { depends = [ (hsPkgs.base) (hsPkgs.project) ]; };
84+ "project-bench" = {
85+ depends = [
86+ (hsPkgs."base" or (buildDepError "base"))
87+ (hsPkgs."project" or (buildDepError "project"))
88+ ];
89+ buildable = true;
90+ };
3091 };
3192 };
3293 } // rec { src = (pkgs.lib).mkDefault ./.; }
test/cabal-simple/.plan.nix/cabal-simple.nix+53−6
@@ -1,4 +1,43 @@
1−{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
1+let
2+ buildDepError = pkg:
3+ builtins.throw ''
4+ The Haskell package set does not contain the package: ${pkg} (build dependency).
5+
6+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
7+ '';
8+ sysDepError = pkg:
9+ builtins.throw ''
10+ The Nixpkgs package set does not contain the package: ${pkg} (system dependency).
11+
12+ You may need to augment the system package mapping in haskell.nix so that it can be found.
13+ '';
14+ pkgConfDepError = pkg:
15+ builtins.throw ''
16+ The pkg-conf packages does not contain the package: ${pkg} (pkg-conf dependency).
17+
18+ You may need to augment the pkg-conf package mapping in haskell.nix so that it can be found.
19+ '';
20+ exeDepError = pkg:
21+ builtins.throw ''
22+ The local executable components do not include the component: ${pkg} (executable dependency).
23+ '';
24+ legacyExeDepError = pkg:
25+ builtins.throw ''
26+ The Haskell package set does not contain the package: ${pkg} (executable dependency).
27+
28+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
29+ '';
30+ buildToolDepError = pkg:
31+ builtins.throw ''
32+ Neither the Haskell package set or the Nixpkgs package set contain the package: ${pkg} (build tool dependency).
33+
34+ If this is a system dependency:
35+ You may need to augment the system package mapping in haskell.nix so that it can be found.
36+
37+ If this is a Haskell dependency:
38+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
39+ '';
40+in { system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
241 {
342 flags = {};
443 package = {
@@ -13,19 +52,27 @@
1352 synopsis = "";
1453 description = "";
1554 buildType = "Simple";
55+ isLocal = true;
1656 };
1757 components = {
1858 "library" = {
19− depends = [ (hsPkgs.base) (hsPkgs.extra) (hsPkgs.safe) (hsPkgs.aeson) ];
59+ depends = [
60+ (hsPkgs."base" or (buildDepError "base"))
61+ (hsPkgs."extra" or (buildDepError "extra"))
62+ (hsPkgs."safe" or (buildDepError "safe"))
63+ (hsPkgs."aeson" or (buildDepError "aeson"))
64+ ];
65+ buildable = true;
2066 };
2167 exes = {
2268 "cabal-simple" = {
2369 depends = [
24− (hsPkgs.base)
25− (hsPkgs.cabal-simple)
26− (hsPkgs.extra)
27− (hsPkgs.optparse-applicative)
70+ (hsPkgs."base" or (buildDepError "base"))
71+ (hsPkgs."cabal-simple" or (buildDepError "cabal-simple"))
72+ (hsPkgs."extra" or (buildDepError "extra"))
73+ (hsPkgs."optparse-applicative" or (buildDepError "optparse-applicative"))
2874 ];
75+ buildable = true;
2976 };
3077 };
3178 };
test/cabal-simple/pkgs.nix+36−37
@@ -2,10 +2,9 @@
22 pkgs = hackage:
33 {
44 packages = {
5− "binary".revision = (((hackage."binary")."0.8.5.1").revisions).default;
6− "ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
7− "extra".revision = (((hackage."extra")."1.6.17").revisions).default;
8− "stm".revision = (((hackage."stm")."2.4.5.1").revisions).default;
5+ "binary".revision = (((hackage."binary")."0.8.6.0").revisions).default;
6+ "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
7+ "extra".revision = (((hackage."extra")."1.6.18").revisions).default;
98 "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
109 "rts".revision = (((hackage."rts")."1.0").revisions).default;
1110 "clock".revision = (((hackage."clock")."0.8").revisions).default;
@@ -13,12 +12,12 @@
1312 "scientific".revision = (((hackage."scientific")."0.3.6.2").revisions).default;
1413 "scientific".flags.integer-simple = false;
1514 "scientific".flags.bytestring-builder = false;
16− "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
15+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
1716 "random".revision = (((hackage."random")."1.1").revisions).default;
1817 "uuid-types".revision = (((hackage."uuid-types")."1.0.3").revisions).default;
19− "optparse-applicative".revision = (((hackage."optparse-applicative")."0.14.3.0").revisions).default;
20− "dlist".revision = (((hackage."dlist")."0.8.0.6").revisions).default;
21− "semigroups".revision = (((hackage."semigroups")."0.19").revisions).default;
18+ "optparse-applicative".revision = (((hackage."optparse-applicative")."0.15.1.0").revisions).default;
19+ "dlist".revision = (((hackage."dlist")."0.8.0.7").revisions).default;
20+ "semigroups".revision = (((hackage."semigroups")."0.19.1").revisions).default;
2221 "semigroups".flags.bytestring = true;
2322 "semigroups".flags.unordered-containers = true;
2423 "semigroups".flags.text = true;
@@ -30,7 +29,7 @@
3029 "semigroups".flags.deepseq = true;
3130 "semigroups".flags.bytestring-builder = false;
3231 "semigroups".flags.template-haskell = true;
33− "directory".revision = (((hackage."directory")."1.3.1.5").revisions).default;
32+ "directory".revision = (((hackage."directory")."1.3.3.0").revisions).default;
3433 "transformers-compat".revision = (((hackage."transformers-compat")."0.6.5").revisions).default;
3534 "transformers-compat".flags.five = false;
3635 "transformers-compat".flags.generic-deriving = true;
@@ -39,7 +38,7 @@
3938 "transformers-compat".flags.mtl = true;
4039 "transformers-compat".flags.four = false;
4140 "transformers-compat".flags.three = false;
42− "template-haskell".revision = (((hackage."template-haskell")."2.13.0.0").revisions).default;
41+ "template-haskell".revision = (((hackage."template-haskell")."2.14.0.0").revisions).default;
4342 "vector".revision = (((hackage."vector")."0.12.0.3").revisions).default;
4443 "vector".flags.unsafechecks = false;
4544 "vector".flags.internalchecks = false;
@@ -47,30 +46,25 @@
4746 "vector".flags.boundschecks = true;
4847 "primitive".revision = (((hackage."primitive")."0.7.0.0").revisions).default;
4948 "safe".revision = (((hackage."safe")."0.3.17").revisions).default;
50− "base-compat".revision = (((hackage."base-compat")."0.10.5").revisions).default;
49+ "base-compat".revision = (((hackage."base-compat")."0.11.0").revisions).default;
5150 "time-compat".revision = (((hackage."time-compat")."1.9.2.2").revisions).default;
5251 "time-compat".flags.old-locale = false;
53− "ansi-terminal".revision = (((hackage."ansi-terminal")."0.9.1").revisions).default;
52+ "ansi-terminal".revision = (((hackage."ansi-terminal")."0.10.1").revisions).default;
5453 "ansi-terminal".flags.example = false;
5554 "tagged".revision = (((hackage."tagged")."0.8.6").revisions).default;
5655 "tagged".flags.transformers = true;
5756 "tagged".flags.deepseq = true;
58− "containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
57+ "containers".revision = (((hackage."containers")."0.6.0.1").revisions).default;
5958 "integer-logarithms".revision = (((hackage."integer-logarithms")."1.0.3").revisions).default;
6059 "integer-logarithms".flags.check-bounds = false;
6160 "integer-logarithms".flags.integer-gmp = true;
6261 "bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
6362 "ansi-wl-pprint".revision = (((hackage."ansi-wl-pprint")."0.6.9").revisions).default;
6463 "ansi-wl-pprint".flags.example = false;
65− "StateVar".revision = (((hackage."StateVar")."1.2").revisions).default;
66− "contravariant".revision = (((hackage."contravariant")."1.5.2").revisions).default;
67− "contravariant".flags.semigroups = true;
68− "contravariant".flags.tagged = true;
69− "contravariant".flags.statevar = true;
7064 "text".revision = (((hackage."text")."1.2.3.1").revisions).default;
7165 "unordered-containers".revision = (((hackage."unordered-containers")."0.2.10.0").revisions).default;
7266 "unordered-containers".flags.debug = false;
73− "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
67+ "base".revision = (((hackage."base")."4.12.0.0").revisions).default;
7468 "time".revision = (((hackage."time")."1.8.0.2").revisions).default;
7569 "transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
7670 "hashable".revision = (((hackage."hashable")."1.3.0.0").revisions).default;
@@ -78,48 +72,53 @@
7872 "hashable".flags.integer-gmp = true;
7973 "hashable".flags.sse41 = false;
8074 "hashable".flags.examples = false;
81− "attoparsec".revision = (((hackage."attoparsec")."0.13.2.2").revisions).default;
75+ "attoparsec".revision = (((hackage."attoparsec")."0.13.2.3").revisions).default;
8276 "attoparsec".flags.developer = false;
8377 "colour".revision = (((hackage."colour")."2.3.5").revisions).default;
84− "filepath".revision = (((hackage."filepath")."1.4.2").revisions).default;
78+ "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
8579 "process".revision = (((hackage."process")."1.6.5.0").revisions).default;
8680 "pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
87− "aeson".revision = (((hackage."aeson")."1.4.4.0").revisions).default;
81+ "aeson".revision = (((hackage."aeson")."1.4.5.0").revisions).default;
8882 "aeson".flags.cffi = false;
8983 "aeson".flags.fast = false;
9084 "aeson".flags.bytestring-builder = false;
9185 "aeson".flags.developer = false;
92− "ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.4.4").revisions).default;
86+ "ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.6.5").revisions).default;
9387 "base-orphans".revision = (((hackage."base-orphans")."0.8.1").revisions).default;
9488 "th-abstraction".revision = (((hackage."th-abstraction")."0.3.1.0").revisions).default;
95− "array".revision = (((hackage."array")."0.5.2.0").revisions).default;
89+ "array".revision = (((hackage."array")."0.5.3.0").revisions).default;
9690 "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
9791 };
9892 compiler = {
99− version = "8.4.4";
100− nix-name = "ghc844";
93+ version = "8.6.5";
94+ nix-name = "ghc865";
10195 packages = {
102− "binary" = "0.8.5.1";
103− "ghc-prim" = "0.5.2.0";
104− "stm" = "2.4.5.1";
96+ "binary" = "0.8.6.0";
97+ "ghc-prim" = "0.5.3";
10598 "unix" = "2.7.2.2";
10699 "rts" = "1.0";
107− "deepseq" = "1.4.3.0";
108− "directory" = "1.3.1.5";
109− "template-haskell" = "2.13.0.0";
110− "containers" = "0.5.11.0";
100+ "deepseq" = "1.4.4.0";
101+ "directory" = "1.3.3.0";
102+ "template-haskell" = "2.14.0.0";
103+ "containers" = "0.6.0.1";
111104 "bytestring" = "0.10.8.2";
112105 "text" = "1.2.3.1";
113− "base" = "4.11.1.0";
106+ "base" = "4.12.0.0";
114107 "time" = "1.8.0.2";
115− "filepath" = "1.4.2";
108+ "transformers" = "0.5.6.2";
109+ "filepath" = "1.4.2.1";
110+ "process" = "1.6.5.0";
116111 "pretty" = "1.1.3.6";
117− "ghc-boot-th" = "8.4.4";
118− "array" = "0.5.2.0";
112+ "ghc-boot-th" = "8.6.5";
113+ "array" = "0.5.3.0";
119114 "integer-gmp" = "1.0.2.0";
120115 };
121116 };
122117 };
123118 extras = hackage:
124119 { packages = { cabal-simple = ./.plan.nix/cabal-simple.nix; }; };
120+ modules = [
121+ ({ lib, ... }:
122+ { packages = { "cabal-simple" = { flags = {}; }; }; })
123+ ];
125124 }
test/cabal-sublib/.plan.nix/cabal-sublib.nix+61−7
@@ -1,4 +1,43 @@
1−{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
1+let
2+ buildDepError = pkg:
3+ builtins.throw ''
4+ The Haskell package set does not contain the package: ${pkg} (build dependency).
5+
6+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
7+ '';
8+ sysDepError = pkg:
9+ builtins.throw ''
10+ The Nixpkgs package set does not contain the package: ${pkg} (system dependency).
11+
12+ You may need to augment the system package mapping in haskell.nix so that it can be found.
13+ '';
14+ pkgConfDepError = pkg:
15+ builtins.throw ''
16+ The pkg-conf packages does not contain the package: ${pkg} (pkg-conf dependency).
17+
18+ You may need to augment the pkg-conf package mapping in haskell.nix so that it can be found.
19+ '';
20+ exeDepError = pkg:
21+ builtins.throw ''
22+ The local executable components do not include the component: ${pkg} (executable dependency).
23+ '';
24+ legacyExeDepError = pkg:
25+ builtins.throw ''
26+ The Haskell package set does not contain the package: ${pkg} (executable dependency).
27+
28+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
29+ '';
30+ buildToolDepError = pkg:
31+ builtins.throw ''
32+ Neither the Haskell package set or the Nixpkgs package set contain the package: ${pkg} (build tool dependency).
33+
34+ If this is a system dependency:
35+ You may need to augment the system package mapping in haskell.nix so that it can be found.
36+
37+ If this is a Haskell dependency:
38+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
39+ '';
40+in { system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
241 {
342 flags = {};
443 package = {
@@ -13,20 +52,35 @@
1352 synopsis = "";
1453 description = "";
1554 buildType = "Simple";
55+ isLocal = true;
1656 };
1757 components = {
18− "library" = { depends = [ (hsPkgs.base) (hsPkgs.slib) ]; };
58+ "library" = {
59+ depends = [
60+ (hsPkgs."base" or (buildDepError "base"))
61+ (hsPkgs."slib" or (buildDepError "slib"))
62+ ];
63+ buildable = true;
64+ };
1965 sublibs = {
20− "slib" = { depends = [ (hsPkgs.extra) (hsPkgs.safe) (hsPkgs.aeson) ]; };
66+ "slib" = {
67+ depends = [
68+ (hsPkgs."extra" or (buildDepError "extra"))
69+ (hsPkgs."safe" or (buildDepError "safe"))
70+ (hsPkgs."aeson" or (buildDepError "aeson"))
71+ ];
72+ buildable = true;
73+ };
2174 };
2275 exes = {
2376 "cabal-sublib" = {
2477 depends = [
25− (hsPkgs.base)
26− (hsPkgs.cabal-sublib)
27− (hsPkgs.extra)
28− (hsPkgs.optparse-applicative)
78+ (hsPkgs."base" or (buildDepError "base"))
79+ (hsPkgs."cabal-sublib" or (buildDepError "cabal-sublib"))
80+ (hsPkgs."extra" or (buildDepError "extra"))
81+ (hsPkgs."optparse-applicative" or (buildDepError "optparse-applicative"))
2982 ];
83+ buildable = true;
3084 };
3185 };
3286 };
test/cabal-sublib/pkgs.nix+36−37
@@ -2,10 +2,9 @@
22 pkgs = hackage:
33 {
44 packages = {
5− "binary".revision = (((hackage."binary")."0.8.5.1").revisions).default;
6− "ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
7− "extra".revision = (((hackage."extra")."1.6.17").revisions).default;
8− "stm".revision = (((hackage."stm")."2.4.5.1").revisions).default;
5+ "binary".revision = (((hackage."binary")."0.8.6.0").revisions).default;
6+ "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
7+ "extra".revision = (((hackage."extra")."1.6.18").revisions).default;
98 "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
109 "rts".revision = (((hackage."rts")."1.0").revisions).default;
1110 "clock".revision = (((hackage."clock")."0.8").revisions).default;
@@ -13,12 +12,12 @@
1312 "scientific".revision = (((hackage."scientific")."0.3.6.2").revisions).default;
1413 "scientific".flags.integer-simple = false;
1514 "scientific".flags.bytestring-builder = false;
16− "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
15+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
1716 "random".revision = (((hackage."random")."1.1").revisions).default;
1817 "uuid-types".revision = (((hackage."uuid-types")."1.0.3").revisions).default;
19− "optparse-applicative".revision = (((hackage."optparse-applicative")."0.14.3.0").revisions).default;
20− "dlist".revision = (((hackage."dlist")."0.8.0.6").revisions).default;
21− "semigroups".revision = (((hackage."semigroups")."0.19").revisions).default;
18+ "optparse-applicative".revision = (((hackage."optparse-applicative")."0.15.1.0").revisions).default;
19+ "dlist".revision = (((hackage."dlist")."0.8.0.7").revisions).default;
20+ "semigroups".revision = (((hackage."semigroups")."0.19.1").revisions).default;
2221 "semigroups".flags.bytestring = true;
2322 "semigroups".flags.unordered-containers = true;
2423 "semigroups".flags.text = true;
@@ -30,7 +29,7 @@
3029 "semigroups".flags.deepseq = true;
3130 "semigroups".flags.bytestring-builder = false;
3231 "semigroups".flags.template-haskell = true;
33− "directory".revision = (((hackage."directory")."1.3.1.5").revisions).default;
32+ "directory".revision = (((hackage."directory")."1.3.3.0").revisions).default;
3433 "transformers-compat".revision = (((hackage."transformers-compat")."0.6.5").revisions).default;
3534 "transformers-compat".flags.five = false;
3635 "transformers-compat".flags.generic-deriving = true;
@@ -39,7 +38,7 @@
3938 "transformers-compat".flags.mtl = true;
4039 "transformers-compat".flags.four = false;
4140 "transformers-compat".flags.three = false;
42− "template-haskell".revision = (((hackage."template-haskell")."2.13.0.0").revisions).default;
41+ "template-haskell".revision = (((hackage."template-haskell")."2.14.0.0").revisions).default;
4342 "vector".revision = (((hackage."vector")."0.12.0.3").revisions).default;
4443 "vector".flags.unsafechecks = false;
4544 "vector".flags.internalchecks = false;
@@ -47,30 +46,25 @@
4746 "vector".flags.boundschecks = true;
4847 "primitive".revision = (((hackage."primitive")."0.7.0.0").revisions).default;
4948 "safe".revision = (((hackage."safe")."0.3.17").revisions).default;
50− "base-compat".revision = (((hackage."base-compat")."0.10.5").revisions).default;
49+ "base-compat".revision = (((hackage."base-compat")."0.11.0").revisions).default;
5150 "time-compat".revision = (((hackage."time-compat")."1.9.2.2").revisions).default;
5251 "time-compat".flags.old-locale = false;
53− "ansi-terminal".revision = (((hackage."ansi-terminal")."0.9.1").revisions).default;
52+ "ansi-terminal".revision = (((hackage."ansi-terminal")."0.10.1").revisions).default;
5453 "ansi-terminal".flags.example = false;
5554 "tagged".revision = (((hackage."tagged")."0.8.6").revisions).default;
5655 "tagged".flags.transformers = true;
5756 "tagged".flags.deepseq = true;
58− "containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
57+ "containers".revision = (((hackage."containers")."0.6.0.1").revisions).default;
5958 "integer-logarithms".revision = (((hackage."integer-logarithms")."1.0.3").revisions).default;
6059 "integer-logarithms".flags.check-bounds = false;
6160 "integer-logarithms".flags.integer-gmp = true;
6261 "bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
6362 "ansi-wl-pprint".revision = (((hackage."ansi-wl-pprint")."0.6.9").revisions).default;
6463 "ansi-wl-pprint".flags.example = false;
65− "StateVar".revision = (((hackage."StateVar")."1.2").revisions).default;
66− "contravariant".revision = (((hackage."contravariant")."1.5.2").revisions).default;
67− "contravariant".flags.semigroups = true;
68− "contravariant".flags.tagged = true;
69− "contravariant".flags.statevar = true;
7064 "text".revision = (((hackage."text")."1.2.3.1").revisions).default;
7165 "unordered-containers".revision = (((hackage."unordered-containers")."0.2.10.0").revisions).default;
7266 "unordered-containers".flags.debug = false;
73− "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
67+ "base".revision = (((hackage."base")."4.12.0.0").revisions).default;
7468 "time".revision = (((hackage."time")."1.8.0.2").revisions).default;
7569 "transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
7670 "hashable".revision = (((hackage."hashable")."1.3.0.0").revisions).default;
@@ -78,48 +72,53 @@
7872 "hashable".flags.integer-gmp = true;
7973 "hashable".flags.sse41 = false;
8074 "hashable".flags.examples = false;
81− "attoparsec".revision = (((hackage."attoparsec")."0.13.2.2").revisions).default;
75+ "attoparsec".revision = (((hackage."attoparsec")."0.13.2.3").revisions).default;
8276 "attoparsec".flags.developer = false;
8377 "colour".revision = (((hackage."colour")."2.3.5").revisions).default;
84− "filepath".revision = (((hackage."filepath")."1.4.2").revisions).default;
78+ "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
8579 "process".revision = (((hackage."process")."1.6.5.0").revisions).default;
8680 "pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
87− "aeson".revision = (((hackage."aeson")."1.4.4.0").revisions).default;
81+ "aeson".revision = (((hackage."aeson")."1.4.5.0").revisions).default;
8882 "aeson".flags.cffi = false;
8983 "aeson".flags.fast = false;
9084 "aeson".flags.bytestring-builder = false;
9185 "aeson".flags.developer = false;
92− "ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.4.4").revisions).default;
86+ "ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.6.5").revisions).default;
9387 "base-orphans".revision = (((hackage."base-orphans")."0.8.1").revisions).default;
9488 "th-abstraction".revision = (((hackage."th-abstraction")."0.3.1.0").revisions).default;
95− "array".revision = (((hackage."array")."0.5.2.0").revisions).default;
89+ "array".revision = (((hackage."array")."0.5.3.0").revisions).default;
9690 "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
9791 };
9892 compiler = {
99− version = "8.4.4";
100− nix-name = "ghc844";
93+ version = "8.6.5";
94+ nix-name = "ghc865";
10195 packages = {
102− "binary" = "0.8.5.1";
103− "ghc-prim" = "0.5.2.0";
104− "stm" = "2.4.5.1";
96+ "binary" = "0.8.6.0";
97+ "ghc-prim" = "0.5.3";
10598 "unix" = "2.7.2.2";
10699 "rts" = "1.0";
107− "deepseq" = "1.4.3.0";
108− "directory" = "1.3.1.5";
109− "template-haskell" = "2.13.0.0";
110− "containers" = "0.5.11.0";
100+ "deepseq" = "1.4.4.0";
101+ "directory" = "1.3.3.0";
102+ "template-haskell" = "2.14.0.0";
103+ "containers" = "0.6.0.1";
111104 "bytestring" = "0.10.8.2";
112105 "text" = "1.2.3.1";
113− "base" = "4.11.1.0";
106+ "base" = "4.12.0.0";
114107 "time" = "1.8.0.2";
115− "filepath" = "1.4.2";
108+ "transformers" = "0.5.6.2";
109+ "filepath" = "1.4.2.1";
110+ "process" = "1.6.5.0";
116111 "pretty" = "1.1.3.6";
117− "ghc-boot-th" = "8.4.4";
118− "array" = "0.5.2.0";
112+ "ghc-boot-th" = "8.6.5";
113+ "array" = "0.5.3.0";
119114 "integer-gmp" = "1.0.2.0";
120115 };
121116 };
122117 };
123118 extras = hackage:
124119 { packages = { cabal-sublib = ./.plan.nix/cabal-sublib.nix; }; };
120+ modules = [
121+ ({ lib, ... }:
122+ { packages = { "cabal-sublib" = { flags = {}; }; }; })
123+ ];
125124 }
test/regen.nix+5−5
@@ -1,21 +1,21 @@
11# A script for regenerating nix for tests
2−{ pkgs ? import nixpkgs {}
2+{ pkgs ? import nixpkgs ((import ../.) // nixpkgsArgs)
33, nixpkgs ? ../nixpkgs
4−, haskell ? pkgs.callPackage ../. { }
4+, nixpkgsArgs ? { }
55}:
66
77with pkgs;
88
99writeScript "regen-tests.sh" ''
10− #!${pkgs.stdenv.shell}
10+ #!${pkgs.runtimeShell}
1111
1212 set -euo pipefail
1313
14− export PATH="${lib.makeBinPath [ coreutils glibc haskell.nix-tools cabal-install pkgs.haskell.compiler.ghc844 ]}"
14+ export PATH="${lib.makeBinPath [ coreutils glibc haskell-nix.nix-tools cabal-install haskell.compiler.ghc865 ]}"
1515
1616 cabal_configure() {
1717 cabal new-configure \
18− --with-compiler ghc-8.4.4 \
18+ --with-compiler ghc-8.6.5 \
1919 --constraint 'transformers == 0.5.6.2' \
2020 --constraint 'process == 1.6.5.0'
2121 }
test/shell-for/.plan.nix/pkga.nix+6
@@ -63,5 +63,11 @@ in { system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
6363 ];
6464 buildable = true;
6565 };
66+ exes = {
67+ "pkga-exe" = {
68+ depends = [ (hsPkgs."base" or (buildDepError "base")) ];
69+ buildable = true;
70+ };
71+ };
6672 };
6773 } // rec { src = (pkgs.lib).mkDefault ../pkga; }
test/shell-for/.plan.nix/pkgb.nix+13
@@ -77,5 +77,18 @@ in { system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
7777 buildable = true;
7878 };
7979 };
80+ tests = {
81+ "tests" = {
82+ depends = [
83+ (hsPkgs."base" or (buildDepError "base"))
84+ (hsPkgs."pkgb" or (buildDepError "pkgb"))
85+ (hsPkgs."process" or (buildDepError "process"))
86+ ];
87+ build-tools = [
88+ (hsPkgs.buildPackages.pkga or (pkgs.buildPackages.pkga or (buildToolDepError "pkga")))
89+ ];
90+ buildable = true;
91+ };
92+ };
8093 };
8194 } // rec { src = (pkgs.lib).mkDefault ../pkgb; }
test/shell-for/pkga/MainA.hsnew file+4
@@ -0,0 +1,4 @@
1+module Main where
2+
3+main :: IO ()
4+main = putStrLn "This is MainA"
test/shell-for/pkga/pkga.cabal+6
@@ -18,3 +18,9 @@ library
1818 , lens
1919 , text
2020 default-language: Haskell2010
21+
22+executable pkga-exe
23+ main-is: MainA.hs
24+ build-depends: base
25+ hs-source-dirs: .
26+ default-language: Haskell2010
test/shell-for/pkgb/app/tests.hsnew file+6
@@ -0,0 +1,6 @@
1+module Main where
2+
3+import System.Process
4+
5+main :: IO ()
6+main = callProcess "pkga-exe" []
test/shell-for/pkgb/pkgb.cabal+9−2
@@ -26,11 +26,18 @@ library
2626
2727executable pkgb
2828 main-is: Main.hs
29− -- other-modules:
30− -- other-extensions:
3129 build-depends: base
3230 , pkgb
3331 , optparse-applicative
3432 , text
3533 hs-source-dirs: app
3634 default-language: Haskell2010
35+
36+test-suite tests
37+ type: exitcode-stdio-1.0
38+ main-is: tests.hs
39+ hs-source-dirs: app
40+ build-depends: base
41+ , pkgb
42+ , process
43+ build-tools: pkga
test/shell-for/pkgs.nix+9−5
@@ -39,7 +39,7 @@
3939 "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
4040 "random".revision = (((hackage."random")."1.1").revisions).default;
4141 "optparse-applicative".revision = (((hackage."optparse-applicative")."0.15.1.0").revisions).default;
42− "network".revision = (((hackage."network")."3.1.0.1").revisions).default;
42+ "network".revision = (((hackage."network")."3.1.1.0").revisions).default;
4343 "async".revision = (((hackage."async")."2.2.2").revisions).default;
4444 "async".flags.bench = false;
4545 "conduit".revision = (((hackage."conduit")."1.3.1.1").revisions).default;
@@ -68,7 +68,7 @@
6868 "transformers-compat".flags.four = false;
6969 "transformers-compat".flags.three = false;
7070 "template-haskell".revision = (((hackage."template-haskell")."2.14.0.0").revisions).default;
71− "mono-traversable".revision = (((hackage."mono-traversable")."1.0.12.0").revisions).default;
71+ "mono-traversable".revision = (((hackage."mono-traversable")."1.0.13.0").revisions).default;
7272 "vector".revision = (((hackage."vector")."0.12.0.3").revisions).default;
7373 "vector".flags.unsafechecks = false;
7474 "vector".flags.internalchecks = false;
@@ -77,7 +77,7 @@
7777 "call-stack".revision = (((hackage."call-stack")."0.2.0").revisions).default;
7878 "primitive".revision = (((hackage."primitive")."0.7.0.0").revisions).default;
7979 "profunctors".revision = (((hackage."profunctors")."5.5").revisions).default;
80− "ansi-terminal".revision = (((hackage."ansi-terminal")."0.10").revisions).default;
80+ "ansi-terminal".revision = (((hackage."ansi-terminal")."0.10.1").revisions).default;
8181 "ansi-terminal".flags.example = false;
8282 "tagged".revision = (((hackage."tagged")."0.8.6").revisions).default;
8383 "tagged".flags.transformers = true;
@@ -147,7 +147,7 @@
147147 "kan-extensions".revision = (((hackage."kan-extensions")."5.2").revisions).default;
148148 "resourcet".revision = (((hackage."resourcet")."1.2.2").revisions).default;
149149 "pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
150− "cabal-doctest".revision = (((hackage."cabal-doctest")."1.0.7").revisions).default;
150+ "cabal-doctest".revision = (((hackage."cabal-doctest")."1.0.8").revisions).default;
151151 "ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.6.5").revisions).default;
152152 "base-orphans".revision = (((hackage."base-orphans")."0.8.1").revisions).default;
153153 "th-abstraction".revision = (((hackage."th-abstraction")."0.3.1.0").revisions).default;
@@ -189,4 +189,8 @@
189189 {
190190 packages = { pkga = ./.plan.nix/pkga.nix; pkgb = ./.plan.nix/pkgb.nix; };
191191 };
192− }
192+ modules = [
193+ ({ lib, ... }:
194+ { packages = { "pkga" = { flags = {}; }; "pkgb" = { flags = {}; }; }; })
195+ ];
196+ }
test/stack-simple/pkgs.nix+3−1
@@ -4,7 +4,9 @@
44 packages = {
55 "transformers" = (((hackage.transformers)."0.5.6.2").revisions).default;
66 "process" = (((hackage.process)."1.6.5.0").revisions).default;
7− } // { stack-simple = ./stack-simple.nix; };
7+ stack-simple = ./stack-simple.nix;
8+ };
89 };
910 resolver = "lts-13.26";
11+ modules = [ ({ lib, ... }: { packages = {}; }) { packages = {}; } ];
1012 }
test/stack-simple/stack-simple.nix+55−4
@@ -1,4 +1,43 @@
1−{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
1+let
2+ buildDepError = pkg:
3+ builtins.throw ''
4+ The Haskell package set does not contain the package: ${pkg} (build dependency).
5+
6+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
7+ '';
8+ sysDepError = pkg:
9+ builtins.throw ''
10+ The Nixpkgs package set does not contain the package: ${pkg} (system dependency).
11+
12+ You may need to augment the system package mapping in haskell.nix so that it can be found.
13+ '';
14+ pkgConfDepError = pkg:
15+ builtins.throw ''
16+ The pkg-conf packages does not contain the package: ${pkg} (pkg-conf dependency).
17+
18+ You may need to augment the pkg-conf package mapping in haskell.nix so that it can be found.
19+ '';
20+ exeDepError = pkg:
21+ builtins.throw ''
22+ The local executable components do not include the component: ${pkg} (executable dependency).
23+ '';
24+ legacyExeDepError = pkg:
25+ builtins.throw ''
26+ The Haskell package set does not contain the package: ${pkg} (executable dependency).
27+
28+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
29+ '';
30+ buildToolDepError = pkg:
31+ builtins.throw ''
32+ Neither the Haskell package set or the Nixpkgs package set contain the package: ${pkg} (build tool dependency).
33+
34+ If this is a system dependency:
35+ You may need to augment the system package mapping in haskell.nix so that it can be found.
36+
37+ If this is a Haskell dependency:
38+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
39+ '';
40+in { system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
241 ({
342 flags = {};
443 package = {
@@ -13,17 +52,29 @@
1352 synopsis = "";
1453 description = "Please see the README on GitHub at <https://github.com/githubuser/stack-simple#readme>";
1554 buildType = "Simple";
55+ isLocal = true;
1656 };
1757 components = {
18− "library" = { depends = [ (hsPkgs.base) ]; };
58+ "library" = {
59+ depends = [ (hsPkgs."base" or (buildDepError "base")) ];
60+ buildable = true;
61+ };
1962 exes = {
2063 "stack-simple-exe" = {
21− depends = [ (hsPkgs.base) (hsPkgs.stack-simple) ];
64+ depends = [
65+ (hsPkgs."base" or (buildDepError "base"))
66+ (hsPkgs."stack-simple" or (buildDepError "stack-simple"))
67+ ];
68+ buildable = true;
2269 };
2370 };
2471 tests = {
2572 "stack-simple-test" = {
26− depends = [ (hsPkgs.base) (hsPkgs.stack-simple) ];
73+ depends = [
74+ (hsPkgs."base" or (buildDepError "base"))
75+ (hsPkgs."stack-simple" or (buildDepError "stack-simple"))
76+ ];
77+ buildable = true;
2778 };
2879 };
2980 };
test/tests.sh+13−1
@@ -1,5 +1,5 @@
11#! /usr/bin/env nix-shell
2−#! nix-shell -i bash -p bash jq nix
2+#! nix-shell -i bash -p bash jq nix gnused
33
44set -euo pipefail
55
@@ -88,6 +88,18 @@ nix-shell $NIX_BUILD_ARGS \
8888 --run 'hoogle ConduitT | grep Data.Conduit'
8989echo >& 2
9090
91+printf "*** Checking shellFor does not depend on given packages...\n" >& 2
92+drva=$(nix-instantiate ./default.nix -A shell-for.env)
93+echo "-- hello" >> shell-for/pkga/PkgA.hs
94+drvb=$(nix-instantiate ./default.nix -A shell-for.env)
95+sed -i -e '/-- hello/d' shell-for/pkga/PkgA.hs
96+if [ "$drva" != "$drvb" ]; then
97+ printf "FAIL\nShell derivations\n$drva\n$drvb\n are not identical.\n" >& 2
98+ exit 1
99+else
100+ printf "PASS\n" >& 2
101+fi
102+
91103printf "*** Checking the maintainer scripts...\n" >& 2
92104nix build $NIX_BUILD_ARGS --no-link --keep-going -f ../build.nix maintainer-scripts
93105echo >& 2
test/with-packages/.plan.nix/test-with-packages.nix+48−2
@@ -1,4 +1,43 @@
1−{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
1+let
2+ buildDepError = pkg:
3+ builtins.throw ''
4+ The Haskell package set does not contain the package: ${pkg} (build dependency).
5+
6+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
7+ '';
8+ sysDepError = pkg:
9+ builtins.throw ''
10+ The Nixpkgs package set does not contain the package: ${pkg} (system dependency).
11+
12+ You may need to augment the system package mapping in haskell.nix so that it can be found.
13+ '';
14+ pkgConfDepError = pkg:
15+ builtins.throw ''
16+ The pkg-conf packages does not contain the package: ${pkg} (pkg-conf dependency).
17+
18+ You may need to augment the pkg-conf package mapping in haskell.nix so that it can be found.
19+ '';
20+ exeDepError = pkg:
21+ builtins.throw ''
22+ The local executable components do not include the component: ${pkg} (executable dependency).
23+ '';
24+ legacyExeDepError = pkg:
25+ builtins.throw ''
26+ The Haskell package set does not contain the package: ${pkg} (executable dependency).
27+
28+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
29+ '';
30+ buildToolDepError = pkg:
31+ builtins.throw ''
32+ Neither the Haskell package set or the Nixpkgs package set contain the package: ${pkg} (build tool dependency).
33+
34+ If this is a system dependency:
35+ You may need to augment the system package mapping in haskell.nix so that it can be found.
36+
37+ If this is a Haskell dependency:
38+ If you are using Stackage, make sure that you are using a snapshot that contains the package. Otherwise you may need to update the Hackage snapshot you are using, usually by updating haskell.nix.
39+ '';
40+in { system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
241 {
342 flags = {};
443 package = {
@@ -13,8 +52,15 @@
1352 synopsis = "";
1453 description = "";
1554 buildType = "Simple";
55+ isLocal = true;
1656 };
1757 components = {
18− "library" = { depends = [ (hsPkgs.base) (hsPkgs.lens) ]; };
58+ "library" = {
59+ depends = [
60+ (hsPkgs."base" or (buildDepError "base"))
61+ (hsPkgs."lens" or (buildDepError "lens"))
62+ ];
63+ buildable = true;
64+ };
1965 };
2066 } // rec { src = (pkgs.lib).mkDefault ../.; }
test/with-packages/pkgs.nix+45−40
@@ -4,7 +4,7 @@
44 packages = {
55 "void".revision = (((hackage."void")."0.7.3").revisions).default;
66 "void".flags.safe = false;
7− "semigroupoids".revision = (((hackage."semigroupoids")."5.3.2").revisions).default;
7+ "semigroupoids".revision = (((hackage."semigroupoids")."5.3.3").revisions).default;
88 "semigroupoids".flags.comonad = true;
99 "semigroupoids".flags.doctests = true;
1010 "semigroupoids".flags.unordered-containers = true;
@@ -12,25 +12,25 @@
1212 "semigroupoids".flags.tagged = true;
1313 "semigroupoids".flags.containers = true;
1414 "semigroupoids".flags.contravariant = true;
15− "free".revision = (((hackage."free")."5.1.1").revisions).default;
16− "exceptions".revision = (((hackage."exceptions")."0.10.2").revisions).default;
17− "binary".revision = (((hackage."binary")."0.8.5.1").revisions).default;
18− "ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
19− "bifunctors".revision = (((hackage."bifunctors")."5.5.4").revisions).default;
15+ "free".revision = (((hackage."free")."5.1.2").revisions).default;
16+ "exceptions".revision = (((hackage."exceptions")."0.10.3").revisions).default;
17+ "binary".revision = (((hackage."binary")."0.8.6.0").revisions).default;
18+ "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default;
19+ "bifunctors".revision = (((hackage."bifunctors")."5.5.5").revisions).default;
2020 "bifunctors".flags.semigroups = true;
2121 "bifunctors".flags.tagged = true;
22− "stm".revision = (((hackage."stm")."2.4.5.1").revisions).default;
22+ "stm".revision = (((hackage."stm")."2.5.0.0").revisions).default;
2323 "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
2424 "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default;
2525 "rts".revision = (((hackage."rts")."1.0").revisions).default;
2626 "adjunctions".revision = (((hackage."adjunctions")."4.4").revisions).default;
2727 "invariant".revision = (((hackage."invariant")."0.5.3").revisions).default;
28− "distributive".revision = (((hackage."distributive")."0.6").revisions).default;
28+ "distributive".revision = (((hackage."distributive")."0.6.1").revisions).default;
2929 "distributive".flags.semigroups = true;
3030 "distributive".flags.tagged = true;
3131 "parallel".revision = (((hackage."parallel")."3.2.2.0").revisions).default;
32− "deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
33− "semigroups".revision = (((hackage."semigroups")."0.19").revisions).default;
32+ "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default;
33+ "semigroups".revision = (((hackage."semigroups")."0.19.1").revisions).default;
3434 "semigroups".flags.bytestring = true;
3535 "semigroups".flags.unordered-containers = true;
3636 "semigroups".flags.text = true;
@@ -43,7 +43,7 @@
4343 "semigroups".flags.bytestring-builder = false;
4444 "semigroups".flags.template-haskell = true;
4545 "parsec".revision = (((hackage."parsec")."3.1.13.0").revisions).default;
46− "directory".revision = (((hackage."directory")."1.3.1.5").revisions).default;
46+ "directory".revision = (((hackage."directory")."1.3.3.0").revisions).default;
4747 "transformers-compat".revision = (((hackage."transformers-compat")."0.6.5").revisions).default;
4848 "transformers-compat".flags.five = false;
4949 "transformers-compat".flags.generic-deriving = true;
@@ -52,19 +52,19 @@
5252 "transformers-compat".flags.mtl = true;
5353 "transformers-compat".flags.four = false;
5454 "transformers-compat".flags.three = false;
55− "template-haskell".revision = (((hackage."template-haskell")."2.13.0.0").revisions).default;
55+ "template-haskell".revision = (((hackage."template-haskell")."2.14.0.0").revisions).default;
5656 "vector".revision = (((hackage."vector")."0.12.0.3").revisions).default;
5757 "vector".flags.unsafechecks = false;
5858 "vector".flags.internalchecks = false;
5959 "vector".flags.wall = false;
6060 "vector".flags.boundschecks = true;
61− "call-stack".revision = (((hackage."call-stack")."0.1.0").revisions).default;
61+ "call-stack".revision = (((hackage."call-stack")."0.2.0").revisions).default;
6262 "primitive".revision = (((hackage."primitive")."0.7.0.0").revisions).default;
63− "profunctors".revision = (((hackage."profunctors")."5.4").revisions).default;
63+ "profunctors".revision = (((hackage."profunctors")."5.5").revisions).default;
6464 "tagged".revision = (((hackage."tagged")."0.8.6").revisions).default;
6565 "tagged".flags.transformers = true;
6666 "tagged".flags.deepseq = true;
67− "lens".revision = (((hackage."lens")."4.17.1").revisions).default;
67+ "lens".revision = (((hackage."lens")."4.18.1").revisions).default;
6868 "lens".flags.j = false;
6969 "lens".flags.test-properties = true;
7070 "lens".flags.old-inline-pragmas = false;
@@ -76,8 +76,8 @@
7676 "lens".flags.dump-splices = false;
7777 "lens".flags.test-hunit = true;
7878 "lens".flags.safe = false;
79− "containers".revision = (((hackage."containers")."0.5.11.0").revisions).default;
80− "reflection".revision = (((hackage."reflection")."2.1.4").revisions).default;
79+ "containers".revision = (((hackage."containers")."0.6.0.1").revisions).default;
80+ "reflection".revision = (((hackage."reflection")."2.1.5").revisions).default;
8181 "reflection".flags.slow = false;
8282 "reflection".flags.template-haskell = true;
8383 "bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
@@ -86,11 +86,12 @@
8686 "contravariant".flags.semigroups = true;
8787 "contravariant".flags.tagged = true;
8888 "contravariant".flags.statevar = true;
89+ "type-equality".revision = (((hackage."type-equality")."1").revisions).default;
8990 "text".revision = (((hackage."text")."1.2.3.1").revisions).default;
90− "Cabal".revision = (((hackage."Cabal")."2.2.0.1").revisions).default;
91+ "Cabal".revision = (((hackage."Cabal")."2.4.0.1").revisions).default;
9192 "unordered-containers".revision = (((hackage."unordered-containers")."0.2.10.0").revisions).default;
9293 "unordered-containers".flags.debug = false;
93− "base".revision = (((hackage."base")."4.11.1.0").revisions).default;
94+ "base".revision = (((hackage."base")."4.12.0.0").revisions).default;
9495 "comonad".revision = (((hackage."comonad")."5.0.5").revisions).default;
9596 "comonad".flags.distributive = true;
9697 "comonad".flags.test-doctests = true;
@@ -104,43 +105,43 @@
104105 "hashable".flags.examples = false;
105106 "transformers-base".revision = (((hackage."transformers-base")."0.4.5.2").revisions).default;
106107 "transformers-base".flags.orphaninstances = true;
107− "filepath".revision = (((hackage."filepath")."1.4.2").revisions).default;
108− "process".revision = (((hackage."process")."1.6.3.0").revisions).default;
108+ "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default;
109+ "process".revision = (((hackage."process")."1.6.5.0").revisions).default;
109110 "kan-extensions".revision = (((hackage."kan-extensions")."5.2").revisions).default;
110111 "pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
111− "cabal-doctest".revision = (((hackage."cabal-doctest")."1.0.6").revisions).default;
112− "ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.4.4").revisions).default;
112+ "cabal-doctest".revision = (((hackage."cabal-doctest")."1.0.8").revisions).default;
113+ "ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.6.5").revisions).default;
113114 "base-orphans".revision = (((hackage."base-orphans")."0.8.1").revisions).default;
114115 "th-abstraction".revision = (((hackage."th-abstraction")."0.3.1.0").revisions).default;
115− "array".revision = (((hackage."array")."0.5.2.0").revisions).default;
116+ "array".revision = (((hackage."array")."0.5.3.0").revisions).default;
116117 "integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
117118 };
118119 compiler = {
119− version = "8.4.4";
120− nix-name = "ghc844";
120+ version = "8.6.5";
121+ nix-name = "ghc865";
121122 packages = {
122− "binary" = "0.8.5.1";
123− "ghc-prim" = "0.5.2.0";
124− "stm" = "2.4.5.1";
123+ "binary" = "0.8.6.0";
124+ "ghc-prim" = "0.5.3";
125+ "stm" = "2.5.0.0";
125126 "unix" = "2.7.2.2";
126127 "mtl" = "2.2.2";
127128 "rts" = "1.0";
128− "deepseq" = "1.4.3.0";
129+ "deepseq" = "1.4.4.0";
129130 "parsec" = "3.1.13.0";
130− "directory" = "1.3.1.5";
131− "template-haskell" = "2.13.0.0";
132− "containers" = "0.5.11.0";
131+ "directory" = "1.3.3.0";
132+ "template-haskell" = "2.14.0.0";
133+ "containers" = "0.6.0.1";
133134 "bytestring" = "0.10.8.2";
134135 "text" = "1.2.3.1";
135− "Cabal" = "2.2.0.1";
136− "base" = "4.11.1.0";
136+ "Cabal" = "2.4.0.1";
137+ "base" = "4.12.0.0";
137138 "time" = "1.8.0.2";
138− "transformers" = "0.5.5.0";
139− "filepath" = "1.4.2";
140− "process" = "1.6.3.0";
139+ "transformers" = "0.5.6.2";
140+ "filepath" = "1.4.2.1";
141+ "process" = "1.6.5.0";
141142 "pretty" = "1.1.3.6";
142− "ghc-boot-th" = "8.4.4";
143− "array" = "0.5.2.0";
143+ "ghc-boot-th" = "8.6.5";
144+ "array" = "0.5.3.0";
144145 "integer-gmp" = "1.0.2.0";
145146 };
146147 };
@@ -149,4 +150,8 @@
149150 {
150151 packages = { test-with-packages = ./.plan.nix/test-with-packages.nix; };
151152 };
153+ modules = [
154+ ({ lib, ... }:
155+ { packages = { "test-with-packages" = { flags = {}; }; }; })
156+ ];
152157 }