Features/GoodHaskellSupport

= Haskell Development Support =

Summary
Provide good support for Haskell development and use, with a high number of quality libraries and tools available.

Owner

 * Name: YaakovNemoy

Current status

 * Targeted release: Fedora ?
 * Last updated: 2008-09-24
 * Percentage of completion: 75%
 * Complete enough to be considered a 'feature'
 * The idea of how spec files should look is complete, but there are still minor bugs

ToDo (Targeting a Fedora 10 Release)
These tasks will guarantee the sustainability of this feature


 * 1) Get at least 20 packages in and supported
 * 2) Get at least one dedicated reviewer to reviewing Haskell packages, with good knowledge about Haskell and GHC

For long term ToDo tasks, see the Test Plan

Detailed Description
Haskell is a very powerful language with growing usage. Currently Fedora support for Haskell is minimal. Many developers, scientists, and other technically oriented people are drawn away from Fedora for a lack of Haskell support. There are also a number of applications written in Haskell that require at least some level of support to include them in Fedora and to keep them up to date. This includes:


 * xmonad - A window manager
 * xmobar - A display bar program for X
 * pugs - A Perl 6 implementation
 * darcs - a source control management program
 * Yi - an editor that can be programmed in Haskell
 * Meep - Meep (or MEEP) is a free finite-difference time-domain (FDTD) simulation software package developed at MIT to model electromagnetic systems.
 * Frob - an Embedded Domain Specific Language for controlling robots. It is built using the principals of Functional Reactive Programming, as developed by Conal Elliott for the Fran animation system. The current incarnation of Frob is part of the Yampa FRP system.
 * hpaste - a pastebin written in Haskell

Haskell is also a very popular language for any sort of 3D rendering, and there are a number of applications devoted to it. Good Haskell support would be useful for a wide variety of Desktop Spins.

Benefit to Fedora
Good Haskell support would make Fedora and family available to a wide variety of users. It would encourage growth within technical circles that are tech savvy but also focused on their particular fields.

Scope
To start, getting some basic support in beyond just the few core packages available today. Furthermore, this could be something to be passed along to the Ambassador team so that they can present Fedora to different scientific and other technical groups as a solid base to work from. The hope is to have this included in Fedora 10, so that it can also be a part of RHEL 6, as rumors suggest this is going to be the base for that.

Test Plan

 * 1) Write Package Guidelines - Done
 * 2) Include a number of libraries and programs - In Progress
 * 3) Double check that /etc/rpm/macros.ghc exists on a system with GHC installed
 * 4) Get them tested by people to make sure there are no mess-ups
 * This depends on the nature of each package.
 * 1) Test this on as many architectures as possible
 * Make sure packages can be built on as many architectures that GHC supports

Future ideas

 * 1) Evaluate foreign function interface libraries between haskell and other libraries and virtual machines
 * 2) (Not necessarily Fedora 9) Implement a collection of FFI libs, to broaden access to libraries
 * 3) What else goes here?

User Experience
The user will see some new programs available. The developer will have access to more libraries in Haskell, and an ease of use in programming in and for Fedora using Haskell. This will not affect anyone not using Haskell.

Dependencies

 * Dedicated Package Reviewing

Contingency Plan
Since the guidelines are in place, and the ghc package is patched to match this, there is nothing that needs to be 'rolledback' any further.

Documentation

 * Haskell Packaging Guidelines
 * http://www.serpentine.com/blog/software/cabal-rpm/
 * http://www.haskell.org/cabal/

Release Notes
Fedora 10 introduces better support for Haskell. With a new set of packaging guidelines and tools, it is incredibly easy to support any Haskell program using the Glasgow Haskell Compiler. Package creation and deployment, leveraging Fedora's quality tools plus a few new friends has never been easier. As support for Haskell grows there will be continued development for Haskell as more libraries are introduced.

Package creation is quite simple. Haskell already provides the infrastructure for compiling and deploying packages consistently. Setting up a package for Fedora takes very little time, meaning code that works in Haskell will work in Fedora too.

Fedora also provides tools for enterprise deployment of Fedora packages. With the inclusion of Haskell in Fedora, the developer is now free to write enterprise level applications in Haskell and feel secure knowing the code can be use in Fedora.