Here are things that should be done whenever a release is prepared:
Positive build reports for each supported platform - although it is arguably less necessary for a comprehensive list if we are releasing a minor upgrade
Some kind of Standard Test Plan
Binary RPM packages
If the release is a “.0” one, we need to open a new STABLE branch
cvs tag -b REL_1_2_STABLE
Tag the with the release ID. For version 1.1.2, this
would be REL_1_1_2
cvs tag REL_1_1_2
Check out a copy via cvs export -rREL_1_1_2
Run autoconf so as to
regenerate configure from
configure.ac
Purge directory autom4te.cache so it is not included in the build
Purge out .cvsignore files; this can be done with the command find . -name .cvsignore | xargs rm
Run tools/release_checklist.sh
This does a bunch of consistency checks to make sure that various files that are supposed to contain version numbers contain consistent values.
For instance, configure should contain, for release 1.1.2:
PACKAGE_VERSION=REL_1_1_2
PACKAGE_STRING=postgresql-slony1-engine REL_1_1_2
config.h.in needs to contain the version
number in two forms; the definitions for
SLONY_I_VERSION_STRING and
SLONY_I_VERSION_STRING_DEC both need to be
updated.
src/backend/slony1_funcs.sql has
major/minor/patch versions in functions
slonyVersionMajor(),
slonyVersionMinor(), and
slonyVersionPatchlevel(). These need to be
assigned “by hand” at this point.
It sure would be nice if more of these could be assigned automatically, somehow.
Don't commit the new
configure; we shouldn't be tracking this in CVS.
make sure that the generated files from .l and .y are
created, for example slony/conf-file.[ch]
Currently this is best done by issuing ./configure &&
make all && make clean but that is a somewhat ugly approach.
Make sure that generated Makefiles and such from the previous step(s) are removed.
make distclean ought to do
that...
Generate HTML tarball, and RTF/PDF, if possible... Note that the HTML version should include *.html (duh!), *.jpg, *.png, as well as *.css
Run make clean in
doc/adminguide before generating the tarball in
order that bookindex.sgml is NOT part of the
tarball
Alternatively, delete
doc/adminguide/bookindex.sgml
Rename the directory (e.g. -
slony1-engine) to a name based on the release,
e.g. - slony1-1.1.2
Generate a tarball - tar tfvj
slony1-1.1.2.tar.bz2 slony1-1.1.2
Build the administrative documentation, and build a
tarball as slony1-1.1.2-html.tar.bz2
Make sure that the docs are inside a subdir in the tarball.
Put these tarballs in a temporary area, and notify everyone that they should test them out ASAP based on the Standard Test Plan.