[Haskell-cafe] ANN: cabal-dev - sandboxed haskell development

Rogan Creswick creswick at galois.com
Tue Dec 21 00:59:09 CET 2010

Galois is happy to announce cabal-dev:  a tool for managing development
builds of Haskell projects within sandboxes.

Performing consistent builds is critical in software development, but
the current system in GHC/Haskell of per-user and per-system GHC package
databases interferes with this need for consistency. It is difficult to
precisely identify the dependencies of a given project, and changes
necessary to enable one project to build may render another project
inoperable. If each project had a separate package database, each
project could be built in a sandbox. Cabal-dev manages cabal-install
repositories and sandboxed ghc package databases to prevent interactions
between disparate projects or user package databases.

Cabal-dev is similar to capri, which was coincidentally developed
concurrently, but the two projects take slightly different approaches to
sandboxing and exhibit slightly different behaviors depending on the
state of the global package database and the versions of the tools

For most packages, just use cabal-dev instead of cabal, and you will get
a sandboxed build that will not install anything (even automatically
installed dependencies) into the user or global ghc package databases.
If your build depends on patched or unreleased libraries, you can add
them to your sandboxed build environment so they can be installed by
cabal-dev or cabal by running:

> cabal-dev add-source /path/to/source/code

Where /path/to/source/code is either a path to a source directory
containing a .cabal file, or an sdist tarball.

Cabal-dev has been in use at Galois for roughly six months now, but it
should currently be treated as alpha software: we've exercised a few
execution paths heavily, but it still has a number of rough edges (the
rough edges we know about are documented in the TODO file:

Cabal-dev is hosted on hackage and git-hub:
 - http://hackage.haskell.org/package/cabal-dev
 - https://github.com/creswick/cabal-dev

A brief tutorial can be found in the README.md:
 - https://github.com/creswick/cabal-dev/blob/master/README.md

We're looking forward to your feedback!

--Rogan Creswick

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3620 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20101220/d1dc212c/attachment.bin>

More information about the Haskell-Cafe mailing list