[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