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
- Use http://static.openwalnut.org/download for this
- Add release to releases.html for Debian DEHS in download directory
- Release Manager: update documentation
- Release Manager: make some advertisement
- Add a News-entry
- Announce on mailing lists (openwalnut, openwalnut-dev)
- All: fixes for bugs in the release branch
- All: no adding of features in release branch
- Release Manager: for bug fix release, add tag with incremented patch number
- named "Release_MAJOR.MINOR.1" in branch "OpenWalnut_MAJOR.MINOR"