Find packages

Or you can browse the full list of packages

About this Hackage instance

This is a test instance of the new implementation of the Hackage server (aka "Hackage 2"). For details about Hackage in general, see the existing server.

Alpha testing

We are using this instance for a public alpha test. You are welcome to take part. There are instructions below for how to configure cabal to point to this server.

Please don't post it to reddit just yet! During this early phase of the alpha testing we would prefer you not to advertise it too widely. We would prefer initially not to have too many users all reporting the same set of known problems. We will publicise it more widely when we are into the beta phase.

We expect to have a couple months during the alpha and beta-phases where the two servers run side by side.

Note: we are mirroring packages from the old server (currently every 30min) so it is suitable to use as your main hackage server with some caveats: because we are allowing package authors to upload (as well as the mirroring) then you may find a slightly different set of packages on this server.

If you are a package author then you are welcome to poke about and upload packages. We have imported user accounts from the old server. During this phase of the alpha testing we invite you to report your comments to the cabal-devel mailing list.

Note: before we do the final switchover we will delete everything from this test instance and do a fresh import from the existing hackage server.

Configuring cabal-install

Edit your ~/.cabal/config file. Comment out the existing remote-repo line near the top of the file and add in a new one like this:

--remote-repo: hackage.haskell.org:http://hackage.haskell.org/packages/archive

remote-repo: new-hackage.haskell.org:http://new-hackage.haskell.org/

Implementation status

The new implementation is now more-or-less at feature parity with the old server.

We have imported all the data from the old server (except package download counts). Currently we do not have a documentation builder client running, but one has been developed, it's just a matter of setting that up.

Support from the IHG

You'll not have failed to notice that Hackage 2 has been "under development" for rather a long time. It has suffered from a lack of volunteer time (particularly lack of a main maintainer to review patches and encourage other contributors). The "first 90%" was done by volunteers, particularly Matthew Gruen for his GSoC project.

The Industrial Haskell Group (a consortium of companies that rely on Haskell) decided to support the "last 90%" to get Hackage 2 to a state where it can actually be used and to switch over from the old implementation. Well-Typed have been doing the development work on Hackage 2 on behalf of the IHG for the last several months. The goal has been to get it deployed, rather than worrying too much about the new features. We believe that once it is actually up and running, that the community will be more interested in helping improve and add features.

If your company is interested in supporting work such as this, please consider joining the IHG.

Features

Though our main priority is feature parity so that we can switch over, there are some new features:

There are also a number of features that are partially implemented or are in need of improvement

Development

See the Hackage wiki page. There is also a document in progress summarizing the architecture of the new hackage-server. Check out the code yourself:

darcs get http://code.haskell.org/hackage-server

While the code is in darcs at the moment (as that was quicker for the people who were working on it recently) the plan is to move it to github at some point during the beta.

We'd like to make it as simple as possible for anyone to set up a Hackage server.

Getting the raw data

Miscellaneous links

There are a few other package indices: