Search code examples
haskellhaddockhaskell-stack

Why am I getting build plan errors running "stack haddock" when "stack test" works?


I'm creating a new Haskell project using Stack 0.1.3.1 on Windows 8. My stack.yaml file looks like this:

flags: {}
packages:
- 'lazy-engine'
extra-deps: []
resolver: lts-3.4

When I run stack build or stack test, everything works beautifully. I can run haddock manually from the command line and that works, too. But when I run stack haddock I get output like this:

Setting codepage to UTF-8 (65001) to ensure correct output from GHC
NOTE: the haddock command is functionally equivalent to 'build --haddock'
While constructing the BuildPlan the following exceptions were encountered:

--  Failure when adding dependencies:
      base: needed (>=4.5 && <4.9), latest is 4.8.1.0, but not present in build plan
    needed for package: array-0.5.1.0

--  While attempting to add dependency,
    Could not find package base in known packages

--  Failure when adding dependencies:
      array: needed (-any), latest is 0.5.1.0, but couldn't resolve its dependencies
      base: needed (>=4.2 && <5), latest is 4.8.1.0, but not present in build plan
      deepseq: needed (>=1.2 && <1.5), latest is 1.4.1.2, but couldn't resolve its dependencies
      ghc-prim: needed (-any), latest is 0.4.0.0, but not present in build plan
    needed for package: containers-0.5.6.2

--  Failure when adding dependencies:
      array: needed (>=0.3 && <0.6), latest is 0.5.1.0, but couldn't resolve its dependencies
      base: needed (==4.3.* || >=4.5 && <4.9), latest is 4.8.1.0, but not present in build plan
    needed for package: deepseq-1.4.1.1

--  While attempting to add dependency,
    Could not find package ghc-prim in known packages

--  Failure when adding dependencies:
      base: needed (>=4.7 && <5), latest is 4.8.1.0, but not present in build plan
      containers: needed (==0.5.*), latest is 0.5.6.3, but couldn't resolve its dependencies
    needed for package: lazy-engine-0.1.0.0

Recommended action: try adding the following to your extra-deps in 
    C:\Users\Aaron\Documents\GitHub\lazy-engine\stack.yaml
- base-4.8.1.0
- ghc-prim-0.4.0.0

You may also want to try the 'stack solver' command

Obviously this is nonsense—I shouldn't have to add base to my extra-deps, especially since I'm working off an LTS package set! What is going on here?

Update: As discussed in the answer below, this seems to have been a bug in stack and should be fixed in newer versions. See https://github.com/fpco/minghc/issues/85.


Solution

  • A guess: you're using a GHC install that does not include documentation, or at least not as stack expects it to be discovered. Can you try with "--install-ghc --no-system-ghc"? I may have the specific flag names wrong.

    Also, how is GHC installed on your system?