Project:Haskell

= Project Description =

The Haskell project maintains the packages for Haskell implementations, libraries and development tools. We support GHC, Hugs and Helium though GHC is the best supported. The library packages work only with GHC.

There is an overlay where we work on Haskell ebuilds before getting them into the main portage cvs tree. You can get the overlay using layman.

All development discussion takes place on the #gentoo-haskell irc channel. This channel is the appropriate place to report bugs in packages that are in the overlay. They should not be reported in bugzilla, that's the place to report bugs about packages in the main portage cvs tree.

Further instructions and tips can be found on Haskell page.

Developers
All developers can be reached by e-mail using nickname@gentoo.org.

Herds
The Haskell project maintains the following herds:

Project policies
While adding new packages to the tree overlay we follow next rules: we keep in tree enduser applications and their depends plus haskell-platform. We are keeping all development libs in overlay. In overlay we to now have 'stable-' 'testing' partitioning, and all packages are marked as testing.

= Project Goals =

Long-term goals

 * Support for the haskell-ecosystem in the Gentoo.

Short-term goals

 * stabilizing Haskell Platform in Gentoo tree: | related tracker;
 * fixing USE flags metadata entries in overlay;
 * fix packages test in overlay.

= Pending tasks =

= How To Contribute =


 * Ebuilds contribution. For more information see overlay documentation
 * Contribute to project programs (hackport, haskell-updater, etc.)

TODO list

 * [easy-to-hard] Add packages requested by people to the overlay. HackPort is a nice tool to do it fast.
 * [easy-to-moderate] Keep up-to-date upstream versions in overlay, fix depends broken by package updates and upstream fixes. HackPort can help in tracking: hackport status --from-hackage.
 * Improve HackPort tool.
 * [easy] Some packages are patched on top of upstream. Ideally they shoud not :]. Your goal is to push nice patches upstream. Haskell world is very eager in getting feedback, so it's a source of pleasure to work with upstream!
 * Some code snippets on scanning the tree for such patched packages:
 * [moderate] Some packages have their testuites, but ebuilds don't utilize it or have tests blocked. Blocked tests are easy to find with git grep RESTRICT.
 * Here is some notes to say: upstream tests are sometimes unportable hacks, so your aim is to rework ill written testsuites by using Cabal recently introduced testing interface and/or using libraries helping in testing (HUnit, QuickCheck, test-framework-*). See tests in darcs as an advanced example.
 * [moderate] Get ghc bugs fixed upstream, send patches
 * [easy-to-moderate] Help fix & improve cabal. Improve cabal-install.
 * [easy] Write a program to check for build errors of package in overlay.
 * [easy] run repoman full on the overlay and provide fixes for found QA notices.

= External resources =