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. 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 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. Upload the archives to upload.sf.net, add to the release on SF.net. Announce the release in a News item on SF.net. Announce the release on Freshmeat.net. 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.