Release Instructions ==================== Here's some info on what needs to be done before each release: - Update the CHANGELOG (add any needed entries and update the version heading) - Update the version number in ``__about__.py`` - Run ``python -m instrumental.parse_modules`` from the Instrumental directory to regenerate ``driver_info.py`` - [Locally build and review the documentation] - Verify the PyPI description (generated from ``README.rst``) is valid: - ``python setup.py sdist`` - ``twine check dist/*`` - Commit and push these changes - Wait to verify that the builds, tests, and documentation builds all succeed - Tag the commit with the version number and push the tag - ``git tag -m "Release 0.x" 0.x`` - ``git push --tags`` - Set up the release info on GitHub - Go to releases, "Draft a new release" - Choose the newly pushed tag - Copy in the CHANGELOG section for this release, convert headings to use ``###`` - Check "This is a pre-release" - Click "Publish release" (DO NOT save as a draft. This will mess up the Github Actions you'll never publish to TestPyPI) - Wait for PyPI GitHub action to run, verify upload succeeded - Uncheck "This is a pre-release" and re-publish - Verify that the PyPI GitHub action has deployed to the real PyPI