haskell - Difference between new-template.cabal and stack.yaml -


i want use reactive-banana in new haskell project. never used cabal-install or stack before. created directory , initialized project files in using stack new. see 2 files in directory: new-template.cabal , stack.yaml.

how set dependencies , make sure downloaded , compiled?

at first tried add - reactive-banana-0.8.0.2 in stack.yaml under extra-deps:, both stack build , stack solver didn't download it. augmented part called library in new-template.cabal this:

library   hs-source-dirs:      src   exposed-modules:     lib   build-depends:       base >= 4.7 && < 5                      , reactive-banana >= 0.8   default-language:    haskell2010 

every time tried run stack build, crashed error , suggestion add package stack.yaml under extra-deps:, , happened 3 times until packages installed, , import them in stack ghci repl.

so question is, idiomatic way use stack? of these 2 files should use specify dependencies , other project metadata? sample workflow of average haskell developer stack?

when using stack don't put versions bounds in .cabal file. let resolver , extra-deps setting in stack.yaml file determine versions of packages select.

here stack.yaml file brings in reactive-banana-0.8.1.2:

flags: {} packages: - '.' extra-deps: - reactive-banana-0.8.1.2 - psqueues-0.2.0.2 resolver: lts-2.17 

in .cabal file have:

  build-depends:       base >= 4.7 && < 5, reactive-banana 

the reactive-banana version pinned stack.yaml file.

if want use ghc 7.10 change resolver nightly-2015-06-17.

i determine extra-deps iteratively, running stack build , adding whatever dependencies missing stack.yaml file until dependencies satisfied.

you need packages not in stackage - reactive-banana. great many of commonly used packages in stackage , versions determined resolver setting.


Comments

Popular posts from this blog

javascript - Karma not able to start PhantomJS on Windows - Error: spawn UNKNOWN -

c# - Display ASPX Popup control in RowDeleteing Event (ASPX Gridview) -

Nuget pack csproj using nuspec -