yuppie wrote:
I don't think we need to break backward compatability. We would just need to deprecate the Five.interfaces location.

Basically, the goals are:

* The solution needs to work with Zope 2.7
* Preferrably, the interface import spelling should be equal on both
  systems (which means a monkey on 2.7 is probably inevitable).
* On 2.8 we want to have definitions of the z3-style interfaces in the
  Zope tree.
* Five.interfaces and OFS.interfaces.*, etc. need to contain
  the exact *same* interfaces (same, not equal) on both systems at all
  times.


That's the point I missed!

It's important because if someone registers a view for Five.interfaces.IObjectManager and OFS.ObjectManager.ObjectManager implements OFS.interfaces.IObjectManager, you'd want these to be the same...


So we just need code like this at the end of Five.interfaces:

try:
    # override IObjectManager with Zope 2.8 interface
    from OFS.interfaces import IObjectManager
except ImportError:
    # monkey patch Zope 2.7 OFS
    ...

Right?

Yup, something like that. I'd prefer something like this, though::

  try:
      # override IObjectManager with Zope 2.8 interface
      from OFS.interfaces import IObjectManager
      def monkey():
          pass
  except ImportError:
      def monkey():
          # monkey patch Zope 2.7 OFS

and in Five.monkey, we do::

  from Products.Five.interfaces import monkey as interfaceMonkey
  interfaceMonkey()

That way all monkey are effectively executed from Five.monkey which is the convention. I do it like that on the philikon-i18n branch, too, if you want to see another example.

* Five.interfaces should be deprecated as an import location in the long
  term.

Fine. I no longer think we need to break backward compatibility.

Good :).

Philipp
_______________________________________________
Zope-Dev maillist - Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )

Reply via email to