286N/AaCopyright (C) 2000, 2001 Internet Software Consortium.
286N/A$Id: release,v 1.48 2001/10/23 18:44:09 gson Exp $
286N/APreparing a bind9 release
286N/AHere's a rough outline of the steps to follow in preparing a new bind9
286N/A - Update the README file
286N/A - Send the new README file to webteam@nominum.com at least 48
286N/A hours prior to the planned release and ask them to prepare
286N/A the web pages for the new version. If there have been only
286N/A minor changes, send context diffs relative to the previous
286N/A - Do a "cvs update" to check that all changes have been committed.
286N/A - Verify that the file "version" contains the correct version
286N/A number (it should have been incremented after the
286N/A - Before creating a new release branch, update the lib/*/api files
286N/A as needed. See the libtool info file for information about what
286N/A the various numbers mean.
286N/A - If building from a release branch, check that any important
286N/A bug fixes made on the mainline since the last release have
286N/A been pulled up. You can do this by comparing the CHANGES
286N/A running the script from a mainline tree:
286N/A This will list all bug fixes on the mainline that are not
286N/A on the 9.2 release branch.
286N/A shows a clean build and test status for all supported
286N/A systems and that the tests are actually being run on the
286N/A version being released (the version can be found in the
286N/A page behind the "Source tar build" link).
286N/A produce compile errors.
286N/A - Regenerate the documentation by running "make man" (mainline/9.2)
286N/A and commit it. Note that not all machines have the
286N/A necessary XML tools, but at least trebuchet, cuba,
286N/A and Scanner's machine do. Commit any files that were
286N/A - Update the copyrights. According to tale:
286N/A Go to the root of the source tree.
286N/A The scripts need to be run from there; they reference the util
286N/A subdirectory internally.
286N/A ... [I prefer to check out a fresh source tree --gson]
286N/A ... examine output, particularly any files with the "?" type, and
286N/A ... examine output, edit as necessary. mail me about anything that
286N/A ... the script should have been able to do itself. :-)
286N/A $ cvs ci -m'update_copyrights'
286N/A - Announce a CVS freeze if doing an alpha or beta release from
286N/A the mainline, or stop doing pullups if building from a release branch.
286N/A obscure build options work. This script may need some hacking if run
286N/A on anything other than NetBSD. Save the output (it's big) and look
286N/A for error and warning messages.
286N/A cd $top_of_mainline_tree
286N/A Alteratively, you can do this after building the kit, by giving
286N/A - If you can (= your system is similar enough to the one Tale is using),
286N/A check the header files for cruft by running the command
286N/A [ This step is quite imperfect and should probably be skipped
286N/A - Ensure that the JPNIC patch applies cleanly:
286N/A If you don't have the "iconv" library, you need to get it from
286N/A All hunks should have applied successfully with no offset or fuzz.
286N/A If all succeeded but some were offset or had fuzz, the patch will be
286N/A regenerated at the end of this stage.
286N/A [ Sample on netbsd ... ]
286N/A $ cd ../../.. ; : cd back to top level
286N/A ... should cleanly compile
286N/A ... should cleanly compile
286N/A Generate a fresh copy of the diffs:
286N/A - Add a marker line like " --- 9.0.0rc8 released ---"
286N/A - Tag the CVS source tree with the final tag, as in
286N/A "cvs rtag v9_0_0rc1 bind9" (mainline) or
286N/A "cvs rtag -r v9_2 v9_2_0rc8 bind9" (release branch).
286N/A - Build the release kit. This procedure differs
286N/A between the 9.0 release branch and later versions.
286N/A On the 9.0 release branch,
286N/A cd <temporary directory>
286N/A cvs export -r v9_0_0rc8 bind9
286N/A On the 9.[1-2] release branch or mainline, use the
286N/A - Build bind9 from the kit on at least one machine
286N/A and test it. Run it as a caching name server.
286N/A If you can, try resolving some IPv6 addresses and
286N/A doing queries over IPv6.
286N/A - If problems are found at this stage, fix them, move the
286N/A release tag up using "rtag -F", and respin the kit.
286N/A - Sign the distribution files with the ISC signing PGP key
286N/A and fix the permissions on the signature file:
286N/A - Verify the PGP signature:
286N/A (Look for the words "Good signature" in the output.)
286N/A - Prepare a release announcement based on the previous one.
286N/A - Copy the distribution and PGP signature files to the FTP site:
286N/A - If there is a companion binary kit for NT, sign it and release it:
286N/A - Download using FTP (or Netscape) using the URLs in the release
286N/A announcement and verify the PGP signature again
286N/A - Increment the version in the file "version"
286N/A - Announce the release on bind-announce@isc.org