Difference between revisions of "Library submissions"

From HaskellWiki
Jump to navigation Jump to search
(notes)
(Replaced content with "== This page is outdated. Please refer to https://github.com/haskell/core-libraries-committee/blob/main/PROPOSALS.md instead ==")
 
(90 intermediate revisions by 19 users not shown)
Line 1: Line 1:
  +
== This page is outdated. Please refer to https://github.com/haskell/core-libraries-committee/blob/main/PROPOSALS.md instead ==
As the Haskell community has grown, and emphasis on development has
 
moved from language to libraries, the need for a more formalised process
 
for contributing to libraries has emerged. This page documents our
 
'best practices' for proposing new library functions.
 
 
In essence, we don't want proposals to go unnoticed, but changes to
 
basic interfaces also need thorough consideration.
 
 
Under the old ad hoc system, unless a proposal meets with a chorus of
 
approval, the only way to get a decision is from SimonM or unilateral
 
action by some committer. This slowed development.
 
 
== Submitting a proposal ==
 
 
In order to ensure we have something concrete to discuss, please follow
 
the following guidlines when creating a new proposal:
 
 
* ''Submission''. Proposed changes should be submitted to libraries@haskell.org, as a [http://darcs.net darcs] patch
 
* ''Patch''. The patch must compile against the head
 
* ''Documentation''. It must include valid Haddock documentation (you need [http://haskell.org/haddock Haddock] 0.8)
 
* ''Tests''. Code should also come with tests for the testsuite.
 
** Pure code should also come with QuickCheck properties
 
** Impure code should have unit tests.
 
* ''Portability''. Code should be portable. If it is not portable, reasons should be given. Ensure the code runs in at least Hugs and GHC.
 
 
To document the change, please [http://hackage.haskell.org/trac/ghc add a Trac ticket], and a timescale for consideration (to focus the community's attention):
 
 
* ''Tracking''. The submission's trac ticket should be included in the mail sent to the libraries list.
 
 
== Reaching consensus ==
 
 
* At the end of the discussion period, the proposer adds to the ticket a summary of the relevant parts of the discussion, the ticket is archived and, if consensus was achieved, the change is made. (The summary is needed for anyone wondering about the change later: it's not reasonable to point people at a 50-message thread.)
 
 
* A deeply held disagreement at the end of the discussion period may require some form of government (voting, dictatorship, etc). This should be a rare event.
 
 
[[Category:Community]]
 

Latest revision as of 00:30, 23 February 2022