| Version 7 (modified by ross@…, 6 years ago) |
|---|
The Hackage Database
HackageDB is a pool of Cabal packages, like CPAN, the Caml Humps or CEAN, except for Haskell.
Web interfaces
The package collection can be presented in various ways. So far we have fairly simple interfaces:
- simple package browser. The source code is available via
- basic web interface to the Hackage database.
It presents a simple listing of packages, and has forms for checking and uploading packages.
The source code is available via
- darcs get http://darcs.haskell.org/hackage-scripts
For future enhancement plans, see HackageToDo.
Other interfaces
cabal-upload is a command-line tool for uploading Cabal packages to HackageDB. Its usage is
cabal-upload user-name password cabal-file
It works by wrapping an interaction with the upload form in the basic web interface. The source is included in the Cabal repository.
Structure
A package collection is a directory with a simple structure:
- 00-index.tar.gz
- pkg-list.html
- log
- pkg/
- pkgid.cabal
- pkgid.tar.gz
- pkgid.misc/
- doc/
- html/
- doc/
- ...
- latest.misc (symbolic link)
- ...
where 00-index.tar.gz tars up all the pkg/pkgid.cabal files.
The collection may contain several versions of a particular package.
For example, see the package collection underlying the above interface.
Suggestion: replace the index with a concatenation of the .cabal files with some separator (say @), and having both gzipped and uncompressed versions.
Old stuff
Client-side cabal-put? was an early prototype of an upload tool, but is currently defunct.
There is also a Perl script cabal-put on darcs.haskell.org, now superceded by the web interface.
