This is the developers' hint guide.

If you plan on working on the icqlib/kicq projects, here are some tips
on how to avoid unnecessary breakage, make your development easier and
my job of merging your code easier, I find them useful.

o  Ask first. If your changes are major, or could possibly break
   existing code, you should always ask. If your change is minor and
   you've been working on icqlib/kicq for a while it probably isn't
   necessary to ask. But when in doubt, ask. Even if your change is
   correct, somebody may know a better way to do things.

   If you are making changes to icqlib/kicq projects, you should be
   subscribed to kicq-dev@itec.cn.ua. (Subscription address:
   kicq-dev-request@itec.cn.ua) This is a good place to ask about
   intended changes.

o  There must be a ChangeLog for every commit. (If you discover that
   you only committed half the files you meant to and need to fix that
   up, or something, you don't need a new ChangeLog entry. But in
   general, ChangeLog entries are mandatory.) Changes with out
   ChangeLog entries will be reverted.

o  Every fully finished commit should not break compilation of
   icqlib/kicq. To be sure it wouldn't, just recompile it before
   commiting your local changes to the repository. You may want to run
   "make clean all" for this. If your changes touches automake/autoconf
   stuff, run "make distclean && ./configure && make".

o  Try to keep the indenting style as it is currently! If you are
   using smart editor like emacs or Xemacs which understand commands
   enclosed in -*- at the top of the file, you already can use
   editor's indentation. These commands tells emacs to use NO
   tabulations for indentation, and indent code at 2 characters. Keep
   it in mind when you don't use emacs or you're creating a new file.

   You can add a new style in emacs. Put this few lines to your
   ~/.emacs file:

   (c-add-style "kicq"
                '((c-basic-offset . 2)
                  (c-offsets-alist
                   (substatement-open . 0)
                   (case-label . +))))

   To enable this indentation style when editing icqlib/kicq sources
   run this:

   `M-x c-set-style <RET> kicq <RET>'

   To make this style your default style put this lines to your
   ~/.emacs file:

   (add-hook 'c-mode-common-hook
             '(lambda ()
                (c-set-style "kicq")
                (setq tab-width 2)
                (setq indent-tabs-mode nil)))

o  If you are going to be changing many files in an experimental
   fashion, it probably is a good idea to create a separate branch for
   your changes.

o  Run "make depend" if you modify the source code structure (e.g. you
   add/remove include files).  It will help you to get an accurate
   compilation.

   It's recommended that you use GNU Make (if you want to use the
   depend and include features).

o  This code is distributed under the GNU General Public License and
   keep this in mind when adding code to the program.

o  If at all possible, please use CVS to get the latest development
   version of icqlib and kicq. You can do the following to get icqlib
   and kicq from anonymous CVS mirror:

   $ export CVSROOT=":pserver:anonymous@kicq.up-to-date.net:/usr/local/cvs"
   $ cvs login
     (there is no password, just hit return)
   $ cvs -z3 checkout icqlib
   $ cvs -z3 checkout kicq

   CVSROOT for developers CVS server is different. If you are
   developer of icqlib/kicq and can't remeber it, let me know.

o  To compile a CVS version of icqlib/kicq on your system, you will
   need to take several steps to setup the tree for compilation. You
   can do all these steps at once by running:

   $ make -f Makefile.cvs

   The above command create the "configure" script. Now you can run
   the configure script to create all the Makefiles.

o  Please submit patches directly to me: denis@null.net. All kinds of
   contributions are accepted.

Denis V. Dmitrienko <denis@null.net>
06 Oct 1999
