Release process checklist
I recently released a new version of rst2pdf. We don’t do this frequently and it would be very easy to get it wrong. As a result, we have a RELEASE_PROCESS.rst document in our repo that provides a step-by-step list of what to do.
I can’t emphasise enough how useful such a document is and every project should have one and I’ve used them with client projects too.
In general the following items need to be handled for release:
- Updating the change log
- Closing milestone on issue tracker and creating next one
- Creating a git tag for the release
- Creating a Release artefact on GitHub/Jira
- Creating the distribution and uploading it
- Announcing it
Each project has different things to be done for each item. For rst2pdf, we create a wheel and upload to PyPI but for rodeo, I compile binaries from the Go source code and attach to the GitHub release. We projects tend to build Docker containers and upload to a registry.
It doesn’t really matter what has to be done, the important thing is to write them down.
Then you can automate it!