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.6
--------

Automake 1.6 is recommended.  1.5 might be good enough.


Autoconf 2.54
--------

Autoconf 2.54 is recommended.  2.52 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,
but that has not been tested in a long while.  Go with Python 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.27 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.


Release generation
==================

Follow these steps:

* Check that the following files are updated:

	doc/Protocol-A.texi
	doc/lyskomd.texi
	README
	NEWS

* If this is release 2.1.0: remove all man-pages and this entry, and
  close bug 77.

* 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.

* Move all unresolved bugs for the milestone, if any, to a new milestone.

* Set the version number in these files:

	versions
	configure.in (in two places)
	doc/Protocol-A.texi (potentially in several places)

* Fix the Copyright statement in these files:

	scripts/update-copyright
	scripts/lyskomd-copyrights

* Write a note such as "* Release 1.9.0." in ChangeLog.

* Commit everything.

* Update the copyright statements by running

	scripts/lyskomd-copyrights

  repeatedly until nothing happens.

* Commit everything.

* Run these commands:

	./mkmi
	./configure
	make distclean    # We want to recompute all dependencies.
	./configure
	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 previous release, and ensure
  that no unexpected differences exists.

* Test the resulting archive on several architectures.  Repeat until
  no failure.

* Set a tag:

	cvs tag server-2-0-0

* Copy the tar file to the FTP server.

* 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.

* Announce the release in "Nyheter (om) LysKOM".

* Add the new version number to Bugzilla.

* Mark all resolved and verified bugs for the milestone as closed.
