[Web-SIG] [Proposal] "website" and first-level conf

Jim Fulton jim at zope.com
Wed Mar 7 12:01:12 CET 2007


On Mar 6, 2007, at 2:56 PM, Chris Withers wrote:

> Jim Fulton wrote:
>> On Mar 3, 2007, at 11:27 PM, Chad Whitacre wrote:
>> ...
>>> Now, Jim: it looks like Zope still uses a Unix-y userland for
>>> INSTANCE_HOME, yes?
>> Yes, but I hate it.  At Zope Corporation, We're moving away from  
>> it  for a number of reasons.
>
> I actually like it a lot, still, and I haven't heard compelling  
> arguments, for me, for other things...
>
> The big plus point for me is that everything needed for one  
> deployment is in one folder.

Having everything in one folder is great for development.  It isn't  
so good for deployment, at least not on Unix.  (I can think of lots  
of reasons why it wouldn't be great on Wndows either.)  For example,  
site administrators like to keep log files together and separate from  
other files.

Even if things are all together, there's really no point in having  
separate subdirectories, typically containing only one or 2 files,  
within the instance.  In a development instance, I'd much rather have  
a single directory containing the few needed files directly.  The  
only exception to this for me would be to have a subdirectory for  
Python modules, if you have instance specific Python modules.  Having  
to look in subdirectories for configuration and log files is just a  
pain.

...

>> For development, it adds structure that isn't needed.  A Zope   
>> instance really only needs a few files.  Trying to minic some   
>> notional unix layout just adds pointless structure.
>
> It's kindof self documenting though:
>
> /etc -> config
> /bin -> scripts
> /var -> data
> /log -> logs
>
> I like that consistency, regardless of its origins...

Bit without these, you have something like:

   zope.conf
   zopectl
   runzope
   debugzope
   scriptzope
   Data.fs
   zope.log

It is pretty clear that zope.conf is a configuration file, zope.log  
is a log file, and that Data.fs.  On Unix, It's pretty clear that the  
others are scripts, because they're executable and, on Windows, they  
should have .bat or .exe suffxes.

>> The traditional complex Zope instance file layout lead to the use  
>> of  an instance "skeleton" to deal with all of the files, which  
>> led, in  turn, to a copy and hack style of configuration  
>> customization that is  inflexible and encourages cruft.
>
> I think the Zope 3 skeletons went the wrong way. The skeletons  
> work, but where they only contain config that's specific to that  
> instance. Zope 3's notions of putting python scripts (and non- 
> trivial ones at that!) and the like into the instance home made me  
> shudder...

I'm not sure if you are referring to more than scripts.  I agree that  
we shouldn't have put utility scripts in instances.  I would argue  
that only the ctl script should go in instances.  The runzope,  
scriptzope, and debugzope scripts could be completely generic and  
invoked by an instance specific ctl script.  This is what I do in my  
latest Zope 3 buildout recipes.

Otherwise, Zope 2 and Zope 3 skeletons look pretty similar to me.

>> For production deployments, we (Zope Corporation) install files  
>> into  the *real* Unix tree where site administrators want them.
>
> Not everyone runs on unix. Having a standard layout that fits into  
> a folder works cross platform to a large extent.

Only for a particular definition of "works".  No experienced Unix  
administrator would say it works on Unix. I suspect that a  
professional Windows server adminstrator would have similar concerns.

...

My original point was not to advocate a particular layout but to  
point out that different layouts will be needed in different  
situations and that mandating a particular layout was likely to cause  
problems.

Jim

--
Jim Fulton			mailto:jim at zope.com		Python Powered!
CTO 				(540) 361-1714			http://www.python.org
Zope Corporation	http://www.zope.com		http://www.zope.org





More information about the Web-SIG mailing list