From Fedora Project Wiki

 
(287 intermediate revisions by 4 users not shown)
Line 6: Line 6:
We have two mailing-lists:
We have two mailing-lists:


* [https://admin.fedoraproject.org/mailman/listinfo/haskell haskell] list ([http://lists.fedoraproject.org/pipermail/haskell/ archives]) for general discussion [new!]
* {{fplist|haskell}} ([https://lists.fedoraproject.org/archives/list/haskell@lists.fedoraproject.org/ archives]) for general discussion
* [https://admin.fedoraproject.org/mailman/listinfo/haskell-devel haskell-devel] ([http://lists.fedoraproject.org/pipermail/haskell-devel/ archives]) for bugzilla traffic.
* {{fplist|haskell-devel}} ([https://lists.fedoraproject.org/archives/list/haskell-devel@lists.fedoraproject.org/ archives]) for bugzilla traffic.


== IRC ==
== Matrix and IRC ==
We have an [[Communicate/IRCHowTo|IRC]] channel #fedora-haskell on Freenode.
* Matrix room: #haskell:fedoraproject.org


== Updates ==
== Updates ==
Follow us on [http://twitter.com/fedorahaskell Twitter].
Follow us on [http://twitter.com/fedorahaskell Twitter].


= Haskell Platform support =
= Package versions =
Please see the [[Haskell_Platform|Haskell Platform]] page for more information about Fedora's Haskell Platform support. Detailed package information is on the [https://admin.fedoraproject.org/community/?package=haskell-platform#package_maintenance Fedora Community] page.
== GHC and Stackage LTS versions ==
* F39 has ghc-9.4.5 and [[Changes/Haskell_GHC_9.4_and_Stackage_21|Stackage LTS 21]]
* F38 has ghc-9.2.6 and [[Changes/Haskell_GHC_9.2_and_Stackage_20|Stackage LTS 20]]
* EPEL9 has ghc-8.10.7 and Stackage LTS 18
* EPEL8 currently has ghc-8.2.2
* EPEL7 has ghc-7.6.3 and haskell-platform-2013.2.0.0


* Rawhide currently has ghc-7.4.1 with haskell-platform-2012.2
See [[Haskell_Stackage_LTS]] and [[Haskell_Platform]] for older releases.
* F17 has haskell-platform-2011.4.0.0 with ghc-7.0.4
 
* F16 has haskell-platform-2011.2.0.1 with ghc-7.0.4
See [[Haskell_GHC_LLVM]] for llvm version requirements.
* EPEL6 has haskell-platform-2011.4.0.0 and ghc-7.0.4
 
* EPEL5 has ghc-6.12.3
== GHC X.Y packages ==
 
These GHC package are available for current Fedora releases and EPEL 9:
 
* ghc8.10 (8.10.7) (not F37 or epel9)
* ghc9.0 (9.0.2)
* ghc9.2 (9.2.8)
* ghc9.4 (9.4.5)
* ghc9.6 (9.6.2)
 
They can be parallel installed.
* If you want to make one of them default install `ghcX.Y-compiler-default`
 
Note the former ghc module streams are now deprecated.
 
== Haskell Coprs ==
* https://copr.fedorainfracloud.org/coprs/petersen/haskell-language-server/ (2.0)
* https://copr.fedorainfracloud.org/coprs/petersen/cabal-install/ (->3.10)
* https://copr.fedorainfracloud.org/coprs/petersen/cabal-install-3.8/
* https://copr.fedorainfracloud.org/coprs/petersen/cabal-install-3.6/
* https://copr.fedorainfracloud.org/coprs/petersen/pandoc/ (2.11)
 
=== Coprs for EPEL 7 ===
These versions of ghc are available:
 
* https://copr.fedorainfracloud.org/coprs/petersen/ghc-8.6.5/ (includes cabal-install-2.4.1)
* https://copr.fedorainfracloud.org/coprs/petersen/ghc-8.4.4/ (includes cabal-install-2.2)
* https://copr.fedorainfracloud.org/coprs/petersen/ghc-8.2.2/ (includes cabal-install-2.0 and epel6)
* https://copr.fedorainfracloud.org/coprs/petersen/ghc-8.0.2/ (includes cabal-install-1.24)
* https://copr.fedorainfracloud.org/coprs/petersen/ghc-7.10.3/ (includes cabal-install-1.22 and epel6)
* https://copr.fedorainfracloud.org/coprs/petersen/ghc-7.8.4/ (includes cabal-install-1.18 and epel6)
* https://copr.fedorainfracloud.org/coprs/petersen/stack/ (1.9.3)
* https://copr.fedorainfracloud.org/coprs/petersen/idris/ (1.3.1)
 
If you have Fedora Haskell libraries installed which are not part of ghc, you will need to remove them all first (easiest just to remove ghc-base) to avoid package dependency conflicts


= Tasks =
= Tasks =
* [[PackagingDrafts/Haskell]] submission to FPC: https://fedorahosted.org/fpc/ticket/194
* ghc-9.4
* [[Features/GHC74]] for F18
* add cabal-installX.Y
* add haskell-platform packages to [[Upstream_release_monitoring#Package_Ignore_List]]
* help improve <code>FedoraReview/plugins/haskell.py</code>
* [[Haskell_Spin]] submit to Spins SIG
* document ghc and package update workflow  ([[GHC_Update_SOP]])
* [[Documentation_Development_Haskell_Beat|docsbeat]]
* package larger subset of LTS in Copr
* complete cabal-rpm update: https://github.com/juhp/cabal-rpm
** cabal/yum integration (cabal-rpm)
** autogeneration of packages for a "testing" repository of all-of-hackage. Pull from this (with a human eye) to make Fedora packages.
** support for automatic rebuilds. Try to do it in koji or mock-build with a shell script or haskell script.
* Add %check sections for packages that have tests available
* Better tool to check for dependency breakage for version updates: packdeps/reverse and cblrepo exist
* Automatically updated package dependency graphs.
** Need to have continuous build integration, eg automate dependency builds. Check reverse [http://packdeps.haskellers.com/reverse].
** Koji supports maven now. It could have support for cabal as well.


= Packaging =
= Packaging =
== New Package Process ==
== New Package Process ==
* Please use the latest [http://koji.fedoraproject.org/koji/packageinfo?packageID=cabal2spec cabal2spec] package when submitting a [https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&format=fedora-review package review request].
* Please use [http://koji.fedoraproject.org/koji/packageinfo?packageID=cabal-rpm cabal-rpm] to generate packages for submitting a [https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&format=fedora-review package review request].
** The current [[Packaging:Haskell|Haskell Packaging Guidelines]] have been revised [[PackagingDrafts/Haskell]].
** It should follow the current [[Packaging:Haskell|Haskell Packaging Guidelines]].
** [http://fedorahosted.org/cabal2spec cabal2spec] generates .spec files from cabal packages using up to date templates.
** Please add <code>haskell-devel@lists.fedoraproject.org</code> to the CC list for your review request bug.
* You can use cabal2spec-diff when reviewing packages to check differences from the templates.
* You can use <code>cabal-rpm diff</code> when reviewing packages to check differences from the templates.
* Please include haskell-sig in the InitialCC field of [[Package_SCM_admin_requests]].
* New packages can optionally be added to https://release-monitoring.org/ to track Stackage (or Hackage if not in Stackage).
* Remember to add new packages to [[Upstream_release_monitoring]]  (Note that packages in haskell-platform are intentionally not listed to avoid accidental breakage.)


== Package reviews ==
== Package reviews ==
[https://bugzilla.redhat.com/buglist.cgi?product=Fedora&component=Package+Review&bug_status=__open__&emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org All open haskell-devel package reviews] which can be split into:
[https://bugzilla.redhat.com/buglist.cgi?short_desc=ghc%20haskell&short_desc_type=anywordssubstr&component=Package%20Review&bug_status=__open__ "ghc" or "haskell" package reviews]
* [https://bugzilla.redhat.com/buglist.cgi?emailcc1=1&field0-0-0=status_whiteboard&bug_status=NEW&email1=haskell-devel%40lists.fedoraproject.org&type0-0-0=equals&value0-0-0=ready&component=Package%20Review&emailtype1=substring New Ready reviews] ([https://bugzilla.redhat.com/buglist.cgi?emailcc1=1&field0-0-0=status_whiteboard&bug_status=__open__&email1=haskell-devel%40lists.fedoraproject.org&type0-0-0=equals&value0-0-0=ready&component=Package%20Review&emailtype1=substring all Ready reviews])
* [https://bugzilla.redhat.com/buglist.cgi?emailcc1=1&field0-0-0=status_whiteboard&bug_status=__open__&email1=haskell-devel%40lists.fedoraproject.org&type0-0-0=notsubstring&value0-0-0=ready&component=Package%20Review&emailtype1=substring Other pending or new reviews] (not containing "Ready" in Whiteboard] (8)


* [https://bugzilla.redhat.com/buglist.cgi?emailcc1=1&field0-0-0=status_whiteboard&bug_status=__open__&email1=haskell-devel%40lists.fedoraproject.org&type0-0-0=substr&value0-0-0=NotReady&component=Package%20Review&emailtype1=substring NotReady reviews] (40)
Other links:
* [https://bugzilla.redhat.com/showdependencytree.cgi?id=Haskell-pkg-reviews&hide_resolved=1 Haskell-pkg-reviews dependency tree]
* [https://bugzilla.redhat.com/buglist.cgi?product=Fedora&component=Package+Review&bug_status=CLOSED&emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org Closed haskell-devel package reviews]
* [https://bugzilla.redhat.com/buglist.cgi?short_desc=ghc%20haskell&short_desc_type=anywordssubstr&component=Package%20Review&bug_status=__open__&negate0=1&field0-0-0=cc&type0-0-0=substring&value0-0-0=haskell-devel%40lists.fedoraproject.org "ghc" or "haskell" reviews not CC haskell-sig]
* Old [https://bugzilla.redhat.com/showdependencytree.cgi?id=Haskell-pkg-reviews&hide_resolved=1 Haskell-pkg-reviews tracker] is no longer used


* [https://bugzilla.redhat.com/buglist.cgi?product=Fedora&component=Package+Review&bug_status=CLOSED&emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org Closed haskell-devel package reviews]
''(Previously we tracked package review requests CC to haskell-devel@lists.fedoraproject.org:''
 
[https://bugzilla.redhat.com/buglist.cgi?product=Fedora&component=Package+Review&bug_status=__open__&emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org Open haskell-devel package reviews] which are split into


(Stats last updated 10 May 2012)
* [https://bugzilla.redhat.com/buglist.cgi?bug_status=__open__&component=Package%20Review&email1=haskell-devel%40lists.fedoraproject.org&email2=nobody%40fedoraproject.org&emailassigned_to2=1&emailcc1=1&emailtype1=substring&emailtype2=exact&list_id=2201877&product=Fedora&status_whiteboard=notready&status_whiteboard_type=notregexp New unassigned reviews] ([http://bit.ly/fedora-haskell-new-reviews2 bit.ly/fedora-haskell-new-reviews2])
* [https://bugzilla.redhat.com/buglist.cgi?bug_status=__open__&component=Package%20Review&email1=haskell-devel%40lists.fedoraproject.org&email2=nobody%40fedoraproject.org&emailassigned_to2=1&emailcc1=1&emailtype1=substring&emailtype2=notequals&list_id=2201882&status_whiteboard=notready&status_whiteboard_type=notregexp Ongoing assigned reviews]
** [https://bugzilla.redhat.com/buglist.cgi?bug_status=__open__&component=Package%20Review&email1=haskell-devel%40lists.fedoraproject.org&email2=nobody%40fedoraproject.org&emailassigned_to2=1&emailcc1=1&emailtype1=substring&emailtype2=notequals&f1=flagtypes.name&list_id=2430014&o1=notequals&product=Fedora&query_format=advanced&status_whiteboard=notready&status_whiteboard_type=notregexp&v1=fedora-review%2B Assigned reviews]
** [https://bugzilla.redhat.com/buglist.cgi?bug_status=__open__&component=Package%20Review&email1=haskell-devel%40lists.fedoraproject.org&emailcc1=1&emailtype1=substring&f1=flagtypes.name&list_id=2429959&o1=equals&product=Fedora&v1=fedora-review%2B Approved open reviews] (fedora-review+)
* [https://bugzilla.redhat.com/buglist.cgi?bug_status=__open__&component=Package%20Review&email1=haskell-devel%40lists.fedoraproject.org&emailcc1=1&emailtype1=substring&field0-0-0=status_whiteboard&type0-0-0=substr&value0-0-0=NotReady NotReady stalled reviews]
'')''


= Bugs =
= Bugs =
[https://bugzilla.redhat.com/buglist.cgi?emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org&bug_status=__open__&field0-0-0=component&type0-0-0=notequals&value0-0-0=Package%20Review Non-review bugs], which can be split into:
[https://bugzilla.redhat.com/buglist.cgi?emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org&bug_status=__open__&field0-0-0=component&type0-0-0=notequals&value0-0-0=Package%20Review Non-review bugs] can be split into:


* [https://bugzilla.redhat.com/buglist.cgi?emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org&bug_status=__open__&short_desc=is%20available&short_desc_type=substring&field0-0-0=component&type0-0-0=notequals&value0-0-0=Package%20Review&field0-1-0=status_whiteboard&type0-1-0=isnull Ready Upstream Release Monitoring bugs] (URM)
* [https://bugzilla.redhat.com/buglist.cgi?emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org&bug_status=__open__&short_desc=is%20available&short_desc_type=substring All open URM bugs] (saved as [https://bugzilla.redhat.com/buglist.cgi?cmdtype=runnamed&namedcmd=haskell-available haskell-available])
* [https://bugzilla.redhat.com/buglist.cgi?emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org&bug_status=__open__&short_desc=is%20available&short_desc_type=substring&field0-0-0=component&type0-0-0=notequals&value0-0-0=Package%20Review&field0-1-0=status_whiteboard&type0-1-0=isnotnull Blocked Upstream Release Monitoring bugs] (URM)
** [https://bugzilla.redhat.com/buglist.cgi?emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org&bug_status=__open__&short_desc=is%20available&short_desc_type=substring&field0-1-0=status_whiteboard&type0-1-0=isnull Untriaged URM bugs] (saved as [https://bugzilla.redhat.com/buglist.cgi?cmdtype=runnamed&namedcmd=haskell-available:untriaged haskell-available:untriaged])
* [https://bugzilla.redhat.com/buglist.cgi?emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org&bug_status=__open__&short_desc=is%20available&short_desc_type=notregexp&field0-0-0=component&type0-0-0=notequals&value0-0-0=Package%20Review Other misc bugs]
** [https://bugzilla.redhat.com/buglist.cgi?emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org&bug_status=__open__&short_desc=is%20available&short_desc_type=substring&status_whiteboard_type=substring&status_whiteboard=:ok Triaged no missing deps] (saved as [https://bugzilla.redhat.com/buglist.cgi?cmdtype=runnamed&namedcmd=haskell-available:ok haskell-available:ok])
** [https://bugzilla.redhat.com/buglist.cgi?emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org&bug_status=__open__&short_desc=is%20available&short_desc_type=substring&status_whiteboard_type=substring&status_whiteboard=:NG Triaged missing deps] (saved as [https://bugzilla.redhat.com/buglist.cgi?cmdtype=runnamed&namedcmd=haskell-available:deps haskell-available:deps])
* [https://bugzilla.redhat.com/buglist.cgi?emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org&bug_status=__open__&short_desc=is%20available&short_desc_type=notregexp&field0-0-0=component&type0-0-0=notequals&value0-0-0=Package%20Review Package bugs]
* [https://bugzilla.redhat.com/show_bug.cgi?id=788030 Tracker for libraries with no revdeps]
* [https://bugzilla.redhat.com/show_bug.cgi?id=788030 Tracker for libraries with no revdeps]
* [https://bugzilla.redhat.com/buglist.cgi?bug_status=__open__&email1=haskell-devel%40lists.fedoraproject.org&emailcc1=1&emailtype1=notsubstring&short_desc=ghc&short_desc_type=allwordssubstr ghc bugs not CC haskell-sig]


[https://bugzilla.redhat.com/buglist.cgi?product=Fedora&bug_status=__open__&emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org All open Haskell bugs]
[https://bugzilla.redhat.com/buglist.cgi?product=Fedora&bug_status=__open__&emailcc1=1&emailtype1=substring&email1=haskell-devel%40lists.fedoraproject.org All open Haskell bugs]
Line 74: Line 111:
See also the package review links in the Packaging section.
See also the package review links in the Packaging section.


= Current packages in Fedora =
= Contributors =
[https://admin.fedoraproject.org/pkgdb/users/packages/haskell-sig Haskell SIG packages in pkgdb]
Active packagers and package maintainers:
 
* [[User:Petersen|Jens Petersen]]
See [[Haskell_package_interdependencies|package interdependencies]] for dependency graphs.
* [[User:Eclipseo|Robert-André Mauchin]]
 
* [[User:Qulogic|Elliott Sales de Andrade]]
[[File:F17-haskell-ghc-deps.svg|800px]]
* [[User:tdecacqu|Tristan de Cacqueray]]
 
* [[User:melmorabity|Mohamed ElMorabity]]
Info on [[Haskell_singleton_libraries|singleton libraries]].


= SIG Members =
Earlier contributors:
Package owners:
* [[User:Codeblock|Ricky Elrod]]
* [[JensPetersen]] (sponsor)
* [[User:Narasim|Lakshmi Narasimhan T V]]
* [[User:Mathstuf|Ben Boeckel]]
* [[User:Mathstuf|Ben Boeckel]]
* [[User:Zoglesby|zoglesby]]
* [[User:Salimma|Michel Salim]]
* [[User:Shakthimaan|Shakthi Kannan]]
* [[User:Shakthimaan|Shakthi Kannan]]
* [[User:Narasim|Lakshmi Narasimhan T V]]
* [[ConradMeyer]]
* [[BryanSullivan]]
* [[BryanSullivan]]
* [[ConradMeyer]]
* [[User:Zoglesby|zoglesby]]
* [[JeremyHinegardner]]
* [[JeremyHinegardner]]
Interested:
* [[GerardMilmeister]]
* [[TomMoertel]]
* [[User:Salimma|Michel Salim]] (sponsor)
* [[RichardJones]]
* [[PeterLemenkov]]
* [[MilesSabin]]
* [[RajeshKrishnan]]
* [[User:balor|Aidan Delaney]]
* [[User:Gakiwate|Gautam Akiwate]]
* [[User:Payas|Payas Awadhutkar]]
Former contributors:
* [[YaakovNemoy]]
* [[YaakovNemoy]]


= History =
= History =
* 2012-05-29: Fedora 17 ships with [[Features/HaskellPlatform2011.4|Haskell Platform 2011.4.0.0]])
* 2023-04 : Fedora 38 ships with [[Changes/Haskell_GHC_9.2_and_Stackage_20|ghc-9.2.6 and Stackage LTS 20]]
* 2022-11 : Fedora 37 ships with [[Changes/Haskell_GHC_8.10.7|ghc-8.10.7 and updated Stackage LTS 18]]
* 2022-05 : Fedora 36 ships with [[Changes/GHC_parallel_version_installs|ghcX.Y parallel installable packages]]
* 2021-11-02: Fedora 35 ships with [[Changes/GHC_8.10_&_Stackage_18|ghc-8.10.5 and Stackage LTS 18]]
* 2020-10-27: Fedora 33 ships with [[Changes/GHC_8.8_and_LTS16|ghc-8.8.4 and Stackage LTS 16]]
* 2020-04-28: Fedora 32 ships [[Changes/Haskell_Stackage_LTS_14|Stackage LTS 14]] package versions
* 2019-10-28: Fedora 31 ships with [[Changes/GHC_8.6|ghc-8.6.5]], Stackage LTS 13 packages, and prof and doc subpackages
* 2019-04-30: Fedora 30 ships with [[Changes/GHC_8.4|ghc-8.4.4 and Stackage LTS 12]]
* 2018-10-30: Fedora 29 ships [[Changes/Update_Haskell_to_Stackage_LTS_11|Stackage LTS 11]] package versions
* 2018-05-01: Fedora 28 ships with [[Changes/GHC_8.2|ghc-8.2.2 and Stackage LTS 10]]
* 2017-07-11: Fedora 26 ships with [[Changes/GHC_8.0|ghc-8.0.2 and Stackage LTS 8]]
* 2016-11-22: Fedora 25 ships with [[Changes/GHC_7.10|ghc-7.10.3]]
* 2015-05-26: Fedora 22 ships with [[Changes/GHC_7.8|ghc-7.8.4]]
* 2013-12-17: Fedora 20 ships with ghc-7.6.3 and packages following the revised Packaging Guidelines
* 2013-07-02: Fedora 19 ships with ghc-7.4.2
* 2013-01-15: Fedora 18 ships with [[Features/GHC741|ghc-7.4.1]]
* 2012-05-29: Fedora 17 ships with [[Features/HaskellPlatform2011.4|Haskell Platform 2011.4.0.0]]
* 2012-02-14: new haskell mailing-list for discussion
* 2012-02-14: new haskell mailing-list for discussion
* 2011-11-08: Fedora 16 ships with [[Features/GHC704|ghc-7.0.4]] and all prof subpackages merged into devel
* 2011-11-08: Fedora 16 ships with [[Features/GHC704|ghc-7.0.4]] and all prof subpackages merged into devel

Latest revision as of 16:38, 20 February 2024

Mission

The mission of the Haskell Special Interest Group is to maintain, grow, and guide the packaging of Haskell projects in Fedora.

Communication

Mailing lists

We have two mailing-lists:

Matrix and IRC

  • Matrix room: #haskell:fedoraproject.org

Updates

Follow us on Twitter.

Package versions

GHC and Stackage LTS versions

  • F39 has ghc-9.4.5 and Stackage LTS 21
  • F38 has ghc-9.2.6 and Stackage LTS 20
  • EPEL9 has ghc-8.10.7 and Stackage LTS 18
  • EPEL8 currently has ghc-8.2.2
  • EPEL7 has ghc-7.6.3 and haskell-platform-2013.2.0.0

See Haskell_Stackage_LTS and Haskell_Platform for older releases.

See Haskell_GHC_LLVM for llvm version requirements.

GHC X.Y packages

These GHC package are available for current Fedora releases and EPEL 9:

  • ghc8.10 (8.10.7) (not F37 or epel9)
  • ghc9.0 (9.0.2)
  • ghc9.2 (9.2.8)
  • ghc9.4 (9.4.5)
  • ghc9.6 (9.6.2)

They can be parallel installed.

  • If you want to make one of them default install ghcX.Y-compiler-default

Note the former ghc module streams are now deprecated.

Haskell Coprs

Coprs for EPEL 7

These versions of ghc are available:

If you have Fedora Haskell libraries installed which are not part of ghc, you will need to remove them all first (easiest just to remove ghc-base) to avoid package dependency conflicts

Tasks

  • ghc-9.4
  • add cabal-installX.Y
  • help improve FedoraReview/plugins/haskell.py
  • document ghc and package update workflow (GHC_Update_SOP)
  • package larger subset of LTS in Copr

Packaging

New Package Process

Package reviews

"ghc" or "haskell" package reviews

Other links:

(Previously we tracked package review requests CC to haskell-devel@lists.fedoraproject.org:

Open haskell-devel package reviews which are split into

)

Bugs

Non-review bugs can be split into:

All open Haskell bugs

See also the package review links in the Packaging section.

Contributors

Active packagers and package maintainers:

Earlier contributors:

History