Difference between revisions of "Haskell Platform"

From HaskellWiki
Jump to navigation Jump to search
m (Update link)
(62 intermediate revisions by 15 users not shown)
Line 1: Line 1:
  +
{{HP}}
[[Image:Platform.png|300px]]
 
   
  +
The Haskell Platform is a single, standard [[Haskell]] development environment for everyone. It offers a set of blessed libraries and tools, to save you the task of picking and choosing which core Haskell libraries to use.
__NOTOC__
 
   
  +
[http://haskell.org/platform/contents.html Learn more about the Haskell Platform ⇒]
The Haskell Platform (HP) is the name of a new "blessed" library suite on which to build further Haskell libraries and applications, by taking the best libraries from the more than 1200 libraries of [http://hackage.haskell.org haskell.org]. It provides a comprehensive, stable and quality tested base for Haskell projects to work from.
 
   
  +
__TOC__
== Status ==
 
   
  +
== What's in the platform ==
'''[http://code.haskell.org/haskell-platform/haskell-platform.cabal The Haskell Platform 2009.0.0] (alpha) '''
 
   
  +
See the official [http://www.haskell.org/platform/changelog.html Haskell Platform Changelog].
The first platform release specifies:
 
   
* ghc-6.10.2
 
* [http://trac.haskell.org/haskell-platform/ Classic Extra Libs]
 
* haddock, happy and alex
 
* The cabal command line tool (cabal-install) and it's dependencies.
 
   
== Distributions ==
+
== Trouble shooting ==
   
  +
Report bugs on GitHub:
Distros that support the Haskell Platform
 
  +
[https://github.com/haskell/haskell-platform/issues Haskell Platform Issues].
   
{|
 
|-
 
| ''System''
 
| ''Status''
 
|-
 
|Arch
 
| ''To be constructed with cabal2arch''
 
|-
 
|Debian
 
|
 
|-
 
|Fedora
 
|
 
|-
 
|Gentoo
 
| Available in the gentoo haskell overlay
 
|-
 
|Ubuntu
 
|
 
|-
 
| Generic Unix Installer
 
|
 
|-
 
|
 
|
 
|-
 
|Windows Installer
 
|
 
|-
 
| OSX Installer
 
|
 
|-
 
|}
 
   
== Volunteers needed! ==
+
=== Developers ===
   
  +
* New [https://github.com/haskell/haskell-platform/wiki/ Haskell Platform Wiki]
We are calling for volunteers for an action group. We need volunteers to
 
  +
* Old [http://trac.haskell.org/haskell-platform/ Trac wiki]
take charge of various platforms and to manage the overall release.
 
We would like to release a beta at the upcoming [[Hac5|Haskell
 
Hackathon in Utrecht (April 17-19)]]. However this will '''only''' happen if people volunteer to help build distributions for different platforms.
 
   
  +
== Buttons ==
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
 
   
  +
We have some buttons to let your friends know about the Haskell Platform.
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.
 
   
  +
[http://haskell.org/platform http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-100.png]
If no one volunteers, we simply won't have an Haskell Platform release for that platform.
 
   
  +
Use this html in your site:
Please join the mailing list and volunteer!
 
   
  +
<code>
== Resources ==
 
  +
<nowiki>
  +
<a href="http://haskell.org/platform">
  +
<img src="http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-100.png"></a>
  +
</nowiki>
  +
</code>
   
* [http://trac.haskell.org/haskell-platform/ Issue tracker and dev wiki]
+
[http://haskell.org/platform http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-64.png]
* [http://code.haskell.org/haskell-platform Darcs repository]: contains the meta-package and scripts for the generic unix tarball
 
* [[/FAQ]]
 
* [http://projects.haskell.org/cgi-bin/mailman/listinfo/haskell-platform Mailing list]
 
* IRC channel: #ghc @ freenode.org
 
* [http://www.galois.com/blog/2009/03/23/one-million-haskell-downloads/ Download statistics for Haskell Packages]
 
   
  +
Use this html in your site:
== Documentation ==
 
   
  +
<code>
* [http://cgi.cse.unsw.edu.au/~dons/blog/2008/07/29#batteries The Haskell Platform Proposal] for the 2008 Haskell Symposium
 
  +
<nowiki>
* [http://blog.well-typed.com/2008/11/haskell-platform-talk-at-the-london-haskell-users-group/ Slides from the Haskell Platform talk]
 
  +
<a href="http://hackage.haskell.org/platform">
* [http://blog.well-typed.com/2008/09/hackage-hacking-and-demo/ Haskell Platform discussion]
 
  +
<img src="http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-64.png"></a>
* Bryan O'Sullivan's [http://www.serpentine.com/blog/2008/09/26/some-notes-on-the-future-of-haskell-and-fp/ writeup] of the future of Haskell discussion
 
  +
</nowiki>
* [http://thread.gmane.org/gmane.comp.lang.haskell.cvs.ghc/28062/focus=28807 A discussion] took place in June and July 2008 about the direction of the HLP.
 
  +
</code>
* [http://haskell.org/~duncan/ghc/%23ghc-2008-07-16.log More occurred during the #ghc meeting]
 
   
  +
SVG source for the button: http://haskell.org/haskellwiki/Image:Button.svg
===Quality Control===
 
   
Inclusion or exclusion in the platform will be driven by metrics, objective measurements we can extract from code. Determining appropriate metrics is a milestone.
 
   
  +
=== Icons ===
* cabal-installable libraries with haddocks.
 
* packages should follow the [[Package versioning policy]]
 
* 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.
 
   
  +
Icons for the platform installer and desktop.
That means only one version of each package and all dependencies on packages must be satisfied by the version in the HP package set.
 
   
  +
[[Image:Platform-100.png]]
There is code in cabal-install to check the last two requirements.
 
   
  +
[[Image:Platform-64.png]]
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 ===
+
=== Legal ===
   
  +
* The cherry blossom image used in the 2011 HP release is [http://www.flickr.com/photos/28481088@N00/3291086383/ licensed CC by tanakawho]
Packages set for inclusion should:
 
   
* Have a maintainer
 
* Have a bug tracker
 
* Use the correct versioning
 
* Build with cabal
 
* Work on all arches.
 
   
  +
[[Category:HaskellPlatform]]
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.
 
 
== 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.
 
 
== Related projects ==
 
 
* [http://docs.python.org/lib/lib.html Python libraries]
 
* [http://live.gnome.org/ReleasePlanning Gnome's release process]
 
* [http://live.gnome.org/ReleasePlanning/ModuleProposing How to propose modules for GNOME]
 
* [http://forge.ocamlcore.org/projects/batteries/ OCaml Batteries]
 
 
== Developers ==
 
 
Haskell Platform core team:
 
 
* Duncan Coutts (Well Typed)
 
* Don Stewart (Galois)
 
 
[[Category:Community]]
 

Revision as of 14:34, 11 August 2014

Platform.png
The Haskell Platform


The Haskell Platform is a single, standard Haskell development environment for everyone. It offers a set of blessed libraries and tools, to save you the task of picking and choosing which core Haskell libraries to use.

Learn more about the Haskell Platform ⇒

What's in the platform

See the official Haskell Platform Changelog.


Trouble shooting

Report bugs on GitHub: Haskell Platform Issues.


Developers

Buttons

We have some buttons to let your friends know about the Haskell Platform.

button-100.png

Use this html in your site:

<a href="http://haskell.org/platform"> <img src="http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-100.png"></a>

button-64.png

Use this html in your site:

<a href="http://hackage.haskell.org/platform"> <img src="http://raw.githubusercontent.com/haskell/haskell-platform/master/website/icons/button-64.png"></a>

SVG source for the button: http://haskell.org/haskellwiki/Image:Button.svg


Icons

Icons for the platform installer and desktop.

Platform-100.png

Platform-64.png


Legal