A guide for developers who are doing a nibabel release
In nibabel/tools, among other files, you will find the following utilities:
nibabel/tools/
|- build_release
|- release
|- compile.py
|- make_tarball.py
|- toollib.py
Make sure all tests pass.
Review the open list of issues
Run build_release from the tools directory:
cd tools
./build_release
Review and update the release notes. Review and update the Changelog file. Get a partial list of contributors:
git log "$@" | grep '^Author' | cut -d' ' -f 2- | sort | uniq
Then manually go over the git log to make sure the release notes are as complete as possible and that every contributor was recognized.
Tag the release.
Once everything looks good, run release from the tools directory.
Announce to the mailing lists.
After each release the master branch should be tagged with an annotated (or/and signed) tag, naming the intended next version, plus an ‘upstream/’ prefix and ‘dev’ suffix. For example ‘upstream/1.0.0.dev’ means “development start for upcoming version 1.0.0.
This tag is used in the Makefile rules to create development snapshot releases to create proper versions for those. The will name the last available annotated tag, the number of commits since that, and an abbrevated SHA1. See the docs of git describe for more info.
Please take a look at the Makefile rules devel-src, devel-dsc and orig-src.