[Zope3-dev] Re: RFC: The browser:page compromise

Philipp von Weitershausen philipp at weitershausen.de
Thu Apr 20 17:14:09 EDT 2006


Tres Seaver wrote:
> Philipp von Weitershausen wrote:
>>> Tres Seaver wrote:
>>>
>>>> - Introducing new deprecation warnings in "third-dot" releases is
>>>>   probably inappropriate:
>>>
>>> When we have we done this?
> 
> 2.9.1 just did it (see below).
> 
>>>> - Deprecating an API without cleaning up *all* core uses is a *lie*;
>>>
>>> In some of the few cases where this happened was oversight and not
>>> intentional. When you deprecate something, none of the core should still
>>> use it. I think that's pretty clear.
> 
> Zope 2.9.0 shipped deprecating the OFS.content_types module without
> removing all uses (I cleaned that up back in January).

Wow, that sucks.

> Zope 2.9.1 deprecated zLOG without removing all uses:  testrunner output
> is *still* littered with deprecation warnings for zLOG. As far as I'm
> concerned, that means 'zLOG' is *not* deprecated in the 2.9.x release
> line, and may not therefore be ripped out unitl the appropriate interval
> *after* 2.10 (i.e., in 2.12, not 2.11).

Yes, I was quite annoyed by that too. In fact, I'm a bit annoyed by some
weird deprecation warnings in Zope 2 (zLOG, ZClasses, some ZCatalog
index) that still exist! I know who added all of them, I can assure you,
it wasn't me...

>>>> - Deprectaion of an older, stable alternative, *no matter how grotty,*
>>>>   should go hand in hand with *lots* of confidence that the new favored
>>>>   alternative really is superior, and by enough margin to make the
>>>>   switch worthwhile.  In my mind, this means that the new
>>>>   implementation needs to be rolled out *in production* and tested in
>>>>   the wild *before* we can deprecate the older alternative.
>>> I think that's a big burden for refactorings. Under such a rule, Jim
>>> wouldn't be allowed to roll out neither his adapter registry
>>> improvements nor his Component Architecture simplification.
> 
> Refactorings *need* a bigger burden than we have recently been imposing:
> 
>   - Doing a refactoring right means adding BBB code, which itself
>     increases the maintenance burden for core developers.
> 
>   - As an example, the twisted server became the *default* in Zope 3.2
>     in spite of the fact that it broke ZEO because the developer who
>     landed the change doesn't use ZEO, and hence missed seeing the
>     damage.

I guess we didn't have enough tests. Now we have a test that exercises
ZEO. Plus, we dealt with this problem before any final release (perhaps
even before the beta?). That's what alpha and beta phases are for...

>   - The packaging changes introduced in the 2.9 release cycle broke
>     usecases which many developers care about ('make inplace' is broken,
>     instance home testing broke, etc.)  Worse, and ironically, the
>     breakage was incurred on behalf of 'zpkg', which is itself slated
>     (now) to be deprecated.

Forgive me if I'm a little rough on this subject, but here it goes:

I've had it with this whining about make inplace etc. It's been nearly
half a year since 2.9 is out and nobody has even made the attempt to fix
this so I guess nobody really needed it. Yet there's still whining. Yes,
I'm to blame for bringing zpkg to Zope 2 because the Zope 3.2 build
process strongly suggested it. If there were alternatives to zpkg,
nobody has suggested them and nobody seems to have explored them so far.
All I know is that everyone wanted Zope 3.2 in Zope 2.9 which is what
they got.

>   - Jim's current changes will most likely land for 2.10.  If we don't
>     spend enough time in the beta cycle with them, we may be seeing
>     similar effects, or may need to be prepared to "un-deprecate" some
>     of the stuff currently on the doomed list.
> 
>>> We're not "refactoring mercilessly." We're thinking about problems,
>>> writing proposals, measuring risks, providing BBB and writing tests.
>>> We'll have to trust our tests to a certain degree. If we don't then
>>> perhaps we need more tests. We surely could use more functional tests.
>>>
>>> I'll be fine with creating new directives instead of changing the old
>>> ones, if that's what the majority prefers. But then I'd very much like
>>> to see a Death Certificate for the old directives made out for some time
>>> in the future (doesn't have to be 2 releases, could be more).
> 
> I don't think we are going to come to consensus about the appropirate
> "standard set" of directives anytime soon:  the current state of the
> debate reminds me eerily of the "lumbers" vs "splitters" rift in the
> world of paleoanthropology[1], which has been unresolved for more than a
> generation now.

I'm not sure if this is a matter of what the "standard set" is or not.
<browser:page /> is a big pile of magic. See one of my replies to Rocky
Burt and the interpreter example. It makes code really really hard to debug.

I also think it makes it hard to understand. In response to this
proposal, several people have asked me "By the way, what's the
difference between <browser:page /> and <browser:view /> anyhoo?" That
alone has proven my point that the current system makes it absolutely
incomprehensible of what's going on behind the scenes.

> I stand by my claim that the "reductionist" strain in our current debate
> is backed by developers who *also* admin the systems they have deployed,
> and that this sample is not representative of the audience to whome Zope
> is pitched.

Many of my recent proposals were driven by my book because it goes
through great difficulties explaining certain Zope 3 behaviour (or
magic). So if I have anyone in mind besides myself for the audience of
such "reductions", it is probably the reader of my book.

Philipp



More information about the Zope3-dev mailing list