Wiki:
https://fedoraproject.org/wiki/Changes/Haskell_GHC_9.10_and_Stackage_24

Discussion Thread:
https://discussion.fedoraproject.org/t/test-discussion/12345

**This is a proposed Change for Fedora Linux.**
This document represents a proposed Change. As part of the Changes process,
proposals are publicly announced in order to receive community feedback.
This proposal will only be implemented if approved by the Fedora
Engineering Steering Committee.

== Summary ==
Update the GHC Haskell compiler from major version 9.8 to 9.10 and Haskell
packages from Stackage LTS 23 to LTS 24 versions. It is also intended to
drop the building of profiling libraries from Haskell packages (except for
ghc itself).

== Owner ==
* Name: [[User:Petersen|Jens Petersen]]
* Email: <peter...@redhat.com>

== Detailed Description ==
For Fedora 44, the main [https://www.haskell.org/ghc/ GHC] Haskell compiler
package will be updated from version [
https://www.haskell.org/ghc/download_ghc_9_8_4.html 9.8.4] to the latest
stable [https://www.haskell.org/ghc/download_ghc_9_10_3.html 9.10.3]
release (rebasing the [https://src.fedoraproject.org/rpms/ghc/ ghc] package
from the [https://src.fedoraproject.org/rpms/ghc9.10/ ghc9.10] package).
Along with this, Haskell packages in [https://www.stackage.org Stackage]
(the stable Haskell source package distribution) will be updated from the
versions in [https://www.stackage.org/lts-23 LTS 23] to latest [
https://www.stackage.org/lts-24 LTS 24] release.
Haskell packages not in Stackage will be updated to the latest appropriate
version in the upstream [https://hackage.haskell.org Hackage] package
repository.

As noted in the summary as part of this Change it is also planned to drop
all ghc-*-prof subpackages (so-called [
https://downloads.haskell.org/ghc/latest/docs/users_guide/profiling.html
profiling libraries]), ''except for the core libraries that are part of GHC
itself for which prof libraries will continue to be built''. Building the
profiling libraries for all Haskell libraries is quite an additional
burden, and believed to get very little actual real usage: this will save
considerable build-time and also some space in the distro. Note that
ghc-*-prof subpackages are already not installed by default unless ghc-prof
is present.

== Feedback ==

== Benefit to Fedora ==
Fedora users will have the latest stable Haskell compiler release, package
tools, and current Haskell packages from latest Stackage LTS.

GHC 9.10.3 is the latest current stable version of GHC with various
enhancements and fixes (see the release notes linked in the Documentation
section for more details about new features and improvements in 9.10).

The ghc9.10 package already has a backport of the Native Code Generator
(NCG) for RiscV64, which was implemented upstream in GHC 9.12, so we can
benefit from this uplift too.

== Scope ==
* Proposal owners:
** update rawhide ghc9.8 is build against itself
** rebase ghc to 9.10.3 and obsolete ghc9.10
** update ghc-rpm-macros to disable prof subpackages for Rawhide
** refresh packaging with the latest cabal-rpm release, with -prof obsoletes
** update packages to latest [https://www.stackage.org/lts-24 Stackage LTS
24] versions using cabal-rpm
** build all the packages in a Koji sidetag repo in dependency order using
fbrnch
** push the sidetag through Bodhi to rawhide
** obsolete deprecated packages
** check that hedgewars server still builds

* Other developers: no actions should be needed



* Trademark approval: N/A (not needed for this Change)

* Alignment with the Fedora Strategy:

== Upgrade/compatibility impact ==
As mentioned -prof subpackages will dropped (except for ghc), obsoleted
from the -devel subpackages.
Any user that wants profiling of Haskell libraries will have to build it
themselves.
(In reality most profiling users probably do this already today using the
upstream package tooling.)
(If there really is wide feedback about the profiling libraries they could
be re-introduced in Fedora 44,
but that is really not expected.)

Any dropped library packages will have obsoletes added.
Otherwise there should not be any direct upgrade impact.

User's own Haskell projects might need some minor code tweaks in order to
rebuild
(see the release notes linked below).

== How To Test ==
* install ghc and cabal-install
* install pandoc, ShellCheck, ghcid, git-annex, hadolint, stack, xmonad,
Agda
* install ghc-*-devel or ghc-*-prof or ghc-*-doc
* cabal-rpm builddep <favouritepackage>; cabal install <favouritepackage>
* install ghc8.10, ghc9.0, ghc9.2, ghc9.4, ghc9.6, ghc9.8, ghc9.12, or
ghc*devel
* test upgrades of F43 Haskell packages to F44


== User Experience ==
Users will have the current stable major version of `ghc` and Haskell tools
and libraries available to them.
This makes it easier to build the latest versions of Haskell projects.

In particular `pandoc` will be updated to 3.7 and `cabal-install` to 3.12
(and also copilot 4.5).

== Dependencies ==



== Contingency Plan ==


== Documentation ==
*
https://downloads.haskell.org/~ghc/9.10.3/docs/users_guide/9.10.1-notes.html
* https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.10

== Release Notes ==
GHC has been updated to major version 9.10 and Haskell packages to Stackage
LTS 24 versions.

-- 
*Allison King*

Senior Technical Project Manager, In-Vehicle OS

Red Hat <https://www.redhat.com/>

alk...@redhat.com
<https://red.ht/sig>
-- 
_______________________________________________
devel-announce mailing list -- devel-annou...@lists.fedoraproject.org
To unsubscribe send an email to devel-announce-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel-annou...@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue
-- 
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to