commercialhaskell / stack

The Haskell Tool Stack
http://haskellstack.org
BSD 3-Clause "New" or "Revised" License
3.98k stars 843 forks source link

stack haddock --no-strip & stack build --profile --no-strip fail to create build plan #4195

Open aspiwack opened 6 years ago

aspiwack commented 6 years ago

General summary/comments

Passing --no-strip (or collectively --no-library-stripping --no-executable-stripping) to stack haddock or stack --profile fails to compute build plan (pretty much as if no resolver was passed).

It interferes with adding

build:
  library-stripping: false
  executable-stripping: false

to the stack.yaml.

Steps to reproduce

  1. $ stack new foo && cd foo
  2. $ stack haddock --no-strip (or $ stack build --profile --no-strip)

Expected

Success

Actual

Error: While constructing the build plan, the following exceptions were encountered:

In the dependencies for test-0.1.0.0:
    base must match >=4.7 && <5, but the stack configuration has no specified version  (latest matching version is 4.11.1.0)
needed since test is a build target.

Some different approaches to resolving this:

  * Consider trying 'stack solver', which uses the cabal-install solver to attempt to find some working build configuration.
    This can be convenient when dealing with many complicated constraint errors, but results may be unpredictable.

  * Recommended action: try adding the following to your extra-deps in /home/lc33092/temp/test/stack.yaml:

- base-4.11.1.0

Verbose output

Version 1.7.1, Git revision 681c800873816c022739ca7ed14755e85a579565 (5807 commits) x86_64 hpack-0.28.2
2018-07-31 11:57:44.791796: [debug] Checking for project config at: /home/lc33092/temp/test/stack.yaml
@(src/Stack/Config.hs:850:9)
2018-07-31 11:57:44.792016: [debug] Loading project config file stack.yaml
@(src/Stack/Config.hs:876:13)
2018-07-31 11:57:44.793395: [debug] Decoding build plan from: /home/lc33092/.stack/build-plan/lts-12.4.yaml
@(src/Stack/Snapshot.hs:164:5)
2018-07-31 11:57:44.793501: [debug] Trying to decode /home/lc33092/.stack/build-plan-cache/lts-12.4.cache
@(src/Stack/Snapshot.hs:156:32)
2018-07-31 11:57:44.802531: [debug] Success decoding /home/lc33092/.stack/build-plan-cache/lts-12.4.cache
@(src/Stack/Snapshot.hs:156:32)
2018-07-31 11:57:44.803127: [debug] Run process: /sbin/ldconfig -p
@(src/Stack/Setup.hs:580:22)
2018-07-31 11:57:44.804896: [debug] Process finished in 2ms: /sbin/ldconfig -p
@(src/Stack/Setup.hs:580:22)
2018-07-31 11:57:44.805980: [debug] Found shared library libtinfo.so.5 in 'ldconfig -p' output
@(src/Stack/Setup.hs:589:29)
2018-07-31 11:57:44.806585: [debug] Did not find shared library libtinfo.so.6
@(src/Stack/Setup.hs:603:38)
2018-07-31 11:57:44.806737: [debug] Did not find shared library libncursesw.so.6
@(src/Stack/Setup.hs:603:38)
2018-07-31 11:57:44.806808: [debug] Found shared library libgmp.so.10 in 'ldconfig -p' output
@(src/Stack/Setup.hs:589:29)
2018-07-31 11:57:44.806892: [debug] Did not find shared library libgmp.so.3
@(src/Stack/Setup.hs:603:38)
2018-07-31 11:57:44.806936: [debug] Potential GHC builds: standard
@(src/Stack/Setup.hs:632:9)
2018-07-31 11:57:44.806996: [debug] Found already installed GHC builds: standard
@(src/Stack/Setup.hs:458:13)
2018-07-31 11:57:44.807752: [debug] Getting global package database location
@(src/Stack/GhcPkg.hs:47:5)
2018-07-31 11:57:44.807885: [debug] Run process: /home/lc33092/.stack/programs/x86_64-linux/ghc-8.4.3/bin/ghc-pkg --no-user-package-db list --global
@(src/Stack/GhcPkg.hs:76:10)
2018-07-31 11:57:44.808336: [debug] Getting Cabal package version
@(src/Stack/GhcPkg.hs:180:5)
2018-07-31 11:57:44.818723: [debug] Asking GHC for its version
@(src/Stack/Setup/Installed.hs:98:13)
2018-07-31 11:57:44.818906: [debug] Run process: /home/lc33092/.stack/programs/x86_64-linux/ghc-8.4.3/bin/ghc --numeric-version
@(src/Stack/Setup/Installed.hs:99:19)
2018-07-31 11:57:44.829540: [debug] Run process: /home/lc33092/.stack/programs/x86_64-linux/ghc-8.4.3/bin/ghc-pkg --no-user-package-db field --simple-output Cabal version
@(src/Stack/GhcPkg.hs:76:10)
2018-07-31 11:57:44.841525: [debug] Process finished in 34ms: /home/lc33092/.stack/programs/x86_64-linux/ghc-8.4.3/bin/ghc-pkg --no-user-package-db list --global
@(src/Stack/GhcPkg.hs:76:10)
2018-07-31 11:57:44.882717: [debug] Process finished in 42ms: /home/lc33092/.stack/programs/x86_64-linux/ghc-8.4.3/bin/ghc-pkg --no-user-package-db field --simple-output Cabal version
@(src/Stack/GhcPkg.hs:76:10)
2018-07-31 11:57:44.937987: [debug] Process finished in 119ms: /home/lc33092/.stack/programs/x86_64-linux/ghc-8.4.3/bin/ghc --numeric-version
@(src/Stack/Setup/Installed.hs:99:19)
2018-07-31 11:57:44.938149: [debug] GHC version is: ghc-8.4.3
@(src/Stack/Setup/Installed.hs:102:13)
2018-07-31 11:57:44.938235: [debug] Resolving package entries
@(src/Stack/Setup.hs:256:5)
2018-07-31 11:57:44.938341: [debug] Trying to decode /home/lc33092/.stack/loaded-snapshot-cache/x86_64-linux/ghc-8.4.3/lts-12.4.cache
@(src/Stack/Snapshot.hs:384:9)
2018-07-31 11:57:45.034496: [debug] Success decoding /home/lc33092/.stack/loaded-snapshot-cache/x86_64-linux/ghc-8.4.3/lts-12.4.cache
@(src/Stack/Snapshot.hs:384:9)
2018-07-31 11:57:45.052479: [debug] Starting to execute command inside EnvConfig
@(src/Stack/Runners.hs:171:18)
2018-07-31 11:57:45.052640: [debug] Parsing the targets
@(src/Stack/Build/Target.hs:460:3)
2018-07-31 11:57:45.052769: [debug] Running hpack on /home/lc33092/temp/test/package.yaml
@(src/Stack/Package.hs:1390:9)
2018-07-31 11:57:45.061053: [debug] hpack output unchanged in /home/lc33092/temp/test/test.cabal
@(src/Stack/Package.hs:1407:46)
2018-07-31 11:57:45.103963: [debug] Start: getPackageFiles /home/lc33092/temp/test/test.cabal
@(src/Stack/Package.hs:332:21)
2018-07-31 11:57:45.107802: [debug] Finished in 4ms: getPackageFiles /home/lc33092/temp/test/test.cabal
@(src/Stack/Package.hs:332:21)
2018-07-31 11:57:45.109404: [debug] Finding out which packages are already installed
@(src/Stack/Build/Installed.hs:57:5)
2018-07-31 11:57:45.109603: [debug] Trying to decode /home/lc33092/temp/test/.stack-work/installed-cache.bin
@(src/Stack/PackageDump.hs:105:12)
2018-07-31 11:57:45.109756: [debug] Success decoding /home/lc33092/temp/test/.stack-work/installed-cache.bin
@(src/Stack/PackageDump.hs:105:12)
2018-07-31 11:57:45.109884: [debug] Run process: /home/lc33092/.stack/programs/x86_64-linux/ghc-8.4.3/bin/ghc-pkg --global --no-user-package-db dump --expand-pkgroot
@(src/Stack/Prelude.hs:117:3)
2018-07-31 11:57:45.595270: [debug] Process finished in 485ms: /home/lc33092/.stack/programs/x86_64-linux/ghc-8.4.3/bin/ghc-pkg --global --no-user-package-db dump --expand-pkgroot
@(src/Stack/Prelude.hs:117:3)
2018-07-31 11:57:45.595569: [debug] Ignoring package parsec due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.595732: [debug] Ignoring package integer-gmp due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.655702: [debug] Ignoring package Cabal due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.656070: [debug] Ignoring package bytestring due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.656388: [debug] Ignoring package containers due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.656508: [debug] Ignoring package pretty due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.658270: [debug] Ignoring package ghc due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.662892: [debug] Ignoring package array due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.663091: [debug] Ignoring package ghc-boot due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.663468: [debug] Ignoring package text due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.663564: [debug] Ignoring package ghc-compact due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.663666: [debug] Ignoring package filepath due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.664001: [debug] Ignoring package transformers due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.664291: [debug] Ignoring package time due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.664431: [debug] Ignoring package directory due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.664579: [debug] Ignoring package stm due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.664743: [debug] Ignoring package xhtml due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.664888: [debug] Ignoring package ghci due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.664972: [debug] Ignoring package hpc due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.665066: [debug] Ignoring package binary due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.665275: [debug] Ignoring package mtl due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.665429: [debug] Ignoring package ghc-prim due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.665510: [debug] Ignoring package ghc-boot-th due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.665818: [debug] Ignoring package unix due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.665924: [debug] Ignoring package process due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.666037: [debug] Ignoring package template-haskell due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.666286: [debug] Ignoring package deepseq due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.667948: [debug] Ignoring package base due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.670739: [debug] Ignoring package terminfo due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.671013: [debug] Ignoring package haskeline due to it needing debugging symbols.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.671127: [debug] Run process: /home/lc33092/.stack/programs/x86_64-linux/ghc-8.4.3/bin/ghc-pkg --user --no-user-package-db --package-db /home/lc33092/.stack/snapshots/x86_64-linux/lts-12.4/8.4.3/pkgdb dump --expand-pkgroot
@(src/Stack/Prelude.hs:117:3)
2018-07-31 11:57:45.727495: [debug] Process finished in 56ms: /home/lc33092/.stack/programs/x86_64-linux/ghc-8.4.3/bin/ghc-pkg --user --no-user-package-db --package-db /home/lc33092/.stack/snapshots/x86_64-linux/lts-12.4/8.4.3/pkgdb dump --expand-pkgroot
@(src/Stack/Prelude.hs:117:3)
2018-07-31 11:57:45.727698: [debug] Run process: /home/lc33092/.stack/programs/x86_64-linux/ghc-8.4.3/bin/ghc-pkg --user --no-user-package-db --package-db /home/lc33092/temp/test/.stack-work/install/x86_64-linux/lts-12.4/8.4.3/pkgdb dump --expand-pkgroot
@(src/Stack/Prelude.hs:117:3)
2018-07-31 11:57:45.814071: [debug] Process finished in 86ms: /home/lc33092/.stack/programs/x86_64-linux/ghc-8.4.3/bin/ghc-pkg --user --no-user-package-db --package-db /home/lc33092/temp/test/.stack-work/install/x86_64-linux/lts-12.4/8.4.3/pkgdb dump --expand-pkgroot
@(src/Stack/Prelude.hs:117:3)
2018-07-31 11:57:45.814237: [debug] Ignoring package test, from (InstalledTo Local,"/home/lc33092/temp/test/.stack-work/install/x86_64-linux/lts-12.4/8.4.3/pkgdb/"), due to it needing haddocks.
@(src/Stack/Build/Installed.hs:185:5)
2018-07-31 11:57:45.814323: [debug] Encoding /home/lc33092/temp/test/.stack-work/installed-cache.bin
@(src/Stack/PackageDump.hs:111:34)
2018-07-31 11:57:45.814587: [debug] Finished writing /home/lc33092/temp/test/.stack-work/installed-cache.bin
@(src/Stack/PackageDump.hs:111:34)
2018-07-31 11:57:45.815030: [debug] Constructing the build plan
@(src/Stack/Build/ConstructPlan.hs:186:5)
2018-07-31 11:57:45.815378: [debug] Trying to decode /home/lc33092/.stack/indices/Hackage/01-index.cache
@(src/Stack/PackageIndex.hs:407:23)
2018-07-31 11:57:46.162437: [debug] Success decoding /home/lc33092/.stack/indices/Hackage/01-index.cache
@(src/Stack/PackageIndex.hs:407:23)
2018-07-31 11:57:46.162658: [warn] 
Error: While constructing the build plan, the following exceptions were encountered:

In the dependencies for test-0.1.0.0:
    base must match >=4.7 && <5, but the stack configuration has no specified version  (latest matching version is 4.11.1.0)
needed since test is a build target.

Some different approaches to resolving this:

  * Consider trying 'stack solver', which uses the cabal-install solver to attempt to find some working build configuration.
    This can be convenient when dealing with many complicated constraint errors, but results may be unpredictable.

  * Recommended action: try adding the following to your extra-deps in /home/lc33092/temp/test/stack.yaml:

- base-4.11.1.0

Stack version

$ stack --version
Version 1.7.1, Git revision 681c800873816c022739ca7ed14755e85a579565 (5807 commits) x86_64 hpack-0.28.2

Method of installation

mihaimaruseac commented 6 years ago

Reproduced it on my end with the latest from master.

i-am-the-slime commented 5 years ago

Is there a workaround to this? Something like feeding all .hs files manually to haddock?

igrep commented 5 years ago

I experienced a very similar issue with just stack haddock (without --no-strip option) since upgrading GHC into ver. 8.6.3 or ver. 8.6.4 (I tried with LTS-13.12 and LTS-13.11). Should I file a separate issue?

My stack:

> stack --version
Version 1.9.1, Git revision f9d0042c141660e1d38f797e1d426be4a99b2a3c (6168 commits) x86_64 hpack-0.31.0
mihaimaruseac commented 5 years ago

@igrep I think you should, or at least add the error message

aspiwack commented 5 years ago

For the records: I worked around this by adding --no-haddock-deps to the invocation. The trade off is that the produced doc doesn't have links to, say, types in the dependencies.