Skip to content
Keith Beattie edited this page Dec 23, 2019 · 26 revisions

Notes on cutting a release

  1. Create a release branch (on GitHub) for each new major or minor release, i.e. 3.1_rel onto which all the 3.1.x releases will live.

  2. Clone repo and checkout release branch, on that release branch in your local clone:

    1. In setup.py change default_version to be the tag of the release you are creating. i.e. 3.1.0
    2. Similarly in docs/sources/conf.py change version and release to the same tag.
    3. Commit and push these changes to github (on the release branch)
  3. On github create the new release (on the release branch). This will create the 3.1.0 tag.

  4. git pull in your local repo to bring down the new release tag and check out the release branch i.e. git co 3.1_rel.

    At this point (on the release branch) a git describe --tags --dirty should show the release tag (3.1.0) and nothing else (not 3.1.0rc0-dirty, etc.)

  5. git co master and change setup.py and docs/sources/conf.py in the same places as above, but now on master change to the next "dev" version, i.e. 3.1.0dev to 3.2.0dev. Stage, check-in these changes and then tag them with a new "dev" tag: i.e. git tag 3.2.0dev, then push up to github (git push --tags or the tag won't get pushed up.)

    At this point (on master) a git describe --tags --dirty should show the dev tag (3.2.0dev) and nothing else (not 3.2.0dev-dirty, etc.)

  6. Update readthedocs so that it builds from the new tag and uses that as the default version to display.

  7. Announce the release.

For Developers

Clone this wiki locally