I used to have a long, detailed manual checklist here for making a release. Most of it has been replaced by using a CI system (ick). What remains here are the manual steps:
- Prepare README, NEWS, setup.py, debian/changelog for the release.
- Tag release:
git -sam "Release version x.y" foo-x.y
- Run ick. This runs tests, builds release packages, and uploads them to code.liw.fi and Debian, as needed.
- Announce on the relevant forums.
- my blog
- the announcement mailing list, if any
On version numbers
By default, my projects use X.Y as version numbers, where X changes whenever there is a really good reason to do so, and Y increments for each new release.
If there is a bug-fix-only release, then X.Y.Z can be used as the version number.