Some info for instancemanager developers
========================================


Testing
-------

When you change something to instancemanager, please do some tests.
The best way to test it, is by running instancemanager on a few test
projects.  But your projects will probably not use all options.  For
instance, you may not use multiple zeo clients or you may not have
Windows.

So we need some automated testing.  Because of the nature of
instancemanager, this may be hard to do.  But at least we can try.  A
small beginning was made with doctests.  Run './tests.py' (or
'python tests.py') after you made any changes.

At the time of writing, there is just one test, in actionutils.py:
isPureDevelopmentItem().  Please try to increase this number.

If you add doctests to modules, remember to add those modules to
tests.py.


defaults and user defaults
--------------------------

Instancemanager read its configuration from defaults.py.  When you
change something here, for example you add a config option, you must
also add your changes to the skeleton/userdefaults.py file, which is a
commented out version of the defaults.py.  On install this is copied
to the .instancemanager dir in the home directory of the user.  This
allows the user to overwrite some config options.  There is a script
that automates this copying.  So the steps to take are:

- Change defaults.py

- Run 'python copy_defaults_to_userdefaults.py'.

- Manually remove a few lines from the end of the userdefaults.py
  file, following the instructions that just got printed to your
  screen.  This is a shortcoming of the
  copy_defaults_to_userdefaults.py script.
