GHC Update SOP

= SOP for updating GHC in Fedora =

Note this page is still a draft and work in progress.

Updating GHC to a new version is a heavy operation and should be done with due care and consideration. You probably also need to be a provenpackager or at least have commit access to most of the haskell-sig packages and/or coordinate with haskell-sig contributors. Note further that the current stable haskell-platform release dictates the current stable version of ghc.

Generally we do not update ghc version in stable releases without a good reason because of the large overhead of rebuilding everything.

For a branched release a version update and all consequent rebuilds of ghc-* etc needs to be done in a separate buildroot dist-fX-ghc to avoid disruption and repo breakage.

Steps

 * 1) Build the new ghc version (in dist-fX-ghc if it is for a branched release)
 * 2) Wait for the buildroot to update:
 * 3) * for rawhide:
 * 4) * for dist-fX-ghc: need to check the newRepo createrepo.log by hand.
 * 5) Build hscolour with   against the new ghc
 * 6) Wait for it to appear in the buildroot as above.
 * 7) Rebuild the new ghc version against itself to fix the ABI (note particularly the ghc API lib seems particularly ABI sensitive)
 * 8) Wait for the buildroot for the new ghc build.
 * 9) Chain-build ghc-transformers and ghc-mtl
 * 10) Wait for the buildroot.
 * 11) Chain-build haskell-platform stack (use haskell-sig/rebuild rebuild.sh)
 * 12) Wait for the buildroot.
 * 13) Rebuild ghc-transformers
 * 14) Wait for buildroot.
 * 15) Rebuild ghc-mtl (maybe also ghc-utf8-string)