
As I understand it, a package collection, like http://hackage.haskell.org/packages/unstable/ 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. 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. The main missing piece seems to be a means of uploading packages. Any plans there? Perhaps something along the lines of PAUSE (http://www.cpan.org/misc/cpan-faq.html#What_is_PAUSE), except that we only need to upload Cabal tarballs.

Ross Paterson
As I understand it, a package collection, like
http://hackage.haskell.org/packages/unstable/
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.
The main missing piece seems to be a means of uploading packages. Any plans there? Perhaps something along the lines of PAUSE (http://www.cpan.org/misc/cpan-faq.html#What_is_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 hackage.haskell.org 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. Something like PAUSE would be good :) peace, isaac

On Mon, 2006-12-04 at 10:43 -0800, Isaac Jones wrote:
Ross Paterson
writes: As I understand it, a package collection, like
http://hackage.haskell.org/packages/unstable/
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 checksums).
The main missing piece seems to be a means of uploading packages. Any plans there? Perhaps something along the lines of PAUSE (http://www.cpan.org/misc/cpan-faq.html#What_is_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 hackage.haskell.org 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. Duncan
participants (3)
-
Duncan Coutts
-
Isaac Jones
-
Ross Paterson