[ZODB-Dev] Large egg vs small egg

Jim Fulton jim at zope.com
Wed Jul 25 10:11:09 EDT 2007


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

> Hi,
>
> 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

--
Jim Fulton			mailto:jim at zope.com		Python Powered!
CTO 				(540) 361-1714			http://www.python.org
Zope Corporation	http://www.zope.com		http://www.zope.org





More information about the ZODB-Dev mailing list