In this article, we describe how we handle OpenWalnut releases. This might be informative for you but is also a checklist for us. We begin with describing the organizational part. In the second section, we list the technical work for actually doing the release.
All: decide for feature freeze
All: define feature set
Project Manager: decide feasibility of features
Project Manager: assign features to developers
Project Manager: define fuzzy deadline
defines release month, exact date not reasonable
Release Manager: summarize feature set in Roadmap (website)
All: create tickets for features or assign existing tickets to target version
All: work on the tickets
Release Manager: check for progress & ensure progress
Release Manager: responsible for release
Release Manager: finally, build (technically) the release
Packaging, upload and so on
Release Manager: assign bug reports to developers using tickets
All: fix bugs, do not add features
Release Manager: decide for bug fix release, start at second step
Release Manager: create a branch for the release.
The branch is named "OpenWalnut_MAJOR.MINOR"
The branch is named with MAJOR.MINOR and does NOT include the patch number.
The 1.2.5 branch is an exception from the rule.
All: work on assigned tickets in branch only
Merge these to default regularly
Accidental commits to default are patched into release branch
Release Manager: prepare source in release branch
Change version info in VERSION file
Change version info on doc/core/doxygenConfig and doc/developer/doxygenConfig
Modify version info in tools/release/owrelease
Update the distribution package specific changelog files
for DEB packages, use "dch" to add a changelog entry
No further changes needed as the build&pack scripts manage the remaining things
Release Manager: on release, set a tag to release branch head revision
The tag is named "Release_MAJOR.MINOR.PATCH"
Release Manager: use owrelease, owpack and owrelease for release packaging (source:tools/release/)
Release Manager: upload src and binary packages, update NeuroDebian package