This file contains some information intended for the developers of lyskomd. It is probably only useful if you have access to the CVS repository (there is no anoncvs access at this time) or if you are about to make a new release of lyskomd. See also doc/lyskomd.texi. Support programs ================ It is important to use the correct version of some support programs when creating the distribution. (This section is not relevant if you are using a normal release -- these tools are only needed when creating the distribution.) Automake 1.7.6 -------- Automake 1.7.6 is recommended. To get decent handling of locating the python binary you need to apply a patch that can be found at http://sources.redhat.com/cgi-bin/gnatsweb.pl?database=automake. The relevant problem report number is 398. The CVS version of automake contains a better fix, but the lyskomd code is not yet updated to use it. Autoconf 2.56 -------- Autoconf 2.56 is recommended. 2.55 might be good enough. Perl 5.6.1 ---- The perl version should not matter. Python 2.1 ------ The version of Python should not matter. 1.5 should be good enough. Go with Python 2.1, Python 2.2.1 or newer. Bison and flex -------------- You may need the Gnu tools bison and flex. The standard lex and yacc are not flexible enough. You should have bison version 1.35 or later and flex version 2.5.4 or later. DejaGnu 1.4.2 ------- You need a recent DejaGnu release. DejaGnu in turn needs TCL and expect. See README. Texinfo 4.2 ------- You need a recent version of GNU texinfo to process the documentation. Version 4.2 is recommended. Version 4.0 is too old. Release generation ================== Follow these steps: * Check that all bugs refered to in doc/Protocol-A.texi are still open. (Search for "bugzilla" to find them.) * Check if new versions of the third party packages mentioned in AUTHORS are available. If so, consider upgrading them. However, it is not a requirement for a release that all third party packages are up-to-date. * Run make distcheck and make sure it works. * Check that you can unpack the resulting archive, and then run ./configure --prefix=/tmp/foo make install Note that the "-C" option isn't used, and that there is no intermediate "make" step (those more normal methods of compilation are tested thoroughly by the Xenofarm). * Check that the following files are updated: doc/Protocol-A.texi doc/lyskomd.texi README NEWS * Run doc/Protocol-A.texi through M-x ispell. * Run the testsuite with the EXTENDED tests (search for EXTENDED in src/server/testsuite/lyskomd.0/gen-*.py). This requires some patience. Be sure to reset EXTENDED to 0 when you are done. * Define TYPE_CHECK_COMPILATION in misc-types.h and recompile. Check that the error messages are sane. Undo the change. * Use src/server/testsuite/lyskomd.0/summarize.sh * Move all unresolved bugs for the milestone, if any, to a new milestone. * Set the version number in these files: versions configure.in doc/Protocol-A.texi * Fix the Copyright statement in these files: scripts/update-copyright scripts/lyskomd-copyrights * Write a note such as "* Release 1.9.0." in ChangeLog. * Make sure the release date is properly set in NEWS and doc/Protocol-A.texi. * Commit everything. * Update the copyright statements by running scripts/lyskomd-copyrights repeatedly until nothing happens. * Commit everything. * Wait until the Xenofarm has built the package and tested it. * Run these commands: ./mkmi ./configure -C make distclean # We want to recompute all dependencies. ./configure -C make check # Recompute them. make distcheck Make sure that the host where you do this have TeX installed, so that you ensure that the dvi target is working. * Compare the resulting file with the file in the Xenofarm build. There should be no noteworthy differences. Discard the resulting file and use the distribution from Xenofarm, as that is the distribution that has received a lot of testing. * Compare the distribution with the previous release, and ensure that no unexpected differences exists. * Test the distribution on kom.lysator.liu.se and possibly more machines. Repeat until no failure. * Sign the archive using GPG: gpg -s -b lyskom-server-2.0.7.tar.gz * Set a tag: cvs tag server-2-0-0 * Copy the tar file and the GPG signature to the FTP server and the Web server: /lysator/ftp/pub/lyskom/server/ /lysator/www/www-pages/html/lyskom/ * Create a diff. tar xfz /lysator/ftp/pub/lyskom/server/lyskom-server-1.9.0.tar.gz tar xfz /lysator/ftp/pub/lyskom/server/lyskom-server-2.0.0.tar.gz diff -u --recursive --unidirectional-new-file \ lyskom-1.9.0 lyskom-server-2.0.0 Publish the diff only if it works and is small enough. * Add the new version number to Bugzilla. * Mark all resolved and verified bugs for the milestone as closed. * Update /lysator/www/www-local/lyskom/index.html * Update /lysator/www/www-local/lyskom/index-en.html * Update /lysator/www/www-local/lyskom/lyskom-server/index.html * Update /lysator/www/www-local/lyskom/lyskom-server/NEWS.txt * Update FIXME? and make sure to add the three automatically generated files in doc/protocol-a-*.txt there. * Publish the protocol specification using the update-www target of doc/Makefile. Be careful! Check that nothing in the WWW setup has changed before running the make target. Make sure that the automatically generated protocol specification files (such as http://www.lysator.liu.se/lyskom/protocol/11.1/protocol-a-full.txt) are accessible from /lysator/www/www-local/lyskom/protocol/index.html * Announce the release in "Nyheter (om) LysKOM". * Announce the release on Freshmeat. * Announce the release in "News about LysKOM" in com.lysator.liu.se.