Release process

Preparation

  1. Version number and release branch

    1. Determine the appropriate version number for this release, according to Release versioning.

    2. Update the version.txt file to contain the new version number.

  2. Tickets

    1. Update ticket status for this release, where relevant: https://github.com/dictation-toolbox/dragonfly/issues

  3. Release files

    1. Verify that CHANGELOG.rst includes the change log for this release.

    2. Verify that AUTHORS.txt is up to date with recent contributors.

    3. Verify that setup.py specifies all required dependencies, including their versions, e.g. with the install_requires and test_requires parameters.

    4. Verify that documentation/requirements.txt specifies all required dependencies for building the documentation.

    5. Verify that MANIFEST.in includes all necessary data files.

  4. Draft announcement

    1. Write a draft announcement text to send to the mailing list after the release process has been completed.

Build and test

  1. Test building of documentation

  2. Build distributions

  3. Test installation of distributions

  4. Test on PyPI test server (test.pypi.org)

    1. Upload distributions to PyPI test server

    2. Test installation from PyPI test server

    3. Verify package is displayed correctly on PyPI test server

  5. Tag release

    1. Tag git revision as X.Y.Z

    2. Push to GitHub

Release

  1. Upload to GitHub

    1. Upload distributions to GitHub: https://github.com/dictation-toolbox/dragonfly/releases

  2. Trigger building of documentation on Read the Docs

    1. Check whether documentation was built automatically, and if not trigger it: https://readthedocs.org/builds/dragonfly/

  3. Upload to PyPI server

    1. Upload distributions to PyPI server

    2. Test installation from PyPI server

    3. Verify package is displayed correctly on PyPI server

Post-release

  1. Announce release

    1. Website

    2. Mailing list

    3. Gitter channel