[Zope3-dev] Re: Autoconfiguring a site.zcml
Jim Fulton
jim at zope.com
Mon Apr 23 14:55:40 EDT 2007
On Apr 23, 2007, at 2:43 PM, Martijn Faassen wrote:
...
> It'd be a lot easier. You'd still have to list it for all eggs that
> you depend on directly. It would be nice if this could be automated
> as well, as being in two places to add a single dependency is more
> work than being in one place. Could be done with a special recipe,
> I think.
Except that the information belongs in your application package's
configure.zcml. site.zcml should, IMO, be a very short file that
include's your application package's configure.zcml. If you want to
write a tool that writes your configure.zcml, go for it.
I wouldn't object to a zcml configuration directive that took a
project name and included zcml files provided by it's dependencies at
run time.
> Package-level ZCML include dependencies would also mean a kind of
> duplication, too. You list dependencies in setup.py and then again
> in the package's ZCML.
You could argue that the dependencies in setup.py duplicate
information in your Python import statements -- if you wanted to.
>>> I also don't understand David's problem with buildout times. The
>>> option -N helps a lot. Jim, is there anything to say for actually
>>> making -N the default behavior of buildout?
>> No, But I can say something against it. :) Making it the default
>> would make buildout's default behavior less deterministic.
>
> I don't understand.
>
> I can see how -o is the most deterministic buildout behavior, as it
> will upgrade nothing. The next step in my mind would be -N, as it
> only installs what's not there yet. Finally there's "no option",
> which is least predictable it might start updating stuff, depending
> on what package restrictions you have. Obviously I'm not
> understanding what you mean by "deterministic".
The default behavior is to update all packages to the most recent
version that satisfies your requirements. This means that running
buildout in 2 different buildouts with the same configuration should
produce the same results, regardless of their history. I think this
is an important property that you lose with -N.
>> It is easy for people to change the default for their own use by
>> putting:
>> [buildout]
>> newest = false
>> in their ~/.buildout/default.cfg file.
>
> Ah, a trick I wasn't aware of. I will do that then in my
> buildout.cfgs, though this will indeed might cause a few surprises
> to people they might get used to it and be surprised when they need
> -N in other buildouts.
That's why I suggested putting it in: ~/.buildout/default.cfg, which
would effect only you.
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 Zope3-dev
mailing list