Version 1 (modified by simonmar, 3 years ago) (diff)


Release management and branches

Releases are made by the release manager, currently either Ian Lynagh or Paolo Capriotti. The release manager is also the maintainer of the stable branch, see #Branches.

Release Schedule

  • Major releases are made once per year, typically around October-November. We don't work to a fixed deadline, the release will be made when it is ready.
  • Minor releases are made throughout the year, with no fixed schedule. Generally there will be 2-3 minor releases for every major release.
  • For each release we make a release candidate first, possibly followed by further release candidates as necessary. Release candidates are announced on the glasgow-haskell-users mailing list.

Release policies

  • Tier 1 platforms must all be in a working state before the release is made. We make every effort to fix bugs in other platforms too, but bugs on Tier 2/3 platforms are not treated as release-blockers.

Release Checklist


The master branch of all repositories is the main development branch. We often call this "HEAD" for historical reasons.

There is a "stable" branch corresponding to each major release, named after the major version. For example, the stable branch corresponding to the 7.4.1 release is called ghc-7.4. Every repository (see Repositories) has a ghc-7.4 branch, so you can switch a complete tree to the branch with ./sync-all checkout ghc-7.4.

Our convention is that only the release manager modifies the stable branch. Other developers request that changes are merged to the branch in one of the following ways:

  • By moving a ticket into the "merge" state once it is fixed. Please do this if you fix a bug and the fix is suitable for the branch.
  • By emailing the release manager to ask that a patch be merged.

The release manager will usually merge patches with git cherry-pick, so patches on the branch will have different SHA-1 hashes from their corresponding patches on master. This means that you can't use tricks like git name-rev to see whether a particular patch is on the branch - just search through the output of git log ghc-7.4 instead.