Commit | Line | Data |
---|---|---|
2732830a | 1 | This is a checklist for making Guile releases. |
251ca7ab JB |
2 | It's specific to the FSF's development environment; please don't put |
3 | it in the distribution. | |
2732830a | 4 | |
f8c9d497 JB |
5 | Maybe we should name Guile releases after entertaining poisons: |
6 | absinthe, etc. However, the first release containing the module | |
7 | system should be called Godot: "This is the one you've been waiting | |
8 | for." | |
f7677ff2 | 9 | |
a82d1d82 | 10 | In release 1.4: |
67ad463a MD |
11 | - remove names evalext.c: serial-map, |
12 | ramap.c: serial-array-copy!, serial-array-map! | |
deaceb4e | 13 | - remove module (ice-9 getopt-gnu-style) |
e7367a17 | 14 | - remove kw.h, scm_tc16_kw |
16a5a9a4 MD |
15 | - remove genio.h |
16 | - remove deprecated function scm_newsmob. | |
caa8de98 | 17 | |
7c1e0b12 | 18 | In release 1.5: |
894a712b DH |
19 | - remove deprecated macros: SCM_INPORTP, SCM_OUTPORTP, SCM_CRDY, SCM_ICHRP, |
20 | SCM_ICHR, SCM_MAKICHR, SCM_SETJMPBUF, SCM_NSTRINGP, SCM_NRWSTRINGP, | |
21 | SCM_NVECTORP | |
820920e6 | 22 | - remove gc-thunk (It has been replaced by after-gc-hook.) |
894a712b DH |
23 | - remove scm_sysmissing |
24 | - remove gh_int2scmb (replaced by gh_bool2scm) | |
25 | - remove scm_fseek (replaced by scm_seek) | |
26 | - remove scm_tag | |
e11f8b42 DH |
27 | - remove code related to the name property of hooks. Also, check init.c, |
28 | since the dependency between hooks and objprop will then be eliminated. | |
894a712b DH |
29 | Dirk:FIXME:: look into deprecated things in numbers.h and tags.h, don't forget |
30 | to update NEWS accordingly. | |
7c1e0b12 | 31 | |
ed8c8636 MD |
32 | Modules sort.c and random.c should be factored out into separate |
33 | modules (but still be distributed with guile-core) when we get a new | |
34 | module system. | |
35 | ||
cc914709 JB |
36 | Platforms for test builds: |
37 | SunOS (gcc and pcc) --- galapas.ai.mit.edu | |
38 | Solaris (gcc and SUN cc) --- saturn.ai.mit.edu | |
39 | NetBSD (gcc) --- repo-man.ai.mit.edu (use /home/repo/jimb) | |
40 | HP/UX (gcc, HP cc) --- nutrimat.gnu.ai.mit.edu | |
41 | ||
422b92d2 | 42 | These gentlemen have kindly offered to do pre-release testing: |
99ac53b9 MD |
43 | |
44 | Tom Tromey <tromey@cygnus.com>: | |
45 | ||
46 | alphaev5-unknown-linux-gnu | |
47 | hppa1.1-hp-hpux10.20 | |
48 | hppa1.1-hp-hpux11.00 | |
49 | mips-sgi-irix5.3 | |
50 | powerpc-ibm-aix4.2.0.0 | |
51 | powerpc-unknown-linux-gnu | |
52 | sparc-sun-solaris2.6 | |
53 | i686-pc-linux-gnu | |
54 | mips-sgi-irix6.3 | |
55 | sparc-sun-sunos4.1.4 | |
56 | ||
57 | Ian Grant <I.A.N.Grant@damtp.cam.ac.uk>: | |
58 | ||
59 | alpha-dec-osf4.0e | |
60 | ||
61 | Julian Satchell <satchell@merry.dra.hmg.gb>: | |
62 | ||
63 | dec-mips-ultrix | |
cc914709 | 64 | |
d4c83f63 JB |
65 | Perry Metzger <perry@piermont.com> |
66 | ||
67 | NetBSD | |
68 | ||
3f686b10 JB |
69 | |
70 | Release Checklists =================================================== | |
71 | ||
72 | There are basically two phases to doing a release: | |
73 | ||
74 | * "SPIFFING": Updating NEWS, README, INSTALL. Running tests. Getting | |
75 | people to try builds on various machines. Getting everything | |
76 | straightened up. | |
77 | ||
78 | * "PUNTING": Updating the version numbers. Tagging the sources. Asking | |
79 | the FSF to put the disty on ftp.gnu.org. Posting announcements. | |
80 | ||
81 | The "Spiffing" phase you might go through several times as you | |
82 | discover problems. The "Punting" phase you do only once. | |
83 | ||
84 | ||
85 | Spiffing checklist: | |
86 | ||
87 | * Do a `cvs update -A', to get rid of any sticky tags in your working | |
88 | directory. | |
89 | * Check for files that have changed a lot, but do not have up-to-date | |
fba33ff1 JB |
90 | copyright notices. This can be as simple as doing: |
91 | grep 'Copyright' * | grep -v 1999 | |
92 | and looking for files you know you've worked on a lot. | |
3f686b10 JB |
93 | * Make sure NEWS, INSTALL and the docs are up to date: |
94 | + Scan the ChangeLogs for user-visible changes, marked with an asterisk | |
95 | at the left margin. | |
96 | + Update NEWS and the Texinfo documentation as appropriate. | |
97 | + Remove the user-visible markers from the log entries once they're | |
98 | documented. | |
99 | + Check for any [[incomplete]] sections of NEWS. | |
100 | + Fact-check INSTALL. | |
e4445210 | 101 | * Make sure the downloading addresses and filenames in README are |
340a8770 | 102 | current. (But don't bump the version number yet. We do that below.) |
3f686b10 JB |
103 | * Check that the versions of aclocal, automake, autoconf, and autoheader |
104 | in your PATH match those given in README. Note that the `make | |
105 | dist' process always invokes these tools, even when all the | |
106 | generated files are up to date. | |
107 | * Rebuild all generated files in the source tree: | |
108 | + Install the .m4 files where aclocal will find them. | |
109 | + Run aclocal. | |
3f686b10 JB |
110 | + Run autoconf. |
111 | + Run autoheader. | |
14a7a25d | 112 | + Run automake. |
3f686b10 JB |
113 | * Verify that Guile builds and runs in your working directory. |
114 | * Run the test suite, in guile-modules/test-suite. | |
115 | * Commit all changes to the CVS repository. | |
116 | * Build a test distribution. | |
117 | + BEFORE doing 'make dist', configure the source tree for build | |
118 | in the same tree with configuration option --with-threads. | |
24e720c8 JB |
119 | + Make sure that readline was enabled correctly. |
120 | + Build the tree. | |
121 | (If the above steps are not done, the dependencies won't be properly | |
122 | included in the generated Makefile.in files.) | |
3f686b10 JB |
123 | + Then do 'make dist'. |
124 | * Give the test disty to various people to try. Here's what you should do: | |
125 | + Unset GUILE_LOAD_PATH. | |
126 | + Remove automake and autoconf from your path, or turn off their | |
127 | execute bits, or something. (Users must be able to build the | |
128 | disty without installing those tools.) | |
129 | + Configure, make, and install. | |
130 | + Make sure LD_LIBRARY_PATH doesn't include anything unnecessary. | |
131 | + Run the test suite on the installed version. | |
132 | + You might try the example code in the doc directory. | |
133 | ||
134 | Once you've got a disty that seems pretty solid: | |
135 | ||
136 | * Choose new interface numbers for shared libraries. | |
137 | * Update the version numbers in GUILE-VERSION and README. (There are | |
138 | many places in README that need updating!) The Guile version | |
139 | number should have one of the following forms: | |
140 | N.M - a major release | |
141 | N.M.L, where L is even - a minor release | |
142 | N.M.L, where L is odd - sources from CVS or nightly snapshot | |
143 | * Reformat the names in THANKS. | |
144 | * Do a `cvs update -A' of the whole tree, to look for any stray | |
145 | uncommitted or accidental changes. | |
146 | * Commit your changes. | |
147 | * Make one last test distribution. | |
148 | ||
149 | Punting checklist: | |
150 | ||
151 | * Add "Guile N.M released." entry to the top-level ChangeLog, and commit it. | |
152 | * Tag the entire source tree with a tag of the form "release_N_M" | |
153 | or "release_N_M_L". | |
bab4e1cc | 154 | * Do a 'make dist'. |
3f686b10 JB |
155 | * Put the distribution up for FTP somewhere, and send mail to |
156 | ftp-upload@gnu.org, asking them to put it on prep. | |
157 | * Send an announcement message to gnu-announce@gnu.org. Put a brief | |
158 | summary of the changes in this release first, then "Obtaining | |
159 | Guile", "Thanks", "About This Distribution," and "Nightly | |
160 | Snapshots." If I remember correctly, the moderator will delay it | |
161 | until the distribution appears on ftp.gnu.org. The announcement | |
162 | text should be mostly taken from Guile's README file. | |
163 | * Notify freshmeat.net, although they're probably watching anyway. | |
164 | (They got the 1.3 release just fine.) I have no idea if | |
165 | www.bowerbird.com.au will be something anyone refers to, but Guile | |
166 | does have an entry there. | |
167 | * Tweak the version numbers in GUILE-VERSION, and README to indicate | |
168 | that the sources are a snapshot again. Snapshots should have | |
169 | version numbers of the form "N.M.L", where L is odd. | |
170 | * Start a new section of the NEWS file. | |
171 | * Start a new THANKS file. | |
172 | * Send mail to majordomo-owner@cygnus.com updating the message you | |
173 | get when you ask majordomo for "info guile". |