| Version 11 (modified by ross@…, 6 years ago) |
|---|
The Hackage Database
HackageDB is a pool of releases of Haskell software, bundled as Cabal packages.
Web interface
The package collection can be presented in various ways. So far we have a 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
Open tickets. For future enhancement plans, see HackageToDo.
See also cabal-upload, a command-line tool for uploading Cabal packages to HackageDB.
Structure
A package collection is a directory with a simple structure:
- 00-index.tar.gz
- pkg-list.html
- log
- pkg/
- version/
- pkg.cabal
- pkgid.tar.gz
- doc/
- html/
- ...
- latest (symbolic link)
- version/
- ...
where 00-index.tar.gz tars up all the pkg/version/pkg.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.
The upload script runs a shell script post-upload-hook, so we can add as many indices as we want.
Similar systems for other languages
- Comprehensive TeX Archive Network
- Comprehensive Perl Archive Network
- the Caml Humps
- Ruby Application Archive
- Comprehensive Erlang Archive Network
- Scheme Now!
Old stuff
The source code for an earlier package browser is available via
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.
