[Haskell-cafe] ANNOUNCE: hackage-proxy 0.1.0.0

Michael Snoyman michael at snoyman.com
Sun Feb 17 10:05:48 CET 2013


I'd like to announce the first release of a new tool called hackage-proxy.
The purpose is to provide a local proxy for a Hackage server, which somehow
modifies files in transport. The motivating case for this was getting more
meaningful error output from Stackage when compiling against GHC HEAD. When
compiling against actual Hackage, cabal will simply refuse to try to build
packages which have upper version bounds such as "base < 4.7". This
introduces a big dilemma:

* Package authors do not want to bump the version bounds on their packages
until they've tested against that version.

* It's very difficult to do meaningful tests of GHC until packages on
Hackage have been updated.

Hopefully this package can help resolve the dilemma. Instead of requiring
authors to upload new versions of their packages in order to test them,
this proxy will modify the cabal files it downloads and strip off the
version bounds of specified packages. Then, you can test with a newer
version of GHC and find actual compilation errors instead of version bound
constraints.

## Example Usage

1. cabal install hackage-proxy

2. Run hackage-proxy. By default, it will use the official Hackage server
as the source, drop bounds on the packages base, process, directory,
template-haskell, and Cabal, and serve from port 4200. All of this can be
modified via command-line options.

3. Edit your ~/.cabal/config file. Comment out the
hackage.haskell.orglines, and add in something like the following:

    remote-repo: hackage-proxy:http://localhost:4200

4. cabal update

5. cabal install your-package-list-here

I think this can be a very valuable tool for anyone wanting to test out
newer versions of GHC. In addition, as part of my normal Stackage work, I'm
now collecting fairly detailed error logs of a number of packages. If this
would be useful for the GHC team or anyone else, let me know and I can try
and provide the logs somehow.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20130217/e883ea55/attachment.htm>


More information about the Haskell-Cafe mailing list