[Grok-dev] Dependencies
Martijn Faassen
faassen at startifact.com
Tue Dec 23 10:44:57 EST 2008
Hey,
Martin Aspeli wrote:
> A long and somewhat side-tracked discussion on the Repoze lists can be
> summarised thus: The BFG people (Chris mainly) ended up implementing a
> repoze.zcml package that re-implements <adapter />, <utility /> and
> maybe some other directives (<subscriber />, I guess?) sans support for
> trusted components. This meant BFG could shed the following unused
> dependencies:
>
> zope.location-3.4.0-py2.4.egg
> zope.publisher-3.5.4-py2.4.egg
> zope.security-3.5.2-py2.4-macosx-10.5-i386.egg
> zope.traversing-3.5.0a4-py2.4.egg
> zope.i18n-3.6.0-py2.4.egg
> pytz-2008i-py2.4.egg
Those aren't dependencies of grokcore.component either, which implements
adapter, global utilities and event subscription.
I think this is the case as grokcore.component is effectively doing what
repoze.zcml is doing: reimplementing the behavior of these directives,
in our case not for ZCML directives but in Grok terms.
Grok itself cannot shed these packages just like that though. The full
Grok (or probably even something like grokcore.view) will still need
these packages as we depend on packages that need them. I'm not sure
whether it'll be easy/sensible to get rid of many of those listed there.
I'd like to see some consolidation between some of them nonetheless,(
nonetheless (publisher and traversing in particular have a lot of stuff
spread out over packages). For Grok, I'm especially interested in
getting rid of our dependencies on zope.app.* packages.
> Since there's been discussion about Grok's desire to reduce
> dependencies, perhaps this is something that could be adopted lower in
> the stack (e.g. making those dependencies optional or at least opt-out
> in Zope 3), thus benefiting everyone?
That would be good. I think it should be possible to factor out common
registration functionality (basically the ZCML actions) that
grokcore.component can then also use, instead of implementing its own.
Note that this would actually *add* a dependency to grokcore.component,
but we'd gain the ability to use the ZCML directives too without
depending on the above packages, so we're willing to make that sacrifice
for the Good of the People. :)
> Chris has promised to help out if anyone can constructively help push
> this into Zope or find a better solution than BFG having to invent its
> own versions of these directives. I'm just a messenger, but Plone is
> also interested in a smaller dependency graph and so there may be ways
> to work together there as well.
>
> Anyone interested in pushing this forward?
I am; in late january a bunch of us are getting together in a small
sprint to push this kind of stuff forward as well, with a focus on Grok.
It'll probably be a combination of reorganization of underlying Zope
packages and reimplementation of some behavior.
Regards,
Martijn
More information about the Grok-dev
mailing list