Derek Richardson wrote:
One problem confronts me, though, before I do the boring work of sorting
out the dependencies. My package is designed to run in both z2 and z3.
So, I could add a bunch of z3-specific dependencies to a
z3-configure.zcml that is loaded only if Five is not installed. Not too
hard. But, the hard part is: I don't want to add all the z3 eggs to my
Yes you do.
because that's ugly if I'm actually running in z2.
No, Zope 2 is ugly because it doesn't support eggs yet :). Well,
actually I *did* change that. I've eggified Zope 2.11 (the trunk) a
while ago and it seems to work so far.
My idea is to have a z3-only package that depends on my z3/z2 hybrid
package and that simply has a setup.py that includes all the z3
dependencies and a configure.zcml and an ftesting.zcml that does all the
z3-specific zcml work. And then I can have a z3-specific buildout that
uses the z3-specific package and another buildout for z2 that uses the
base package and a third buildout for z2+plone, which includes some
additional plone-specific packages. A big pain, but I want my code
usuable in all three environments, to the extent that is possible.
If you're going to be basing this on Zope 2.11/3.4, I'd say you're
better off with a simpler solution: betting on eggs all the way. I
certainly hope that Zope 2.11 will go this way (I will do everything I
can to support that) and I see similar wishes in the Plone community as
well. Fortunately, eggification is just a means of packaging and pretty
orthogonal to the actual code.
http://worldcookery.com -- Professional Zope documentation and training
Zope3-users mailing list