[Zope3-dev] cutting away dependencies

2007-06-15 Thread Martijn Faassen

Hi there,

Recently I had the opportunity to try the new buildouts of two Zope 3 
projects, namely zope.tal and zope.fssync. In both, the dependency 
specification in install_requires looks innocent:


zope.tal:

'setuptools',
'zope.i18nmessageid',
'zope.i18n',
'zope.interface',

zope.fssync:

setuptools',
'zope.interface',
'zope.proxy',
'zope.traversing',
zope.xmlpickle'

These looks like dependencies that should only pull in a few more 
packages at most. Unfortunately this is not the case. zope.tal somehow 
ends up depending on, say, zope.dublincore and zope.lifecycleevent, 
zope.app.publisher, zope.formlib, and a total of about 60 dependencies. 
The story is very similar for zope.fssync. You'd not think the basic 
page template interpreter should have a dependency on formlib.


Do we have a plan for unweaving these dependencies? It just doesn't seem 
needed that such basic packages pull in so much of zope. Is there a 
particular dependency that we could surgically alter to minimize this 
explosion? It'd be useful to start publishing some dependency graphs to 
identify critical packages. Is anyone already doing this work?


Regards,

Martijn

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] cutting away dependencies

2007-06-15 Thread Jim Fulton


On Jun 15, 2007, at 12:33 PM, Martijn Faassen wrote:
...
These looks like dependencies that should only pull in a few more  
packages at most. Unfortunately this is not the case. zope.tal  
somehow ends up depending on, say, zope.dublincore and  
zope.lifecycleevent, zope.app.publisher, zope.formlib, and a total  
of about 60 dependencies. The story is very similar for  
zope.fssync. You'd not think the basic page template interpreter  
should have a dependency on formlib.


Do we have a plan for unweaving these dependencies?


Um. Plan ... um.  Yes, we need to unscrew these dependencies.  :)

Seriously, we do need to work on this.  Unfortunately, for years,  
reducing dependencies was not much of a goal due to our large  
batteries included distribution.  As a result, packages became  
interdependent in undesireable ways.


A good example is zope.component.  There's a zope.component.zcml  
module that basically pulls in all of
Zope 3. :)  We shouldn't have moved that module into zope.component.  
Oh well. 20/20 hindsight...


In the long run, I think we'll need to remove a lot of junk from some  
critical packages.  We could use extras as I did in in desperation  
for zope.component.  I don't like extras in general, but maybe they  
are the best way to deal with some of our historical interdependencies.


Jim

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



___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com