[Zope-dev] Re: SVN: Products.ZopeVersionControl/trunk/ Purge old zope2 Interface interfaces for Zope 2.12 compatibility.

Wichert Akkerman wichert at wiggy.net
Thu May 22 14:23:19 EDT 2008


Previously Tres Seaver wrote:
> Wichert Akkerman wrote:
> > The fact is that right now, today, we still have code that relies on Z2
> > interfaces. Not just in third party products - current Zope2 releases
> > rely on Z2 interfaces in some places as well.
> 
> Only by oversight, not by design (the only one I know of is the
> IStreamIterator bit in ZPublisher / ZServer).

If you look at Zope itself that may be correct. Current stable CMF and
Plone releases certainly do use them.

> > Some of that code has no
> > Z3 alternative either. I find it very hard to believe that you want to
> > silently break all that code.  Whatever happened to our N+2 deprecation
> > policy.
> 
> What I want is to stop the "n*m" + 2 policy, where m is the number of
> layers in the stack.  I would much prefer that everything using Zope2
> interfaces breaks *noisily*, which is why I ripped the Interface module
> out of the Zope2 trunk, and why the "old" names are no longer present in
> the CMF trunk.
> 
> Zope 2.8 shipped with Five in the core *three years ago*:  from that
> moment, the Zope2 interfaces were complete dead ends.

I've been involved with Zope development for about three years now. I
had never heard before this month that the old interfaces were scheduled
for removal. We have had zope.deprecate in Zope since 2.8 as well - why
wasn't that used? Or any other visible deprecation mechanism? Why not
add that right now to the as yet unreleased Zope 2.11 so at least we get
a warning out?

> > If you insist on going this path we need to start adding deprecation
> > warnings for the Z2 Interface class *now*.
> 
> They are already gone.

Not in 2.9, 2.10 and 2.11, two of which still see occasional maintenance
releases and 2.11 is not final yet. We can add a deprceation warning
there.

> >> Plone is already going to have to do this to work with CMF trunk,
> >> because the "bridge" code which provided BBB Z2 interfaces is now gone.
> > 
> > I've done that work on trunk already - it took a lot of work and was
> > quite painful. There are probabyl still a few broken things that try to
> > use Z2 interfaces.
> 
> Code which claims to be "working" with Z2 interfaces is already
> crippled:  worse, it infects *other* code with that breakage.  Such code
> *never* worked properly (those interfaces were never supported by the
> component architecture), and was always a decoy or a booby trap.

Confusing - sure. But working.

> Third party code has to make adjustments sometimes, and three years is
> long enough.

It would have been fine if there was a visible deprecation. As I said I
for one was not aware that this was going to happen this fast (or at
all). I find it hard to believe I am the only one.

Wichert.

-- 
Wichert Akkerman <wichert at wiggy.net>    It is simple to make things.
http://www.wiggy.net/                   It is hard to make things simple.


More information about the Zope-Dev mailing list