Skip to content

Releasing

Pandu E POLUAN edited this page Mar 8, 2021 · 10 revisions

Preparation

  • Prepare GPG signing key
    • Update README.rst and DESCRIPTION.rst if your keys are not yet listed in those files
  • Install twine
  • Setup the .pypirc file (configuration for twine)
  • Test that signing with twine works (try uploading to test-pypi)

General Steps

  1. Make sure all PRs for the release have been merged

  2. Make sure the "aiosmtpd CI" GitHub Action on "master" has completed successfully

  3. Do the following on local, do NOT push for any step:

    • (Optional) improve/fix release.py; do NOT push
    • Fix NEWS.rst and Commit; do NOT push
    • Bump Version and Commit; do NOT push

    (You can do both in one commit)

  4. Run the qa and docs testenvs one more time

    Suggested to run housekeep.py superclean before testing.

  5. Push to your own repo ONLY, and ask ReadTheDocs to generate a documentation from your repo. Make sure that the docs is built successfully

    Fix any errors; you want the docs to be free of error before releasing.

  6. Set environment variables as needed by release.py

  7. Run release.py

    If you choose to NOT do "tag & push" during release.py, don't forget to follow up with a "tag & push" (don't forget that only annotated tags can be pushed.)

  8. Verify that latest doc build on ReadTheDocs is successful

    If you've done Step 4 properly, this should be okay

  9. Create a new GitHub release on the latest tag, and upload the following files:

    • aiosmtpd-<version>-py3-none-any.whl
    • aiosmtpd-<version>-py3-none-any.whl.asc
    • aiosmtpd-<version>.tar.gz
    • aiosmtpd-<version>.tar.gz.asc

    (All these files should exist in the dist subdirectory if you've used release.py)

  10. (Optional) Announce the release of the new version in the aio-libs Discourse

Clone this wiki locally