Difference between revisions of "Haskell Platform"
DonStewart (talk | contribs) |
(Added Category:HaskellPlatform) |
||
(75 intermediate revisions by 17 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{HP}} |
||
− | '''Haskell: Batteries Included''' |
||
+ | 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://hackage.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 nearly 800 libraries of [http://hackage.haskell.org haskell.org]. It provides a comprehensive, stable and quality tested base for Haskell projects to work from. |
||
+ | __TOC__ |
||
− | [[Image:Small-package-bubbles.png|Libraries in the platform, with area based on number of libraries that depend on it]] [[Image:Haskell-graph.png|Graph of library dependencies. The platform is the center of the graph]] |
||
+ | == What's in the platform == |
||
− | The first image is a |
||
− | [http://blog.well-typed.com/wp-content/uploads/2008/09/package-sizes-all-crop.png |
||
− | bubble graph of hackage], with the "platform" indicated, to give a visual sense |
||
− | of how the platform relates to the rest of hackage. The second image |
||
− | shows a [http://galois.com/~dons/tmp/hackage.png graph of hackage |
||
− | dependencies], with a circle drawn around the densest part of the graph, |
||
− | to give an idea of how the platform satisifies a large proportion of |
||
− | dependencies. |
||
+ | See |
||
− | == Resources == |
||
+ | * the [http://hackage.haskell.org/platform/changelog.html change log] |
||
+ | * the unofficial [http://sol.github.com/haskell-platform-versions-comparison-chart/ Versions Comparison Chart] |
||
− | * '''[http://code.haskell.org/haskell-platform Haskell Platform project repository]''' |
||
− | * '''[http://trac.haskell.org/haskell-platform/ Project bug tracker]''': candidates for inclusion |
||
− | == |
+ | == Trouble shooting == |
+ | The Haskell Platform project maintains a bug tracker and wiki site, which you can use to report problems, or request features: |
||
− | * [http://cgi.cse.unsw.edu.au/~dons/blog/2008/07/29#batteries The Haskell Platform Proposal] for the 2008 Haskell Symposium |
||
− | * [http://blog.well-typed.com/2008/09/slides-from-the-haskell-platform-talk/ Slides from the Haskell Platform talk] |
||
− | * [http://blog.well-typed.com/2008/09/hackage-hacking-and-demo/ Haskell Platform discussion] |
||
− | * 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 |
||
− | * [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. |
||
− | * [http://haskell.org/~duncan/ghc/%23ghc-2008-07-16.log More occurred during the #ghc meeting] |
||
+ | * [http://trac.haskell.org/haskell-platform/report/1 Known issues] |
||
− | ===Quality Control=== |
||
+ | * [http://trac.haskell.org/haskell-platform/newticket?summary=%3CProblem%3E&description=%3CDescribe%20the%20problem%3E&component=Platform Report a bug] |
||
− | Inclusion or exclusion in the platform will be drive by metrics, objective measurements we can extract from code. Determining appropriate metrics is a milestone. |
||
+ | === Developers === |
||
− | * cabal-installable libraries with haddocks. |
||
− | * The set of HP packages + core libs must be closed. That is 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. |
||
+ | For developers, there is a wiki page with project details: |
||
− | That means only one version of each package and all dependencies on packages must be satisfied by the version in the HP package set. |
||
+ | * [http://trac.haskell.org/haskell-platform/ Developer's wiki] |
||
− | There is code in cabal-install to check the last two requirements. |
||
+ | * [http://trac.haskell.org/haskell-platform/wiki/ReleaseTimetable Release Timetable] |
||
− | Other possible ideas for quality standards we might want to require: |
||
+ | == Buttons == |
||
− | * 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. |
||
+ | We have some buttons to let your friends know about the Haskell Platform. |
||
− | === Glue Layers === |
||
+ | [http://hackage.haskell.org/platform http://hackage.haskell.org/platform/icons/button-100.png] |
||
− | Unlike the OCaml Batteries proposal, there will be no new glue layer to combine libraries, instead, we rely on the large base library to provide the standard interface types. |
||
+ | Use this html in your site: |
||
− | As addition to the platform is a social process, we can use this as a hurdle to require base library conformance for new libraries to be admitted. If a library reinvents, for example, a time format, or an exception handling mechanism, the platform process will force standardisation on the base API before admition can proceed. |
||
+ | <code> |
||
− | === Other heuristics === |
||
+ | <nowiki> |
||
+ | <a href="http://hackage.haskell.org/platform" |
||
+ | ><img src="http://hackage.haskell.org/platform/icons/button-100.png"></a> |
||
+ | </nowiki> |
||
+ | </code> |
||
+ | [http://hackage.haskell.org/platform http://hackage.haskell.org/platform/icons/button-64.png] |
||
− | Packages set for inclusion should: |
||
+ | Use this html in your site: |
||
− | * Have a maintainer |
||
− | * Have a bug tracker |
||
− | * Use the correct versioning |
||
− | * Build with cabal |
||
− | * Work on all arches. |
||
+ | <code> |
||
− | Further goals: |
||
+ | <nowiki> |
||
+ | <a href="http://hackage.haskell.org/platform" |
||
+ | ><img src="http://hackage.haskell.org/platform/icons/button-64.png"></a> |
||
+ | </nowiki> |
||
+ | </code> |
||
+ | SVG source for the button: http://haskell.org/haskellwiki/Image:Button.svg |
||
− | * -Wall clean |
||
− | * 100% coverage |
||
− | * Have real world use. |
||
− | * Answer a notable set of build dependencies. |
||
− | == Distribution format == |
||
+ | === Icons === |
||
− | * Source distribution |
||
− | * .tar.gz bundle compatible with extra-libs |
||
− | * Windows Installed |
||
− | * Native distro packages |
||
+ | Icons for the platform installer and desktop. |
||
− | The HP will be the first '''meta-package''' on hackage, that depends on the platform library set. With this, |
||
+ | [[Image:Platform-100.png]] |
||
− | cabal install haskell-platform |
||
+ | [[Image:Platform-64.png]] |
||
− | will be possible. |
||
− | == Version policy == |
||
+ | === Legal === |
||
− | yyyy.major.minor, |
||
+ | * The cherry blossom image used in the 2011 HP release is [http://www.flickr.com/photos/28481088@N00/3291086383/ licensed CC by tanakawho] |
||
− | * odd major numbers indicate unstable branches |
||
− | * minor numbers indicate bug fixes only, no API changes. |
||
− | Examples: |
||
+ | [[Category:HaskellPlatform]] |
||
− | * 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://dutherenverseauborddelatable.wordpress.com/2008/08/29/ocaml-batteries-included-release-0-where-it-should-all-have-begun/ OCaml Batteries] |
||
− | |||
− | == Developers == |
||
− | |||
− | Haskell Platform core team: |
||
− | |||
− | * Duncan Coutts (Well Typed) |
||
− | * Don Stewart (Galois) |
||
− | |||
− | [[Category:Community]] |
Revision as of 13:16, 12 May 2013
|
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 change log
- the unofficial Versions Comparison Chart
Trouble shooting
The Haskell Platform project maintains a bug tracker and wiki site, which you can use to report problems, or request features:
Developers
For developers, there is a wiki page with project details:
Buttons
We have some buttons to let your friends know about the Haskell Platform.
Use this html in your site:
<a href="http://hackage.haskell.org/platform"
><img src="http://hackage.haskell.org/platform/icons/button-100.png"></a>
Use this html in your site:
<a href="http://hackage.haskell.org/platform"
><img src="http://hackage.haskell.org/platform/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.
Legal
- The cherry blossom image used in the 2011 HP release is licensed CC by tanakawho