How to release netaddr#

Here is how to go about releasing a new version of netaddr.

  • Make sure you have the necessary dependencies installed:

    pip install --upgrade wheel twine
    
  • Pull down the latest set of changes for the master branch.

    The assumption is the master branch build is green and everything works correctly (we have a CI process in place).

  • Update the top-most section in the CHANGELOG.rst with details of all notable changes since the last release that aren’t there already.

    Set the release date to the current day.

  • Decide what the new version should be (depending on the changes that will be present in this release):

    • Fixes – patch version bump

    • New features – minor version bump

    • Substantial or breaking changes – major version bump

  • Update the version numbers throughout the source code. That includes changing the currently version number in

    • netaddr/__init__.py

    • docs/source/conf.py

    and replacing all NEXT_NETADDR_VERSION instances with the new version (except for places like this file, of course).

  • Commit all changes.

  • Build and publish the package:

    make build-and-publish
    
  • Tag the release and sync it to remote repo:

    git tag -a x.y.z -m 'Release version x.y.z'
    make push_tags
    
  • Create a GitHub Release based on the tag you just pushed.

    Put the new CHANGELOG.rst contents there and add the “Full changelog” link at the end (copy and adapt from the previous release).