Release preparation checklist
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.
(bullet list instead of numbers until it is complete. Please help in fleshing this out)
-
Make sure your local repo is in sync with current upstream OF.
-
Decide which version number the release should have (if not already decided - milestone name!).
-
Make sure there are no more open issues in the milestone for the release in question. If there are any issues remaining, and they are not to be included in the upcoming release, push them back to the next milestone, or ask the issues section leader to do so. Either way, the milestone must be completed before proceeding.
-
Compile a 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
OF/changes.txt
, commit tomaster
. (Christoph: I have a script for that, I hope I can automate it soon-ish, for now I'll send the list over the mailing list) -
Make sure the version number defines in
ofConstants.h
are updated! If needed, change them, commit tomaster
. Note: this should be the last commit for each release. -
Merge
master
intostable
! -
(Testing procedure to make sure everything compiles. If stuff fails, fix it in
master
, and merge intostable
) Note: call to dev list to ask for people to test across their different platforms / compilers. -
Check out
stable
. Note the last/current commit SHA, this will be the release commit, and it must not be changed afterwards! -
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
-
Push
stable
andmaster
to the OF repo, using the--tags
option to also push the tag you just created. -
Site: Generate the packages (how? Arturo typically does this)
-
Site: Change the version number of the current release on the OF Site at: https://github.com/openframeworks/ofSite/blob/master/_version.py
-
Write an announcement mail to the developer mailing list, listing the version number, release commit and date, relevant changes.
-
(Publish to twitter etc.?)