Shipments in Cabal

Isaac Jones ijones at syntaxpolice.org
Thu Dec 8 14:04:42 EST 2005


Duncan Coutts <duncan.coutts at worc.ox.ac.uk> writes:

> On Thu, 2005-12-08 at 10:02 -0800, Isaac Jones wrote:
>> Krasimir Angelov <kr.angelov at gmail.com> writes:
>> 
>> > Hello Guys,
>> >
>> > I have started developing Shipments in Cabal. 
>> 
>> Awesome!  FWIW, you should probably take a look at the package
>> dependency code in cabal-get, and you also might want to look at the
>> new cabal-install tool, as I expect that when we ship a cabal w/
>> cabal-install, people will use it a lot.  Although having shipments
>> makes cabal-install less important.
>
> I also wrote a bit about this issue:
>
> http://haskell.org/hawiki/Cabal_2fMultiPackageDistributables
>
> I started off from the assumption that "shipments" are necessary and
> obviously beneficial. However after thinking about it for a while and
> thinking through some of the implications (especially on dependency
> resolution) I'm not not so convinced that we need shipments as such.
>
> There is certainly a case for making it easier to work with a
> system/project that consists of multiple libraries and executables,
>
> however I'm convinced that the cabal package should be the fundamental
> unit and that "shipments" should be merely for the convenience of the
> developer.

This is actually why I wrote cabal-install, I wanted to try out the
idea of leaving .cabal packages as the fundamental unit and building
this layered tool for convenience.

It doesn't do dependency analysis yet, and it doesn't install in a
temporary location, but you can say:

cabal-install foo.tgz bar.tgz -- etc

(it'll also accept .tar, .tar.gz, .cabal, and a directory name)

The main advantage of shipments, IMO, is that they're lighter-weight
than multiple packages.  I'm still somewhat torn, but leaning toward
shipments, especially if it can pretty much be a layer on top of
.cabal files.  Moving the version into .cabalship breaks this
somewhat.

I was planning to gain some experiences w/ cabal-install before
pushing into shipments, but Krasimir jumped into it.  I think they're
more important for the visual studio plugin than for other stuff.

peace,

  isaac


More information about the Libraries mailing list