Hanno Schlichting wrote:
On Mon, Nov 30, 2009 at 5:09 PM, Martijn Faassen <faassen@startifact.com> wrote:
Leonardo Rochael Almeida wrote:
* Use a different package name! We don't have that option, as we're talking about changing the behavior of calling IFoo.
It's very well possible. You create a new distribution called for example "Interface". Now you can write:
import interface import zope.interface
class IFoo(interface.Interface): pass
class IBar(zope.interface.Interface): pass
Depending on what "kind" of interface you have the semantics of calling these are different. Not that I'm proposing to do this, as it leads to a pretty horrible mess, but it's possible.
True. But nitpicking, as all along we're talking about an upgrade to zope.component to allow new semantics.
We are just now getting rid of the old Zope2 Interface package and its usage in Plone land, which has the same kind of incompatibility problem. I expect that old version of interfaces is still going to be with us for a number of years. So experience shows that something so central, even if not used for many important things, has a much much longer lifetime than you'd expect.
Agreed. By taking everything along at the same time in this case I think we avoid this issue somewhat, though. Regards, Martijn