package collection

Duncan Coutts duncan.coutts at
Tue Dec 5 05:04:31 EST 2006

On Mon, 2006-12-04 at 10:43 -0800, Isaac Jones wrote:
> Ross Paterson <ross at> writes:
> > As I understand it, a package collection, like
> >
> >
> >
> > has the structure
> >
> > 	00-index.tar.gz
> > 	<pkg>/
> > 		<pkgid>.cabal
> > 		<pkgid>.tar.gz
> > 	...
> >
> > where 00-index.tar.gz tars up all the <pkg>/<pkgid>.cabal files.
> > Such a simple structure makes it easy to add tools.
> That's right.
> > Perhaps it could be made simpler by replacing the index with a file
> > that was just a concatenation of the .cabal files with some separator
> > (say @), and having both gzipped and uncompressed versions.
> That's an idea.  I wonder what xerox and ducan think.

We did consider that. We decided to use an existing format (tar) to
manage the collection of files rather than rolling our own because it
involved writing less code, the tools are already there. Parsing .tar
files in Haskell is trivial. We know the tar format is stable. It is
less clear that a textual concatenation format would be robust to
changes in the .cabal syntax. Also it allows us to add non .cabal files
at a later date without breaking the format (eg to add hashes or

> > The main missing piece seems to be a means of uploading packages.
> > Any plans there?  Perhaps something along the lines of PAUSE
> > (, except that
> > we only need to upload Cabal tarballs.
> Currently the means of uploading files is by using the 'cabal-put'
> tool that's on the server.  You have to have an
> account on that machine in order to upload packages.  The idea behind
> that is to just get something working among folks we already trust.

Yes, it's the simplest thing.

> Something like PAUSE would be good :)

It'd be great to make something better if anyone has the time to do so.


More information about the cabal-devel mailing list