typelead/etlas

Etlas tries to build vector-benchmarks in vector

puffnfresh opened this issue · 6 comments

When doing an "etlas configure" from the vector directory, Etlas gives:

etlas: Could not resolve dependencies:                                                                                             
trying: vector-0.12.0.1 (user goal)
next goal: vector-benchmarks (user goal)
rejecting: vector-benchmarks-0.10.9 (conflict: vector==0.12.0.1,
vector-benchmarks => vector==0.10.9)
fail (backjumping, conflict set: vector, vector-benchmarks)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: vector, vector-benchmarks

Because it is somehow finding this file:

https://github.com/haskell/vector/blob/v0.12.0.1/benchmarks/vector-benchmarks.cabal

Same with text-1.2.3.0:

benchmarks/text-benchmarks.cabal
tests/text-tests.cabal

Having a cabal.project with packages: . seems to be a workaround.

This is a default behavior in cabal new-build that Etlas has inherited - it automatically picks up all subprojects (folders with a .cabal file) in your root directory.

If you think the default should be changed so that the user should manually create a cabal.project when they have a multiple packages in a single project, let us know.

It's a bit weird that we can't download source and do a simple cabal install now but whatever, if that's the way Cabal works, then that's how it is.

Nix usually uses Setup.hs directly and so usually only uses Cabal is a library, not executable. Etlas doesn't have anything like that, right?

cabal new-install got implemented recently as a GSoC project so we have plans to backport it soon which should make a lot of this simpler.

Setup.hs and custom setups are currently silently ignored by Etlas until we have a patch for the Cabal library.

I'll close this since it's intended behaviour inherited from Cabal. I've got a workaround which works well.