Skip to content

Commit

Permalink
RELEASES: better step ordering, mention other packages
Browse files Browse the repository at this point in the history
  • Loading branch information
jtdaugherty committed Feb 8, 2018
1 parent 43dc12e commit 29fbb6b
Showing 1 changed file with 17 additions and 8 deletions.
25 changes: 17 additions & 8 deletions RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@
Matterhorn Release Process
==========================

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.
This is the release procedure for making a release of `matterhorn` and
its related packages, `mattermost-api` and `mattermost-api-qc`. Before
beginning, the person making the release should have access to the
platforms on which binary distributions will be built.

1. Set the `matterhorn` package version. The version string must be of
the form `ABBCC.X.Y` where ABBCC corresponds to the Mattermost
Expand All @@ -18,6 +19,9 @@ the platforms on which binary distributions will be built.
change only if the package undergoes security fixes or other bug
fixes.

Also set the versions of the API packages similary depending on what
changed in each one.

2. Generate a changelog entry list from the git log since the last
release tag. In the changelog, include

Expand All @@ -31,21 +35,26 @@ the platforms on which binary distributions will be built.
The changes listed in the changelog should inform the choice of
version number.

3. Commit the changelog changes and `matterhorn.cabal` version change.
Also check the dependency version bounds for the `mattermost-api` and
`mattermost-api-qc` packages in case those changed or need to be
updated.

3. Commit the changelog changes and Cabal version changes for each
package.

4. Check for a passing Travis CI build.

5. Upload to Hackage:
5. Generate platform binary distributions using `mkrelease.sh` on the
relevant platforms.

6. Upload each package to Hackage, starting with `mattermost-api`:

* Generate a `cabal sdist`
* Unpack the `sdist` archive
* Perform a complete build on the unpacked archive
* If any issues arise, repair and go to (2)
* Otherwise, `cabal upload` the package

6. Generate platform binary distributions using `mkrelease.sh` on the
relevant platforms.

7. Tag the release commit using the package version as the tag string.

8. `git push --tags`
Expand Down

0 comments on commit 29fbb6b

Please sign in to comment.