[TransWarp] PROPOSAL: Shield PEAK from Zope changes

Phillip J. Eby pje at telecommunity.com
Wed Apr 9 17:31:04 EDT 2003

After some e-mails back and forth with Ulrich today, I've come up with a 
proposal for how to shield PEAK from shifts in its Zope dependencies 
(currently Interface, and Persistence).

Here's what I'd like to do...  Make 'interface' and 'persistence' modules 
part of the top level 'peak' package, but not part of 'from peak.api import 
*'.  These modules will not be the actual implementation of those 
components, just PEAK's encapsulation of them.  Usage of the modules would 
be as follows:

from peak.interface import Interface, Attribute
from peak.persistence import Persistent

The modules will export *only* a documented subset of the 
features/capabilities of their underlying packages.  This subset will be 
"guaranteed" interoperable between PEAK and Zope X3.  Usage of anything 
outside that subset in PEAK-based code would be "at your own risk".

All in all, this is more for my benefit in coding PEAK than anything 
else.  I don't want to go through more than one "namegeddon" for PEAK, and 
I'd just as soon that PEAK's external dependencies were more explicit.

However, as an added benefit, users would be free to replace these modules 
with different implementations, if they needed to force the use of a 
different version of the associated Zope package.

Any thoughts?

More information about the PEAK mailing list