fcc5f5f83f48721ed4c3cd75ee3f2d59e7c14692
[sbcl.git] / doc / internals-notes / release-checklist.txt
1 Review "cvs log" to see whether there's anything missing in NEWS or
2 CREDITS.
3
4 Check .sbclrc and /etc/sbclrc and any other relevant local machinery
5 like it (e.g. ~/lib/lisp/sbcl-patches.lisp for WHN) to make sure that
6 any local mutations you've been experimenting with locally are either
7 integrated into the system already or commented out while you build
8 and test it. (Or alternatively, set up your scripts to build and test
9 SBCL in a way which instructs it to ignore .sbclrc.)
10
11 Do basic tests on the system. Some useful tests are:
12  * built-in tests, o' course
13   ** cd tests && sh ./run-tests.sh
14  * gcl ANSI test suite
15  * Build and run your apps and their test suites under the system.
16  * similarly on any other computers I have handy
17
18 Bump version number up to a release version number, so that
19 e.g. 1.2.3.45 becomes 1.2.4.
20
21 Check again: "cvs diff" to make sure this isn't some mutant...
22
23 Check that things are up to date:
24  * TODO
25  * man page and user manual (e.g. in referring to bugs)
26
27 Create the distribution files:
28       * Move customize-target-features.lisp out of the way (and
29         anything else nuked by distclean.sh).
30       * Run clean.sh.
31       * Run make.sh to build the system with the final version number.
32       * (Install on my system. Do final tests.)
33       * Run make-doc.sh to format the documentation.
34         -- fundamental hack to make things work on my old Debian
35            system with newer texinfo in /usr/local/bin:
36              $ (cd doc/manual/ ; PATH=/usr/local/bin:$PATH make html)
37            or
38              $ (cd doc/ ; PATH=/usr/local/bin:$PATH sh make-doc.sh)
39       * Now that it's been verified to build itself,
40         ** Commit the system to CVS
41               $ cvs commit
42            with commit log a la
43               "release, will be tagged as sbcl_0_7_8"
44         ** Tag the system in CVS, e.g.
45               $ cvs tag sbcl_1_0_3
46       * Copy sbcl/ to sbcl-x.y.z/. (on OpenBSD "cp -pR ...", on
47               Linux "cp -a")
48         ** In sbcl/,
49            *** Restore my customize-target-features.lisp.
50         ** In sbcl/../,
51            *** Run "ln -s sbcl-x.y.z sbcl-x.y.z-<arch>-<os>"
52            *** Run "sh sbcl-x.y.z/binary-distribution.sh sbcl-x.y.z-<arch>-<os>".
53            *** Run "sh sbcl-x.y.z/html-distribution.sh sbcl-x.y.z".
54            *** (In sbcl-x.y.z/, run clean.sh and/or distclean.sh to
55                clean up.)
56            *** Run "sh sbcl-x.y.z/source-distribution.sh sbcl-x.y.z".
57         ** copy the change descriptions in NEWS for this release to
58            sbcl-x.y.z-release.notes.txt
59       * Run "md5sum > sbcl-x.y.z-$sfuserid" on the renamed tar files.
60         (On *BSD, it's "md5" instead of "md5sum".)
61       * Edit the digest file to add
62         "The MD5 checksums of the following distribution files are:"
63         (or "The MD5 checksum of the source distribution tarball is")
64         (or "The MD5 checksum of the following distribution file is:")
65       * Run bzip2 on the renamed tar files.
66       * Run "pgp -sta sbcl-x.y.z-$sfuserid" with appropriate numeric
67         values for x, y, and z.
68 Now we have e.g.:
69       * sbcl-0.7.0-source.tar.bz2
70       * sbcl-0.7.0-x86-openbsd-binary.tar.bz2
71       * sbcl-0.7.0-html.tar.bz2
72       * sbcl-0.7.0-wnewman.asc
73
74 for sf anonymous ftp:
75  # no longer possible now that sf doesn't provide anonftp:
76  # cd /usr/stuff/
77  # scp sbcl-x.y.z-* shell1.sourceforge.net:/home/groups/ftp/pub/sbcl/
78  # cd /usr/stuff/sbcl/
79  # for stem in NEWS README INSTALL; do
80  #   scp $stem shell1.sourceforge.net:/home/groups/ftp/pub/sbcl/$stem-x.y.z
81  # done
82 for sf 'module release' system:
83  # no longer possible now that sf doesn't have upload.sourceforge.net
84  # * Upload the distribution files via anonymous ftp to
85  # upload.sourceforge.net in the /incoming directory.
86  #
87  # no longer possible in the new (as of July 2009) file management system
88  # * Upload the distribution files via sftp to the uploads/ directory at 
89  #   $sfuser@frs.sourceforge.net
90  #   <https://sourceforge.net/project/admin/editpackages.php?group_id=1373>
91  #   <https://sourceforge.net/project/admin/newrelease.php?package_id=1354&group_id=1373>
92  * upload the distribution files via sftp to
93    $sfuser,sbcl@frs.sourceforge.net to the directory
94    /home/frs/project/s/sb/sbcl/sbcl/<version> (creating the directory
95    first)
96  * possible shortcuts:
97     <https://sourceforge.net/project/admin/?group_id=1373>
98     sftp $sfuser,sbcl@frs.sourceforge.net
99  # * Do the misbegotten^Wunscriptable HTTPforms thing on the sourceforge
100  # project home to make the distribution files visible.
101  # ** (from "Admin", then "File Releases")
102  # ** "Add release" for package "sbcl", "release name"="x.y.z". (not
103  #    "release name"="sbcl-x.y.z")
104  # ** boilerplate for "Release Notes":
105  #     For information about this release, see the NEWS file
106  #     in the distribution. The information is also available
107  #     in the "Change Log"/"Changes" section of the SourceForge
108  #     webbed description of this release.
109  * Do the misbegotten^Wunscriptable AJAX thing on the sourceforge File
110    Manager site to make the release notes associated with the file releases
111    ** In the File Manager interface, click on the release notes file,
112       tick the release notes box.
113
114 For a new port (e.g. OpenBSD in sbcl-0.6.7) it's particularly good to
115 upload the appropriate binary distribution.
116
117 Make an announcement to sbcl-announce@lists.sourceforge.net (including
118 going to the sbcl-announce admin page to let it through the antispam
119 policy).
120
121 It's often a good idea to make a copy for me, too. (sbcl-x.y.z.tar.bz2)
122
123 Review the SourceForge web page.