[Zope3-dev] Re: Autoconfiguring a site.zcml

Martijn Faassen faassen at startifact.com
Mon Apr 23 14:43:00 EDT 2007


Jim Fulton wrote:
> 
> On Apr 23, 2007, at 2:14 PM, Martijn Faassen wrote:
[snip]
>> As far as I can determine from this thread (I have some difficulty 
>> following parts of David's long mail as well) you two are agreeing. :)
>>
>> Jim, is it correct that you'd like the zope 3 recipe to grow an option 
>> to auto-construct a site.zcml based on egg dependencies?
> 
> No.  I suggested that packages that have ZCML and that depend on other 
> packages that have ZCML should include the ZCML of the packages they 
> depend on.  If this was common practice, then I don't think that 
> constructing a site ZCML would be that hard.

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.

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. This is tolerable in most cases though. It wouldn't 
work for a Grok based package depending on any external packages, but 
that's Grok's problem.

>> Tres's argument is that since there is no system to override ZCML 
>> auto-inclusion of configuration should not be implemented yet. But Jim 
>> seems to disagree with this (and I do too).
> 
> There isn't a good way to cancel configuration done by included 
> packages.  I've found that in practice this usually doesn't matter, but 
> I agree with Tres that it is a significant hole.

Yeah, I agree with you that it usually doesn't matter, and I agree with 
Tres that it is a significant hole. Where Tres seems to disagree with 
you and me is that he doesn't want people to include ZCML.

>> 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".

I just find myself typing -N a lot, and get annoyed when I forget it.

>  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.

Regards,

Martijn



More information about the Zope3-dev mailing list