Review "cvs log" to see whether there's anything missing in NEWS or CREDITS. Check .sbclrc and /etc/sbclrc and any other relevant local machinery like it (e.g. ~/lib/lisp/sbcl-patches.lisp for WHN) to make sure that any local mutations you've been experimenting with locally are either integrated into the system already or commented out while you build and test it. (Or alternatively, set up your scripts to build and test SBCL in a way which instructs it to ignore .sbclrc.) Do basic tests on the system. Some useful tests are: * built-in tests, o' course ** cd tests && sh ./run-tests.sh * gcl ANSI test suite * Build and run your apps and their test suites under the system. * similarly on any other computers I have handy Bump version number up to a release version number, so that e.g. 1.2.3.45 becomes 1.2.4. Check again: "cvs diff" to make sure this isn't some mutant... Check that things are up to date: * TODO * man page and user manual (e.g. in referring to bugs) Create the distribution files: * Move customize-target-features.lisp out of the way (and anything else nuked by distclean.sh). * Run clean.sh. * Run make.sh to build the system with the final version number. * (Install on my system. Do final tests.) * Run make-doc.sh to format the documentation. -- fundamental hack to make things work on my old Debian system with newer texinfo in /usr/local/bin: $ (cd doc/manual/ ; PATH=/usr/local/bin:$PATH make html) or $ (cd doc/ ; PATH=/usr/local/bin:$PATH sh make-doc.sh) * Now that it's been verified to build itself, ** Commit the system to CVS $ cvs commit with commit log a la "release, will be tagged as sbcl_0_7_8" ** Tag the system in CVS, e.g. $ cvs tag sbcl_1_0_3 * Copy sbcl/ to sbcl-x.y.z/. (on OpenBSD "cp -pR ...", on Linux "cp -a") ** In sbcl/, *** Restore my customize-target-features.lisp. ** In sbcl/../, *** Run "ln -s sbcl-x.y.z sbcl-x.y.z--" *** Run "sh sbcl-x.y.z/binary-distribution.sh sbcl-x.y.z--". *** Run "sh sbcl-x.y.z/html-distribution.sh sbcl-x.y.z". *** (In sbcl-x.y.z/, run clean.sh and/or distclean.sh to clean up.) *** Run "sh sbcl-x.y.z/source-distribution.sh sbcl-x.y.z". ** copy the change descriptions in NEWS for this release to sbcl-x.y.z-release.notes.txt * Run "md5sum > sbcl-x.y.z-$sfuserid" on the renamed tar files. (On *BSD, it's "md5" instead of "md5sum".) * Edit the digest file to add "The MD5 checksums of the following distribution files are:" (or "The MD5 checksum of the source distribution tarball is") (or "The MD5 checksum of the following distribution file is:") * Run bzip2 on the renamed tar files. * Run "pgp -sta sbcl-x.y.z-$sfuserid" with appropriate numeric values for x, y, and z. Now we have e.g.: * sbcl-0.7.0-source.tar.bz2 * sbcl-0.7.0-x86-openbsd-binary.tar.bz2 * sbcl-0.7.0-html.tar.bz2 * sbcl-0.7.0-wnewman.asc * upload the distribution files via sftp to $sfuser,sbcl@frs.sourceforge.net to the directory /home/frs/project/s/sb/sbcl/sbcl/ (creating the directory first. The directory will be created with bad permissions, chmod it to 0775 so that other developers can upload binaries too) * possible shortcuts: sftp $sfuser,sbcl@frs.sourceforge.net * Do the misbegotten^Wunscriptable AJAX thing on the sourceforge File Manager site to make the release notes associated with the file releases ** In the File Manager interface, click on the release notes file, tick the release notes box. For a new port (e.g. OpenBSD in sbcl-0.6.7) it's particularly good to upload the appropriate binary distribution. Make an announcement to sbcl-announce@lists.sourceforge.net (including going to the sbcl-announce admin page to let it through the antispam policy). It's often a good idea to make a copy for me, too. (sbcl-x.y.z.tar.bz2) Review the SourceForge web page.