.. _RefReleaseProcess: Release process **************************************************************************** Preparation ============================================================================ #. Version number and release branch #. Determine the appropriate version number for this release, according to :ref:`RefReleaseVersioning`. #. Update the :file:`version.txt` file to contain the new version number. #. Tickets #. Update ticket status for this release, where relevant: https://github.com/dictation-toolbox/dragonfly/issues #. Release files #. Verify that :file:`CHANGELOG.rst` includes the change log for this release. #. Verify that :file:`AUTHORS.txt` is up to date with recent contributors. #. Verify that :file:`setup.py` specifies all required dependencies, including their versions, e.g. with the ``install_requires`` and ``test_requires`` parameters. #. Verify that :file:`documentation/requirements.txt` specifies all required dependencies for building the documentation. #. Verify that :file:`MANIFEST.in` includes all necessary data files. #. Draft announcement #. Write a draft announcement text to send to the mailing list after the release process has been completed. Build and test ============================================================================ #. Test building of documentation #. Build distributions #. Test installation of distributions #. Test on PyPI test server (`test.pypi.org `__) #. Upload distributions to PyPI test server #. Test installation from PyPI test server #. Verify package is displayed correctly on PyPI test server #. Tag release #. Tag git revision as ``X.Y.Z`` #. Push to GitHub Release ============================================================================ #. Upload to GitHub #. Upload distributions to GitHub: https://github.com/dictation-toolbox/dragonfly/releases #. Trigger building of documentation on Read the Docs #. Check whether documentation was built automatically, and if not trigger it: https://readthedocs.org/builds/dragonfly/ #. Upload to PyPI server #. Upload distributions to PyPI server #. Test installation from PyPI server #. Verify package is displayed correctly on PyPI server Post-release ============================================================================ #. Announce release #. Website #. Mailing list #. Gitter channel