page_releasing

# Release Process Documentation

# Preparation

- make sure a clean build works

- Check whether all significant changes are in CHANGELOG

- List of contributors `git log --format="* %aN <%aE>" vLASTRELEASE..HEAD | sort -u > /tmp/authors.txt`

- Check for ABI / API break, determine Version (MAJOR.MINOR.ABI.PATCH)

- Change [unreleased] to [MAJOR.MINOR.ABI.PATCH] in CHANGELOG

- Update version in CMakeList

- Commit with message: `git commit -m "Release MAJOR.MINOR.ABI.PATCH" CMakeLists.txt CHANGELOG.md

- prepare release statement / tag annotation file: copy last Tag's annotation format (basically, contributors top, new Changelog bottom

# Tagging

- `git tag --annotate --sign -F /path/to/release_statement.md vMAJOR.MINOR.ABI.PATCH`

- `git push yourrepo vMAJOR.MINOR.ABI.PATCH && hub pull-request -b {master|maint-MAJOR.MINOR}`

- let CI do its thing; if that's OK:

- `git push origin {master|maint-MAJOR.MINOR} vMAJOR.MINOR.ABI.PATCH`

- on github, mark release

# Of Archives

- `git checkout vMAJOR.MINOR.ABI.PATCH; git submodule update` should be clean

- `gnuradio/dtools/bin/roll-tarball.sh`