Version 11 (modified by ross@…, 6 years ago)

add tickets link

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

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)
  • ...

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

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.