[Zope-dev] breaking apart INSTANCE_HOME.

Chris McDonough chrism@zope.com
25 Jul 2003 09:52:14 -0400


Hi folks,

Since we started configuration and installation geddon on Zope 2 (which
has resulted in Zope 2.7), we've made a number of improvements in the
flexibility of file placement behaviors:

- You can specify in the config file where you want your
  lock and pid files to be placed.

- You can specify in the config file where you want your
  filestorage files to be placed.

- You can specify in the config file where you want each
  log file to be written.

- You can specify in the config file any number of
  Products directory paths and these will be knitted
  together into the Products pseudopackage.

This is good, because it makes Zope much friendlier to some filesystem
hierarchy standards which require that you don't put library and
volatile data in the same place (e.g. the Linux FHS).  But it is still a
bit monolithic.  You need an instance home directory, which must contain
(at least) these two directories:

import
Extensions

I propose that we add two more options to the config file:

import-directory
extensions-directory

These would both be multikeys which specify some number of directories
that contained importable zexp files and external methods,
respectively.  This would allow us to not require any fixed instance
home directory.  Instead, each path required by each subsystem is
specifiable by itself in the config file.

I'm sure that utilizing these options in the config file will break
things that rely on having a monolithic INSTANCE_HOME such as products
that attempt to do something like "import_dir =
os.path.join(INSTANCE_HOME, 'import').

So I propose that the stock Zope instance home install continue to
follow the old pattern (where everything is installed into a single
instance home directory), but we provide the advanced config file
options for roll-your-own packagers and advanced users.

I would like to do the same thing for the software home, but I haven't
thought much about it yet.

- C