
Simon Marlow
Following discussions a while back:
http://www.haskell.org//pipermail/libraries/2006-January/004815.html
there was some concensus (although not unanimous) that Cabal's user interface should be a wrapper program that runs Setup.hs. I've implemented a first cut at this, see the attached Cabal patch. It addresses this ticket: http://hackage.haskell.org/trac/hackage/ticket/63
The somewhat bigger vision is to as mentioned here: http://hackage.haskell.org/trac/hackage/ticket/65 is to add cabal-setup and cabal-get to the cabal tree. We'd like to thin out cabal-get so that it's small enough to include w/ cabal. Cabal-get will take over some of the functionality that cabal-install was meant to do, and will be layered on top of cabal-setup. Does everyone like the name cabal-setup? So this looks good to me so far! I think duncan started work on something very similar, so I've CC'd him and perhaps he can let us know if he has anything to add.
I'm sending it here rather than committing directly, because I imagine there will be some discussion about whether this is the right thing. I'm pretty convinced this is the right way to go: it solves the Cabal versioning problem, and it frees the programmer from having to write a boilerplate Setup.hs file. It's a step on the way to supporting building of multiple packages.
Look at the patch, tell me what you think. You'll need a completely up-to-date Cabal from darcs to build it.
I looked at it a bit and it looks fine. I'm leaning toward keeping all multi-package stuff in cabal-get (maybe it should be called cabal-install or something, since it should also work on local files) and keeping cabal-setup very thin, as you have it now. Thoughts? peace, isaac