[Zope-dev] Re: Five and browser-oriented components

Philipp von Weitershausen philipp at weitershausen.de
Mon Apr 14 13:11:11 EDT 2008


Malthe Borch wrote:
> On Z2, certain imports need to come from Products.Five, to play nicely 
> with ZPublisher and friends.

Not really. You can inherit from zope.publisher.browser.BrowserView and 
Five's <browser:page /> directive will magically slap 
Acquisition.Explicit into a newly-created subclass that will be 
registered as a view.

> I'd like to ask for the motivation for not patching it onto the existing 
> classes and/or modules.

Because monkey-patches are evil. And I won't accept any "buts" here. 
They're just evil, hard-to-impossible to test and most important of all, 
absolutely unfathomable for the novice developer.

> The effect of having Z2-developers import from 
> Products.Five is that they must opt out on packages that make use of 
> templates, browser views, formlib, ... --- and it adds needless complexity.

AFAIK, Plone already monkey patches formlib so you won't even have to 
change those imports.

> This split might also have prompted the Plone community to walk their 
> own way to the extend that there isn't much code reuse outside of the 
> core Zope packages (along with egg dependencies, but with our fake eggs, 
> we're almost up to par here).

I still believe the answer is my Acquisition + __parent__ patch. As 
mentionen in this thread already, it's several years old now (yikes!) 
but should merge quite cleanly, actually. Zope's own tests pass nicely, 
as do the CMF's, only Plone's tests fail in one or two places in an 
obscure way (and I'm talking about the whole ploneout testsuite here).

*IF* you'd like to be pragmatic, I'd suggest we clean up those failing 
Plone tests, merge the branch and be on our way. Yes, we *might* be 
plastering over a potential problem in the patch, but the other 9999 
tests didn't seem to be affected and intensive alpha and beta testing of 
that new Zope version would likely confirm or refute the existence of a 
serious problem. To be honest, my suspicion is that Plone is using some 
of the Five stuff in a way that it shouldn't be, hence causing a test 
failure with the cleaned up Five. Hanno removed some of the Five-raping 
procedures in Plone already, but there might be others lurking around 
and causing test failures.



More information about the Zope-Dev mailing list