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

Tres Seaver tseaver at palladion.com
Fri May 23 17:54:03 EDT 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dieter Maurer wrote:
> Tres Seaver wrote at 2008-5-22 10:45 -0400:
>>> ...
>>> 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).
> 
> "Products.PlugcinIndexes.common.UnIndex.UnIndex" still uses
> both "__implements__" and "implements".
> 
> True, the Zope2 interfaces are defined from the Zope3 ones
> via a magical "Interface.bridge.createZope3Bridge".

Exactly:  they define them only for notional backward compatibility.
They don't actuallly *use* them for anything.  I'm arguing that the time
is *now* to drop the BBB, which is not going to break any code which was
actually *working* in terms of the expected behavior of interfaces.
Software which hasn't been updated to use Z3 interfaces at this point
won't *ever* get updated if we leave the BBB code in place.

>>> 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.
> 
> Formerly, both you and me, have been strong advocates for
> backward compatibility. What happened that you now want to
> break things drastically?

Three years later, and folks still haven't gotten with the program.  I'm
tired of "carrying them on the books."

>> Zope 2.8 shipped with Five in the core *three years ago*:  from that
>> moment, the Zope2 interfaces were complete dead ends.
> 
> Precisely this Five version suggests to use "__implements__"
> and "implements" together...

It provides the Z2 interfaces or *backward compatibilty*:  those
interfaces never worked for component dispatch (which makes them useless
for their major purpose), and the various places in the Zope2 code which
attempted to allow "sniffing" them were crufty bug magnets.

Encouraging people to take another year ripping them out is silly.


Tres.
- --
===================================================================
Tres Seaver          +1 540-429-0999          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFINzz7+gerLs4ltQ4RAo5BAJ0eiO1o3rX8916xUi5IvTna657HHACguk06
Bza+2vVEYDZRRqx5sHI7eKU=
=334q
-----END PGP SIGNATURE-----



More information about the Zope-Dev mailing list