Re: [ZODB-Dev] packaging zodb in eggs.

2006-03-03 Thread Chris McDonough


On Mar 3, 2006, at 8:08 AM, Sidnei da Silva wrote:


On Thu, Mar 02, 2006 at 10:03:48PM -0500, Chris McDonough wrote:
| 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.

Can't you make them separate eggs that depend on the other?


Well, yes.  I've already done that.  But it's a hack.  The runtime  
dependencies aren't a problem, it's the build-time dependencies.  I  
don't know of a way to say use this header file from this egg to  
build this other egg in an egg setup script.


- C

___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] packaging zodb in eggs.

2006-03-03 Thread Sidnei da Silva
On Fri, Mar 03, 2006 at 09:52:43AM -0500, Chris McDonough wrote:
| 
| On Mar 3, 2006, at 8:08 AM, Sidnei da Silva wrote:
| 
| On Thu, Mar 02, 2006 at 10:03:48PM -0500, Chris McDonough wrote:
| | 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.
| 
| Can't you make them separate eggs that depend on the other?
| 
| Well, yes.  I've already done that.  But it's a hack.  The runtime  
| dependencies aren't a problem, it's the build-time dependencies.  I  
| don't know of a way to say use this header file from this egg to  
| build this other egg in an egg setup script.

Maybe it's a missing feature. I would ask Phillip Eby.

-- 
Sidnei da Silva
Enfold Systems, LLC.
http://enfoldsystems.com
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] packaging zodb in eggs.

2006-03-03 Thread Chris McDonough

On Mar 3, 2006, at 10:13 AM, Sidnei da Silva wrote:


| Well, yes.  I've already done that.  But it's a hack.  The runtime
| dependencies aren't a problem, it's the build-time dependencies.  I
| don't know of a way to say use this header file from this egg to
| build this other egg in an egg setup script.

Maybe it's a missing feature. I would ask Phillip Eby.


Maybe it is, but in this case, is it worth it?  Does anyone want to  
use BTrees outside of a persistent hierarchy?


- C


___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] packaging zodb in eggs.

2006-03-03 Thread Sidnei da Silva
On Fri, Mar 03, 2006 at 10:20:13AM -0500, Chris McDonough wrote:
| On Mar 3, 2006, at 10:13 AM, Sidnei da Silva wrote:
| 
| | Well, yes.  I've already done that.  But it's a hack.  The runtime
| | dependencies aren't a problem, it's the build-time dependencies.  I
| | don't know of a way to say use this header file from this egg to
| | build this other egg in an egg setup script.
| 
| Maybe it's a missing feature. I would ask Phillip Eby.
| 
| Maybe it is, but in this case, is it worth it?  Does anyone want to  
| use BTrees outside of a persistent hierarchy?

IMO, you have to ask the opposite question. Does anyone want to
use persistent without using BTrees? Then the answer is yes.

-- 
Sidnei da Silva
Enfold Systems, LLC.
http://enfoldsystems.com
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] packaging zodb in eggs.

2006-03-03 Thread Jeremy Hylton
On 3/2/06, Chris McDonough [EMAIL PROTECTED] wrote:

 On Mar 2, 2006, at 10:48 PM, Gary Poster wrote:

 
  On Mar 2, 2006, at 10:03 PM, Chris McDonough wrote:
 
  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?
 
  First,  rah rah!.

Go go!

I don't understand the eggs philosophy.  (I succeeded in missing the
eggs talk twice at PyCon.)  I don't think any of the pieces of ZODB
are very useful in isolation.  You can't use persistent without
transaction, and there isn't much that uses transaction other than
ZODB.  Same with BTrees, you can't use them without ZODB and they're
probably the most useful data structure in ZODB.

Software like DirectoryStorage, BDBStorage, or  IndexedCatalog seem
like good candidates for separate packaging.  ZConfig,

Jeremy

  Second, zodblib seems unlikely to be useful alone, but maybe I'm
  wrong, and even if I'm right there's precedent for that sort of
  thing in packaging land, so what the hey.

 Well, I'm only an egg, as Michael Valentine would say, so I'm not
 sure what the right thing is.

 
  Third, I'd guess that zodb would contain the stitching for zconfig-
  to-zodb.  It makes me wonder if a zodb-without-zconfig egg would be
  feasible/useful, but that's probably for later navel-staring.

 Yeah, that'd be good.  It's currently pretty dense in there.

 - C

 ___
 For more information about ZODB, see the ZODB Wiki:
 http://www.zope.org/Wikis/ZODB/

 ZODB-Dev mailing list  -  ZODB-Dev@zope.org
 http://mail.zope.org/mailman/listinfo/zodb-dev

___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] packaging zodb in eggs.

2006-03-03 Thread Jim Fulton

Chris McDonough wrote:
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?


Yup.  However, I think before we can package these separately, we need to
fix the dependency graph. in particilar we have a lot of cycles, which is
bad.  For example. ZODB depends on ZEO. persistent and transaction depend on
ZODB.  I think that this needs to be cleaned up first.  This is not a small
job.

BTW, the turbogears folks are interested in using transaction.  The transaction
package has shallow dependencies on ZODB.  A nice start would be to release
a separate transaction egg that doesn't depend on ZODB.  (Hint, we'll need a 
separate
weak-set egg that transaction and ZODB depend on and we'll need to decouple the
transaction exceptions from ZODB.)

Jim


--
Jim Fulton   mailto:[EMAIL PROTECTED]   Python Powered!
CTO  (540) 361-1714http://www.python.org
Zope Corporation http://www.zope.com   http://www.zope.org
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] packaging zodb in eggs.

2006-03-03 Thread Chris McDonough

On Mar 3, 2006, at 11:46 AM, Jeremy Hylton wrote:

Go go!

I don't understand the eggs philosophy.  (I succeeded in missing the
eggs talk twice at PyCon.)  I don't think any of the pieces of ZODB
are very useful in isolation.  You can't use persistent without
transaction, and there isn't much that uses transaction other than
ZODB.  Same with BTrees, you can't use them without ZODB and they're
probably the most useful data structure in ZODB.


I  think you put transaction in a separate package because it was  
meant to be useful independent of ZODB.  There's no actual code in  
persistent that depends on transaction save for the tests (although I  
couldn't imagine using persistent without transaction, is there ever  
a case?).  Maybe the right packaging division is transaction,  
ZConfig, and everything else?


- C


___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] packaging zodb in eggs.

2006-03-03 Thread Chris McDonough


On Mar 3, 2006, at 11:47 AM, Jim Fulton wrote:
BTW, the turbogears folks are interested in using transaction.  The  
transaction
package has shallow dependencies on ZODB.  A nice start would be to  
release
a separate transaction egg that doesn't depend on ZODB.  (Hint,  
we'll need a separate
weak-set egg that transaction and ZODB depend on and we'll need to  
decouple the

transaction exceptions from ZODB.)


OK, that sounds like a place to start, thanks.

- C

___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] packaging zodb in eggs.

2006-03-03 Thread Jim Fulton

Sidnei da Silva wrote:
...

Can't you make them separate eggs that depend on the other?


There's no point given the cyclic dependencies.  You need everything
anyway, so we might as well have a single source distribution.

BTW, there is no such thing as a source egg, and given that ZODB
has required C extensions, I expect source distributions, rather than
eggs will be the norm.  Of course, binary eggs for windows and perhaps
some other platforms would be useful.

Jim

--
Jim Fulton   mailto:[EMAIL PROTECTED]   Python Powered!
CTO  (540) 361-1714http://www.python.org
Zope Corporation http://www.zope.com   http://www.zope.org
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] packaging zodb in eggs.

2006-03-03 Thread Jim Fulton

Chris McDonough wrote:

On Mar 3, 2006, at 11:46 AM, Jeremy Hylton wrote:


Go go!

I don't understand the eggs philosophy.  (I succeeded in missing the
eggs talk twice at PyCon.)  I don't think any of the pieces of ZODB
are very useful in isolation.  You can't use persistent without
transaction, and there isn't much that uses transaction other than
ZODB.  Same with BTrees, you can't use them without ZODB and they're
probably the most useful data structure in ZODB.



I  think you put transaction in a separate package because it was  
meant to be useful independent of ZODB.  There's no actual code in  
persistent that depends on transaction save for the tests (although I  
couldn't imagine using persistent without transaction, is there ever  a 
case?).  Maybe the right packaging division is transaction,  
ZConfig, and everything else?


Eventually, these packages should be untangled and packaged separately.
But that's more work than we want to do now.  I do think that persistent
will someday be useful outside of ZODB.  In which case, so would BTrees.

Jim

--
Jim Fulton   mailto:[EMAIL PROTECTED]   Python Powered!
CTO  (540) 361-1714http://www.python.org
Zope Corporation http://www.zope.com   http://www.zope.org
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


Re: [ZODB-Dev] packaging zodb in eggs.

2006-03-03 Thread Dieter Maurer
Chris McDonough wrote at 2006-3-2 22:03 -0500:
 ...
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).

While ZEO is of no use without ZODB, the inverse is not true:
ZODB might very well be interesting without ZEO.
I would not bundle ZEO and ZODB together...

persistence-3.6.0.egg (which would include persistent and BTrees  
modules).

I would prefer if BTrees could remain a package (rather than a module).

zodblib-3.6.0.egg (which would include ZODB and ZODB packages).
 

sure, you means something different...

-- 
Dieter
___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev