From 10e4f53390b4a18b5d8133f4fc5ce9093201eec3 Mon Sep 17 00:00:00 2001 From: IOHK Date: Thu, 28 Nov 2019 01:15:05 +0000 Subject: [PATCH 1/3] Update Hackage and Stackage --- hackage-src.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hackage-src.json b/hackage-src.json index 1b3d6dfb40..3e5607d6e9 100644 --- a/hackage-src.json +++ b/hackage-src.json @@ -1,7 +1,7 @@ { "url": "https://github.com/input-output-hk/hackage.nix", - "rev": "fce6f00c50f53dde48626e2db0151b084a9df294", - "date": "2019-11-27T01:08:32+00:00", - "sha256": "0vf32rsk6b66wrdqlzaicbml8bwrwgkzbws9klrl57v2vmay6dw7", + "rev": "9d28f0de8a806e9ae82739fcaefdc91cdfb58f32", + "date": "2019-11-28T01:14:06+00:00", + "sha256": "16s0gj3x97wywj9j8k74zw96imwp5gpckjp50ar6vg3xxhgyhidc", "fetchSubmodules": false } From 7473062732478bc0006297c6e0e6b68808501528 Mon Sep 17 00:00:00 2001 From: Kirill Elagin Date: Thu, 28 Nov 2019 10:01:11 +0000 Subject: [PATCH 2/3] test: Fails to use snapshot.yaml --- test/default.nix | 1 + test/stack-local-resolver/.gitignore | 2 ++ test/stack-local-resolver/default.nix | 9 +++++++++ test/stack-local-resolver/package.yaml | 7 +++++++ test/stack-local-resolver/snapshot.yaml | 1 + test/stack-local-resolver/src/Lib.hs | 6 ++++++ test/stack-local-resolver/stack.yaml | 4 ++++ 7 files changed, 30 insertions(+) create mode 100644 test/stack-local-resolver/.gitignore create mode 100644 test/stack-local-resolver/default.nix create mode 100644 test/stack-local-resolver/package.yaml create mode 100644 test/stack-local-resolver/snapshot.yaml create mode 100644 test/stack-local-resolver/src/Lib.hs create mode 100644 test/stack-local-resolver/stack.yaml diff --git a/test/default.nix b/test/default.nix index cbed52242a..e35e3aae8b 100644 --- a/test/default.nix +++ b/test/default.nix @@ -16,6 +16,7 @@ in pkgs.recurseIntoAttrs { with-packages = haskell-nix.callPackage ./with-packages { inherit util; }; builder-haddock = haskell-nix.callPackage ./builder-haddock {}; stack-simple = haskell-nix.callPackage ./stack-simple {}; + stack-local-resolver = haskell-nix.callPackage ./stack-local-resolver {}; snapshots = haskell-nix.callPackage ./snapshots {}; shell-for = haskell-nix.callPackage ./shell-for {}; shell-for-setup-deps = haskell-nix.callPackage ./shell-for-setup-deps {}; diff --git a/test/stack-local-resolver/.gitignore b/test/stack-local-resolver/.gitignore new file mode 100644 index 0000000000..d14118b69c --- /dev/null +++ b/test/stack-local-resolver/.gitignore @@ -0,0 +1,2 @@ +/.stack-work/ +/*.cabal diff --git a/test/stack-local-resolver/default.nix b/test/stack-local-resolver/default.nix new file mode 100644 index 0000000000..5d55ce3b69 --- /dev/null +++ b/test/stack-local-resolver/default.nix @@ -0,0 +1,9 @@ +{ stackProject }: + +let + project = stackProject { + src = ./.; + }; +in + +project.stack-local-resolver diff --git a/test/stack-local-resolver/package.yaml b/test/stack-local-resolver/package.yaml new file mode 100644 index 0000000000..b7f2bb1fef --- /dev/null +++ b/test/stack-local-resolver/package.yaml @@ -0,0 +1,7 @@ +name: stack-local-resolver + +dependencies: +- base + +library: + source-dirs: src diff --git a/test/stack-local-resolver/snapshot.yaml b/test/stack-local-resolver/snapshot.yaml new file mode 100644 index 0000000000..3334c0e439 --- /dev/null +++ b/test/stack-local-resolver/snapshot.yaml @@ -0,0 +1 @@ +packages: [] diff --git a/test/stack-local-resolver/src/Lib.hs b/test/stack-local-resolver/src/Lib.hs new file mode 100644 index 0000000000..d36ff2714d --- /dev/null +++ b/test/stack-local-resolver/src/Lib.hs @@ -0,0 +1,6 @@ +module Lib + ( someFunc + ) where + +someFunc :: IO () +someFunc = putStrLn "someFunc" diff --git a/test/stack-local-resolver/stack.yaml b/test/stack-local-resolver/stack.yaml new file mode 100644 index 0000000000..4aec180e1e --- /dev/null +++ b/test/stack-local-resolver/stack.yaml @@ -0,0 +1,4 @@ +resolver: snapshot.yaml + +packages: +- . From efcf666d21563665910536175fd191c123c09cbc Mon Sep 17 00:00:00 2001 From: Alexander Bantyev Date: Wed, 27 Nov 2019 23:27:49 +0300 Subject: [PATCH 3/3] Allow stack.yaml to reference local files as resolvers --- lib/call-stack-to-nix.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/call-stack-to-nix.nix b/lib/call-stack-to-nix.nix index 7a607d0a6d..3873e0f9ff 100644 --- a/lib/call-stack-to-nix.nix +++ b/lib/call-stack-to-nix.nix @@ -10,9 +10,9 @@ let stackToNixArgs = builtins.concatStringsSep " " [ "--full" - "--stack-yaml=${src}/${if stackYaml == null then "stack.yaml" else stackYaml}" + "--stack-yaml=\"${if stackYaml == null then "stack.yaml" else stackYaml}\"" (if ignorePackageYaml then "--ignore-package-yaml" else "") - "-o ." + "-o \"$out\"" ]; stack = runCommand "stack-to-nix-pkgs" { nativeBuildInputs = [ nix-tools pkgs.nix-prefetch-git pkgs.cacert ]; @@ -25,7 +25,9 @@ let '' + pkgs.lib.optionalString (cache != null) '' cp ${mkCacheFile cache} $out/.stack-to-nix.cache '' + '' - (cd $out && stack-to-nix ${stackToNixArgs}) + (cd "${src}" && stack-to-nix ${stackToNixArgs}) + + cd "$out" # We need to strip out any references to $src, as those won't # be accessable in restricted mode.