commercialhaskell / stack

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

Suggest extra-deps #318

Closed DanBurton closed 9 years ago

DanBurton commented 9 years ago

Stack used to have a section that you could copy/paste into extra-deps when you had unspecified dependencies.

Blocked on #116?

snoyberg commented 9 years ago

I implemented part of this, just not the whole thing. I'm going to augment the exception data types necessary, and then I'll pass off the display issue.

snoyberg commented 9 years ago

Implemented (including display). @DanBurton confirmed?

DanBurton commented 9 years ago

Confirmed. I'm trying out stack on the lambdabot repo. Here's what I did:

First, I created this stack.yaml file:

resolver: lts-2.9
packages:
- lambdabot
- lambdabot-core
- lambdabot-haskell-plugins
- lambdabot-irc-plugins
- lambdabot-misc-plugins
- lambdabot-novelty-plugins
- lambdabot-reference-plugins
- lambdabot-social-plugins
- lambdabot-trusted

Then I added the extra-deps as suggested (took 3 iterations):

extra-deps:
- IOSpec-0.3
- QuickCheck-safe-0.1.0.1
- SafeSemaphore-0.10.1
- arrows-0.4.4.1
- brainfuck-0.1.0.2
- dependent-map-0.1.1.3
- dependent-sum-0.2.1.0
- dependent-sum-template-0.0.0.3
- dice-0.1
- hstatsd-0.1
- misfortune-0.1.1.1
- mueval-0.9.1.1
- oeis-0.3.6
- show-0.6
- unlambda-0.1.4.1
- Stream-0.4.7.2
- knob-0.1.1
- regex-pcre-0.94.4
- lazysmallcheck-0.6

Finally, I got this error report on stack build:

While constructing the BuildPlan the following exceptions were encountered:

--  Failure when adding dependencies:    
      base: needed (>=4.8.0.0 && <5), but 4.7.0.2 found
    needed for package: IOSpec-0.3

--  Failure when adding dependencies:    
      lambdabot-haskell-plugins: needed (>=5.0.2 && <5.1), but couldn't resolve its dependencies
      lambdabot-reference-plugins: needed (>=5.0.1 && <5.1), but couldn't resolve its dependencies
    needed for package: lambdabot-5.0.2.2

--  Failure when adding dependencies:    
      IOSpec: needed (>=0.2), but couldn't resolve its dependencies
      lambdabot-reference-plugins: needed (>=5.0.1 && <5.1), but couldn't resolve its dependencies
      mueval: needed (>=0.9), but couldn't resolve its dependencies
      utf8-string: needed (>=0.3 && <1), but 1 found
    needed for package: lambdabot-haskell-plugins-5.0.2.1

--  Failure when adding dependencies:    
      utf8-string: needed (>=0.3 && <1), but 1 found
    needed for package: lambdabot-reference-plugins-5.0.2.1

--  Failure when adding dependencies:    
      utf8-string: needed (<1), but 1 found
    needed for package: mueval-0.9.1.1

This already feels like a much better situation than before.