Release Procedures

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

Pre-Release

  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 – http://dhp.readthedocs.org/en/latest/
  4. Run the release script in –dry-run mode and check that no errors or issues are outstanding. Specifically, check version information from bumpversion.
./release.sh --dry-run

Release

bumping the version, checking the build, committing tags

  1. finalize the changelog (changlog.rst)
  2. Run the release script
./release.sh
  1. Push the commit
hg push
  1. Verify drone builds – https://drone.io/bitbucket.org/dundeemt/dhp/latest
  2. Verify the Appveyor build – https://ci.appveyor.com/project/dundeemt/dhp-dev
  3. Verify docs built – http://dhp.readthedocs.org/en/latest/
  4. Set the default docs to the new version – https://readthedocs.org/dashboard/dhp/versions/
  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 – https://pypi.python.org/pypi/dhp

Profit

You and the rest of the world can enjoy