[ZODB-Dev] packaging zodb in eggs.

Chris McDonough chrism at plope.com
Thu Mar 2 22:03:48 EST 2006


I'm taking a stab at packaging the various pieces of ZODB as eggs.   
One of the things I'd like to do is to separate the packages of ZODB  
that are currently shipped together (BTrees, ZODB/ZEO, persistent   
transaction, ZConfig) into separate packages, because each may  
arguably be useful outside of what we call "ZODB" now.

One of the issues I've run into is that there are compile-time  
dependencies between packages mainly due to C header files. For  
example, the BTrees package assumes that it will be able to find the  
cPersistence.h file, which currently ships with the "persistent"  
package.  I wonder if I should bother breaking the persistent and  
BTrees packages apart as separate eggs.  I suspect not.

I realize BTrees aren't terribly useful outside of persistent  
storage, so reasonable response would be to say "don't split pieces  
of ZODB up into separate subpackages unless they don't share much/any  
code".  In that case, I might create a "persistence" egg that  
includes both the 'persistent' and 'BTrees' packages.  The "ZODB" egg  
might include both ZODB and ZEO (these are linked inextricably) which  
depends on the "persistence" distribution.  Transaction should be  
dependency-free (but probably isn't, I haven't gotten that far yet).

So in any case, for ZODB, if I punted on the "one-package-one-egg"  
relationship, we'd wind up with (for example):

persistence-3.6.0.egg (which would include persistent and BTrees  
modules).
zodblib-3.6.0.egg (which would include ZODB and ZODB packages).
transaction-3.6.0.egg (which would include only the transaction  
package).
zconfig-2.3.1.egg (which would include only the ZConfig package).
zodb-3.6.0.egg (which might be an empty "dependency" package that  
depended on persistence, transaction, zodblib, and zconfig).

Anyone care?

- C



More information about the ZODB-Dev mailing list