Release preparation checklist

bilderbuchi edited this page Sep 9, 2014 · 1 revision

This is a checklist which must be followed when preparing a new OF release.

All the steps must be completed to successfully publish a release, so if you are currently prepare a release, go through them sequentially.

  1. Make sure your local repo is in sync with current upstream openFrameworks.
  2. Releases should have an associated milestone, and the name of the milestone will be the name of the release. If this is a quick release (e.g., fixing one significant issue), the name of the release should increment on the previous release (e.g., 0.8.2 -> 0.8.3).
  3. There can be no issues left in the milestone before a release. If there are issues, move them to the next milestone.
  4. Update the changelog. Look at/ask for a list of merged PRs since the last release tag when doing this - the policy is that any relevant changes enter the codebase via PRs, so this is much easier and higher-level than wading through commit logs. Add to the changelog in ./changes.txt. Commit this change to master. This script by @bilderbuchi compiles a list of merged PRs since the last tag.
  5. Call to dev list to ask for people to test across their different platforms / compilers. Potentially: announce a release candidate, and repeat this step until satisfied.
  6. Update the version number defines in ofConstants.h. Commit this change to master. This should be the last commit for each release.
  7. Merge master into stable (this is typically a fast-forward merge).
  8. Check out stable. Note the last/current commit SHA, this will be the release commit, and it must not be changed afterwards!
  9. Make sure you're at the release commit (on the stable branch). Create a tag at the release commit, containing only the version number, e.g. git tag 0.8.2
  10. Push stable and master to the OF repo, using the --tags option to also push the tag you just created.
  11. Site: Generate the packages (how? Arturo or Theo typically does this)
  12. Site: Change the version number of the current release on the OF Site at: https://github.com/openframeworks/ofSite/blob/master/_version.py
  13. Write an announcement mail to the developer mailing list, and an announcement tweet to Twitter, listing the version number, release commit and date, relevant changes.