On Jul 25, 2007, at 9:05 AM, Christian Theune wrote:


while wading through some zope.* eggs I found that the ZODB is
referenced in a couple of places that triggers pulling in:

1. The whole of ZODB, although only a small part is needed
2. A bit of dependencies (if I read zope.interface, zope.proxy, ZConfig, zdaemon) although the parts that aren't used but installed because of 1)

I'd like to know whether it would be reasonable to start splitting up
the ZODB into multiple eggs.

It is reasonable, desirable and a long term goal. Unfortunately, it is also hard due to mutual dependencies among all of the packages.

The most promising first victim is transaction, both because it has only a few minor dependeoncies on ZODB and because it would be useful to non-ZODB-bases projects. This requires:

- Making transaction errors not derive from POSException

- Moving the weakset implementation into transaction or into a separate package.

In the long term, I'd like to see persistent grow more independent of ZODB and I'd like people to be able to use ZODB without getting ZEO.

Perhaps, in the longer term, ZConfig support could be moved to a separate package.

If we stopped "supporting" mkzeoinstance, then we could probably get rid of the zdaemon dependency. I'm not really supporting mkzeoinstance now and it only works now if you install ZODB into your system Python. I'd like to drop it or move it to a separate package if someone wants to support it.


Jim Fulton                      mailto:[EMAIL PROTECTED]                Python 
CTO                             (540) 361-1714                  
Zope Corporation        http://www.zope.com             http://www.zope.org

For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -  ZODB-Dev@zope.org

Reply via email to