Pragmatism in the real world

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!