[Zope3-dev] Re: Zope 3 Source organization

Philipp von Weitershausen philipp@weitershausen.de
Mon, 14 Jul 2003 21:21:40 -0500


Stephan Richter wrote:
> So, going back (for example) to 
> 
> zope.app.workflow
> zope.app.workflow.browser
> zope.app.workflow.interfaces
> 
> would be much nicer than
> 
> zope.app.workflow
> zope.app.browser.workflow
> zope.app.interfaces.workflow

Well, yes and no. I can see where all of you who +1'd this are coming 
from, but what would you do if you want to re-implement the workflow 
package? On what interfaces would you rely on? I guess you could copy 
all interfaces modules/packages verbatim into your own implementation, 
but a) there's no guarantee that you actually do that and b) what 
happens if the original interfaces are evolving?

Plus, a component might try to get an adapter based on a certain 
interfaces. In order to support that we can have different 
implementation based on the same interfaces, the interfaces really have 
to be the exact same object, not just a copy...

Consider another, real-world example:
I've written interfaces in zopeproducts.xml.interfaces.dom according to 
the W3C DOM specs. zopeproducts.xml.dom implements these interfaces, for 
example. Furthermore, any other DOM implementation that someone might 
want to write in the future can implement these interfaces. Now, any XML 
component that needs a DOM implementation will get an adapter according 
to these centrally defined interfaces and it will get the currently 
configured DOM implementation. Wasn't that the whole idea of the CA?

As much of a pain it is right now, I'd like to keep the current 
convention. Interfaces need to be separated from implementation, unless 
we invent something like global identifiers like Shane suggested 
(http://mail.zope.org/pipermail/zope3-dev/2003-July/007522.html). I've 
been wanting to write a proposal on this (was on vacation till today).

Regards,

Philipp