Release Procedures

Notes on how to prepare, package and release a new version


  1. You should have the packages in requirements-dev.txt installed and run setup.
pip install -U -r requirements-dev.txt
pip install -e .
  1. Code should be checked in
hg sum --remote
  1. Tests should be passing locally
py.test -v
  1. drone and AppVeyor tests should be passing
  2. Update the changelog
  3. Read the Docs builds should be building cleanly –
  4. Run the release script in –dry-run mode and check that no errors or issues are outstanding. Specifically, check version information from bumpversion.
./ --dry-run


bumping the version, checking the build, committing tags

  1. finalize the changelog (changlog.rst)
  2. Run the release script
  1. Push the commit
hg push
  1. Verify drone builds –
  2. Verify the Appveyor build –
  3. Verify docs built –
  4. Set the default docs to the new version –
  5. upload to pypi
twine upload dist/dhp-x.y.z.tar.gz
  1. InsecurePlatformWarning - If you get this warning on python2.7+ you will need to install some additional modules
pip install pyopenssl ndg-httpsclient pyasn1
  1. Check PyPi for problems and make sure docs and package is correct –


You and the rest of the world can enjoy