[Zope-dev] breaking apart INSTANCE_HOME.

Chris McDonough chrism@zope.com
25 Jul 2003 11:15:22 -0400


On Fri, 2003-07-25 at 10:30, Fred L. Drake, Jr. wrote:
> 
> Chris McDonough writes:
>  > I propose that we add two more options to the config file:
>  > 
>  > import-directory
>  > extensions-directory
> 
> I'd like to suggest that we call these "imports" and "extensions", to
> be parallel with the "products" multikey.

Yup, that sounds better.

> For products, we use the specified directories to add to the Products
> package, but that makes sense given that the base Products package is
> a required component.
> 
> For imports and extensions, we should consider using the specified
> directories *instead* of the default.  This is easy enough; if the
> directories are given as relative directories, they should be resolved
> relative to config.instancehome; the schema can then include the
> defaults and very little new code will be needed.

Actually,  both of these directories have historically worked in much
the same way as the Products package does.

A software home may have (actually currently must have) an "import"
directory.  Zope currently slurps various TTW "examples" from a zexp
file in the software home import directory.  I'd really like to dump
this dependency, but it would take a bit of work.

The Extensions directory... errr.. this should probably not be in a
software home anymore.  I can't think of anything that would break were
it to not be there anymore (besides products that depend on the physical
layout of the software home, which shouldn't exist).

>  > 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').
> 
> Any product that does that will prove fragile eventually.  We just
> need to make sure the core doesn't do anything like that.  ;-)

Personally, I think we should just hardcode '/home/fred/zope/import'
into the core as the import directory and be done with it. ;-)

- C