This is the release procedure for making a release of matterhorn.
Before beginning, the person making the release should have access to
the platforms on which binary distributions will be built.
-
Set the
matterhornpackage version. The version string must be of the formABBCC.X.Ywhere ABBCC corresponds to the Mattermost server version supported by the release. For example, if the release supports Mattermost server version 1.2.3, the ABBCC portion of thematterhornversion should be10203. TheX.Yportion of the version corresponds to our own version namespace for the package. If the server version changes,X.YSHOULD be0.0. Otherwise the first component should increment if the package undergoes major code changes or functionality changes. The second component alone should change only if the package undergoes security fixes or other bug fixes. -
Generate a changelog entry list from the git log since the last release tag. In the changelog, include
- changes to supported server versions
- bugs fixed
- contributions received (and thank contributors)
- UI changes
- new configuration options and keybindings
- server feature support changes
The changes listed in the changelog should inform the choice of version number.
-
Commit the changelog changes and
matterhorn.cabalversion change. -
Check for a passing Travis CI build.
-
Upload to Hackage:
- Generate a
cabal sdist - Unpack the
sdistarchive - Perform a complete build on the unpacked archive
- If any issues arise, repair and go to (2)
- Otherwise,
cabal uploadthe package
- Generate a
-
Generate platform binary distributions using
mkrelease.shon the relevant platforms. -
Tag the release commit using the package version as the tag string.
-
git push --tags -
Make binary release available on GitHub by editing the pushed tag and uploading the release archives.
-
Tweet about the release using the
@matterhorn_chataccount: "We're pleased to announce the release of Matterhorn version for @mattermosthq! Get it at https://github.com/matterhorn-chat/matterhorn/releases/tag/"