8ecb723fcca5ae9c251ce38920f9200f23225d9a
[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       * Run "md5sum > sbcl-x.y.z-$sfuserid" on the renamed tar files.
58         (On *BSD, it's "md5" instead of "md5sum".)
59       * Edit the digest file to add
60         "The MD5 checksums of the following distribution files are:"
61         (or "The MD5 checksum of the source distribution tarball is")
62         (or "The MD5 checksum of the following distribution file is:")
63       * Run bzip2 on the renamed tar files.
64       * Run "pgp -sta sbcl-x.y.z-$sfuserid" with appropriate numeric
65         values for x, y, and z.
66 Now we have e.g.:
67       * sbcl-0.7.0-source.tar.bz2
68       * sbcl-0.7.0-x86-openbsd-binary.tar.bz2
69       * sbcl-0.7.0-html.tar.bz2
70       * sbcl-0.7.0-wnewman.asc
71
72 for sf anonymous ftp:
73  # no longer possible now that sf doesn't provide anonftp:
74  # cd /usr/stuff/
75  # scp sbcl-x.y.z-* shell1.sourceforge.net:/home/groups/ftp/pub/sbcl/
76  # cd /usr/stuff/sbcl/
77  # for stem in NEWS README INSTALL; do
78  #   scp $stem shell1.sourceforge.net:/home/groups/ftp/pub/sbcl/$stem-x.y.z
79  # done
80 for sf 'module release' system:
81  * Upload the distribution files via anonymous ftp to
82   upload.sourceforge.net in the /incoming directory.
83  * possible shortcuts:
84     <https://sourceforge.net/project/admin/?group_id=1373>
85     <https://sourceforge.net/project/admin/editpackages.php?group_id=1373>
86     <https://sourceforge.net/project/admin/newrelease.php?package_id=1354&group_id=1373>
87  * Do the misbegotten^Wunscriptable HTTPforms thing on the sourceforge
88   project home to make the distribution files visible.
89   ** (from "Admin", then "File Releases")
90   ** "Add release" for package "sbcl", "release name"="x.y.z". (not
91      "release name"="sbcl-x.y.z")
92   ** boilerplate for "Release Notes":
93       For information about this release, see the NEWS file
94       in the distribution. The information is also available
95       in the "Change Log"/"Changes" section of the SourceForge
96       webbed description of this release.
97
98 For a new port (e.g. OpenBSD in sbcl-0.6.7) it's particularly good to
99 upload the appropriate binary distribution.
100
101 Make an announcement to sbcl-announce@lists.sourceforge.net (including
102 going to the sbcl-announce admin page to let it through the antispam
103 policy).
104
105 It's often a good idea to make a copy for me, too. (sbcl-x.y.z.tar.bz2)
106
107 Review the SourceForge web page.