From Fedora Project Wiki
 
(28 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name.  This keeps all change proposals in the same namespace -->
= Haskell GHC 9.2 & Stackage LTS 20 =
 
= Haskell GHC 9.0 & Stackage LTS 19 =


== Summary ==
== Summary ==
The GHC Haskell compiler will be updated from major version 8.10 to 9.0,
The GHC Haskell compiler will be updated from major version 8.10 to 9.2,
and Haskell packages will be updated from Stackage LTS 18 to LTS 19 versions.
and Haskell packages will be updated from Stackage LTS 18 to LTS 20 versions.


== Owner ==
== Owner ==
Line 21: Line 19:


== Current status ==
== Current status ==
[[Category:ChangePageIncomplete]]
[[Category:ChangeAcceptedF38]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
Line 31: Line 29:
<!-- [[Category:SystemWideChange]] -->
<!-- [[Category:SystemWideChange]] -->


* Targeted release: [[Releases/37 | Fedora Linux 37 ]]  
* Targeted release: [[Releases/38 | Fedora Linux 38 ]]  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
Line 39: Line 37:
ON_QA -> change is fully code complete
ON_QA -> change is fully code complete
-->
-->
* FESCo issue: <will be assigned by the Wrangler>
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/Y55VP42TUSNVJCJVCUZHBXKZPXQU4JCX/ devel thread]
* Tracker bug: <will be assigned by the Wrangler>
* FESCo issue: [https://pagure.io/fesco/issue/2783 #2783]
* Release notes tracker: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=2080355 #2080355]
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/827 #827]


== Detailed Description ==
== Detailed Description ==
For Fedora 37, the GHC Haskell compiler will be updated from version 8.10.5 to the latest stable 9.0.2 release (rebasing from the ghc9.0 package).
For Fedora 38, the GHC Haskell compiler will be updated from version 8.10.7 to the latest stable 9.2.6 release (rebasing from the ghc9.2 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 LTS 18 to latest LTS 19 release.
Along with this, Haskell packages in [https://www.stackage.org Stackage] (the stable Haskell source package distribution) will be updated from the versions in LTS 18 to latest LTS 20 release.
Haskell packages not in Stackage will be updated to the latest appropriate version in the upstream [https://hackage.haskell.org Hackage] package repository.
Haskell packages not in Stackage will be updated to the latest appropriate version in the upstream [https://hackage.haskell.org Hackage] package repository.


Line 54: Line 53:
Fedora users will have the latest stable Haskell compiler release, package tools, and current Haskell packages from Stackage LTS.
Fedora users will have the latest stable Haskell compiler release, package tools, and current Haskell packages from Stackage LTS.


GHC 9.0 is first major release of the GHC 9 series and features performance improvements, new language extension features (in particular Linear types support), and bugfixes (see the release notes linked in the Documentation section for more details).
GHC 9.2 is the current recommended version of GHC 9 and features performance improvements (particularly for aarch64 (new Native Code Generator) and s390x (llvm backend enabled with the new Hadrian build system), new language extension features (in particular Linear types support), and bugfixes (see the release notes linked in the Documentation section for more details).


== Scope ==
== Scope ==
* Proposal owners:
* Proposal owners:
** update ghc8.10 is build against itself
** update ghc8.10 is build against itself and use bundled libffi [done]
** rebase ghc to 9.0.2
** update ghc9.0 is build against itself [done]
** update ghc-rpm-macros to the final version for F37
** rebase ghc to 9.2.6 [done]
** refresh packagings with the latest cabal-rpm release
** update ghc-rpm-macros to the final version for F38 [done]
** update packages to latest [https://www.stackage.org/lts-19 Stackage LTS 19] versions using cabal-rpm
** refresh packagings with the latest cabal-rpm release [done]
** build all the packages in a Koji sidetag repo in dependency order using fbrnch
** update packages to latest [https://www.stackage.org/lts-20 Stackage LTS 20] versions using cabal-rpm [updated to lts-20.8]
** push the sidetag through Bodhi to Rawhide before the mass rebuild
** build all the packages in a Koji sidetag repo in dependency order using fbrnch [done in f38-build-side-62436]
** push the sidetag through Bodhi ([https://bodhi.fedoraproject.org/updates/FEDORA-2023-7a3a4921e3/ update])


* Other developers: no actions should be needed
* Other developers: no actions should be needed
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


<!-- * Release engineering: [https://pagure.io/releng/issues #Releng issue number] REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- * Release engineering: [https://pagure.io/releng/issues #Releng issue number] REQUIRED FOR SYSTEM WIDE CHANGES -->
Line 86: Line 85:
Otherwise there should not be any direct upgrade impact.
Otherwise there should not be any direct upgrade impact.


Users' Haskell projects will get built with ghc-9.0 when they next build them and might need some minor code tweaks.
Users' Haskell projects will get built with ghc-9.2 when they next build them and might need some minor code tweaks.


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->


== How To Test ==
== How To Test ==
* install ghc and cabal-install
* install ghc and cabal-install
* install pandoc, ShellCheck, git-annex, hadolint, stack
* install pandoc, ShellCheck, ghcid, git-annex, hadolint, stack, xmonad
* install ghc-*-devel or ghc-*-prof or ghc-*-doc
* install ghc-*-devel or ghc-*-prof or ghc-*-doc
* cabal-rpm builddep <favouritepackage>; cabal install <favouritepackage>
* cabal-rpm builddep <favouritepackage>; cabal install <favouritepackage>
* test upgrades of F36 Haskell packages to F37
* test upgrades of F37 Haskell packages to F38


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->


== User Experience ==
== User Experience ==
Line 105: Line 102:
This makes it easier to build the latest versions of Haskell projects.
This makes it easier to build the latest versions of Haskell projects.


In particular `cabal-install` will be updated from 3.2 to 3.4.
In particular `cabal-install` will also be updated from 3.2 to 3.6.


== Dependencies ==
== Dependencies ==
Line 115: Line 112:
== Contingency Plan ==
== Contingency Plan ==
* Contingency mechanism: (What to do?  Who will do it?)
* Contingency mechanism: (What to do?  Who will do it?)
** Change owner will drop the new builds and revert back to the versions in F36.
** Change owner will drop the new builds and revert back to the versions in F37
* Contingency deadline: Beta Freeze
* Contingency deadline: Beta Freeze


Line 124: Line 121:
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
* Blocks release? N/A (not a System Wide Change), Yes/No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks release? N/A (not a System Wide Change), Yes/No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->


== Documentation ==
== Documentation ==
* https://www.haskell.org/ghc/blog/20210204-ghc-9.0.1-released.html
* https://downloads.haskell.org/~ghc/9.0.2/docs/html/users_guide/9.0.1-notes.html
* https://downloads.haskell.org/~ghc/9.0.2/docs/html/users_guide/9.0.1-notes.html
* https://www.haskell.org/ghc/blog/20211225-ghc-9.0.2-released.html
* https://downloads.haskell.org/~ghc/9.2.6/docs/html/users_guide/9.2.1-notes.html
* https://downloads.haskell.org/~ghc/9.0.2/docs/html/users_guide/9.0.2-notes.html


== Release Notes ==
== Release Notes ==
The Haskell GHC compiler has been updated from 8.10.5 to 9.0.2 with many improvements.
The Haskell GHC compiler has been updated from 8.10.7 to 9.2.6 with many improvements.

Latest revision as of 15:17, 1 March 2023

Haskell GHC 9.2 & Stackage LTS 20

Summary

The GHC Haskell compiler will be updated from major version 8.10 to 9.2, and Haskell packages will be updated from Stackage LTS 18 to LTS 20 versions.

Owner

Current status

Detailed Description

For Fedora 38, the GHC Haskell compiler will be updated from version 8.10.7 to the latest stable 9.2.6 release (rebasing from the ghc9.2 package). Along with this, Haskell packages in Stackage (the stable Haskell source package distribution) will be updated from the versions in LTS 18 to latest LTS 20 release. Haskell packages not in Stackage will be updated to the latest appropriate version in the upstream Hackage package repository.

Feedback

Benefit to Fedora

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

GHC 9.2 is the current recommended version of GHC 9 and features performance improvements (particularly for aarch64 (new Native Code Generator) and s390x (llvm backend enabled with the new Hadrian build system), new language extension features (in particular Linear types support), and bugfixes (see the release notes linked in the Documentation section for more details).

Scope

  • Proposal owners:
    • update ghc8.10 is build against itself and use bundled libffi [done]
    • update ghc9.0 is build against itself [done]
    • rebase ghc to 9.2.6 [done]
    • update ghc-rpm-macros to the final version for F38 [done]
    • refresh packagings with the latest cabal-rpm release [done]
    • update packages to latest Stackage LTS 20 versions using cabal-rpm [updated to lts-20.8]
    • build all the packages in a Koji sidetag repo in dependency order using fbrnch [done in f38-build-side-62436]
    • push the sidetag through Bodhi (update)
  • Other developers: no actions should be needed


  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Objectives:

Upgrade/compatibility impact

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

Users' Haskell projects will get built with ghc-9.2 when they next build them and might need some minor code tweaks.


How To Test

  • install ghc and cabal-install
  • install pandoc, ShellCheck, ghcid, git-annex, hadolint, stack, xmonad
  • install ghc-*-devel or ghc-*-prof or ghc-*-doc
  • cabal-rpm builddep <favouritepackage>; cabal install <favouritepackage>
  • test upgrades of F37 Haskell packages to F38


User Experience

Users will have the most recent stable major version of ghc and Haskell libraries and tools available to them. This makes it easier to build the latest versions of Haskell projects.

In particular cabal-install will also be updated from 3.2 to 3.6.

Dependencies

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?)
    • Change owner will drop the new builds and revert back to the versions in F37
  • Contingency deadline: Beta Freeze
  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No

Documentation

Release Notes

The Haskell GHC compiler has been updated from 8.10.7 to 9.2.6 with many improvements.