Does anyone have recommendations for best practices for release processes?

[This post was originally a Django Commons discussion and moved to the Django Forum]

Original author: dopry

Currently, it seems like a lot of folks are doing releases manually in the python ecosystem. As a maintainer I feel like this is a lot of overhead. On most of my node.js and commercial projects I use tools like semantic release to automate versioning and changelog generation for my releases. Shifting responsibility for releases to CI/CD allows me to focus my energy on code review, testing, and community engagement. Are there any recommended tools/workflows or good example repos that do CI/CD right in the python ecosystem? Would documenting best practice for various release process (manual, tooling supported, fully automated) be something useful to the wider django commons community?