Revision as of 22:10, 19 April 2009

The Haskell Platform (HP) is the name of the blessed, core library suite for Haskell. By taking the best libraries from the more than 1200 libraries of Hackage, it provides a comprehensive, stable and mature base for Haskell projects to work from.

Volunteers needed!

We are calling for volunteers for an action group. We need volunteers to
take charge of various platforms and to manage the overall release.
We would like to release a beta at the upcoming Haskell
Hackathon in Utrecht (April 17-19). However this will only happen if people volunteer to help build distributions for different platforms.

In particular we need:

Release manager / coordinator

Website with downloads and release notes

Someone in charge of each platform:

Windows installer

OSX installer

Generic Unix source tarball

Distribution packages: debian, fedora, gentoo, arch, BSD* etc

The person in charge of each platform is responsible for building a appropriate native packages / installer and coordinating the effort to test that the stuff installs and works ok.

If no one volunteers, we simply won't have an Haskell Platform release for that platform.

The set of HP packages + core libs must be closed. In other words, all haskell dependencies must be from within the HP packages or core libs. Dependencies on C libs can be external.

All packages in a particular HP version must have a consistent install plan.

That means only one version of each package and all dependencies on packages must be satisfied by the version in the HP package set.

There is code in cabal-install to check the last two requirements.

Other possible ideas for quality standards we might want to require:

Uses base library types, to force API standardisation

exposed module names must follow the hierarchical module name convention, meaning they must be in an appropriate place in the module namespace. In particular, no clash of module names should occur within the HP.

Other heuristics

Packages set for inclusion should:

Have a maintainer

Have a bug tracker

Use the correct versioning

Build with cabal

Work on all arches.

Further goals:

-Wall clean

100% coverage

Have real world use.

Answer a notable set of build dependencies.

Have a declared correctness test suite.

Have a declared performance test suite.

BSD licensed

Distribution format

Source distribution

.tar.gz bundle compatible with extra-libs

Windows Installed

Native distro packages

The HP will be the first meta-package on hackage, that depends on the platform library set. With this,

cabal install haskell-platform

will be possible.

Version policy

yyyy.major.minor,

odd major numbers indicate unstable branches

minor numbers indicate bug fixes only, no API changes.

Examples:

2008.0.0 -- first biannual major stable release

2008.0.1 -- minor release, bug fix only

2008.1 -- unstable branch leading to next major release

2008.2.0 -- second annual major release, API changes

2008.2.1 -- bug fixes

2008.3 -- unstable branch of 2008

2009.0.0 -- first release in 2009.

Additionally, if a library is accepted into the platform, it is suggested its version number be lifted to 1.0, if not already at 1.0.

Licenses

The initial release is expected to include only BSD3 licensed software.

Programs

The platform includes programs, such as haddock or cabal-install.
These aren't nicely tracked from the cabal meta package yet.

Build system

Two ways to build the bundle:

generate a sh script from the .cabal file

Or, build cabal-install, have the components of the platform
as a mini, local hackage archive, and then ask cabal install to satisfy
and install the dependencies from the platform meta-cabal file.