These are things not to be forgotten when making a Supybot release: Make sure the RELNOTES has "Version MAJOR.MINOR.PATCHLEVEL" at the top. Make sure the ChangeLog has been ordered by importance. Feature additions first, changes second, fixes last (if at all) Make sure the ChangeLog has been given a proper header and that its First change is "* Version MAJOR.MINOR.PATCHLEVEL!". Update the version in conf.py. Update the version in setup.py. Update the version in scripts/supybot Make sure the man pages are up-to-date. Commit these updates, even though it seems useless. Make a release-MAJOR_MINOR_PATCHLEVEL tag. (cvs tag ) Make a release-MAJOR_MINOR_PATCHLEVEL-branch branch tag. (cvs tag -b ) Remove test directory from the directory. Remove CVS directories from the directory. Remove sandbox directory from the directory. Remove all dotfiles (.cvsignore, etc.) from the directory. Move the supybot/ directory to Supybot-MAJOR.MINOR.PATCHLEVEL Create .tar.gz: tar czvf Supybot-MAJOR.MINOR.PATCHLEVEL.tar.gz Create .tar.bz2: tar cjvf Supybot-MAJOR.MINOR.PATCHLEVEL.tar.bz2 Create .zip: zip -r Supybot-MAJOR.MINOR.PATCHLEVEL.zip Add the release to the supybot package in SF.net. The version should be Supybot-MAJOR.MINOR.PATCHLEVEL Upload the archives to upload.sf.net, add to the release on SF.net. Announce the release in a News item on SF.net. The subject should be MAJOR.MINOR.PATCHLEVEL Released! Announce the release on Freshmeat.net. The version should be MAJOR.MINOR.PATCHLEVEL Announce the release on PyPI via "python setup.py register". Announce the release on the forums. Announce the release on comp.lang.python and comp.lang.python.announce. Add a topic to #supybot announcing the release. Send a GPG-signed tar.gz to jamessan for packing in Debian. Update the version in version.txt and upload to the website. Generate the documentation and upload to the website.