The two goals of the release process are to create a tagged commit which bumps the version file and describes changes since the last release, and to generate packages which can be uploaded to PyPI
This gist describes steps in how to achieve the release goal. There are other ways, but I am familiar with this one described below.
Assumptions