[Zope-dev] Grok cave sprint summary, and future todos
Martijn Faassen
faassen at startifact.com
Sat Jan 31 11:41:05 EST 2009
Hi there,
I've just made a lot of releases as the result of our dependency cleanup
sprint. There are more releases to be made, but I think I've released
the most important affected packages now. Christian Theune is going to
follow up and release some more packages that we touched, probably tomorrow.
I'm going to write up a document that describes how we analyzed
dependencies and what approaches we took so that people who want to help
have some idea of what to do.
the most important affected packages are (as far as I can remember):
zope.app.component ('class' ZCML directive moved into zope.security,
site stuff extracted into zope.site)
zope.app.security ('module' directive moved into zope.security, along
with some helper functions)
zope.app.container (most functionality moved into zope.container)
zope.app.folder (base class moved into zope.container, Folder itself
moved into zope.site as its main function was to mix in site management
facilities)
zope.traversing (depends on zope.location now instead of the other way
around)
zope.location (doesn't depend on zope.traversing anymore)
zope.site (a new package extracted from zope.app.component and
zope.app.folder)
zope.container (a new package extracted from zope.app.container and
zope.app.folder)
Another thing we want to do is reduce the test dependencies of packages
to almost nothing (or nothing at all). We think it'd be good if package
only used what they depend on directly for testing purposes; testing
dependencies in general should follow implementation dependencies. This
might allow us to get rid of zope.app.testing at some point. Instead
we'd like to see more (and more consistent!) 'testing' modules in
packages that help with test setup.
We have created a bunch of tools in the process of reducing
dependencies: an extension to the test runner to track imports that
could be modified to be from a better location (though 'grep' is very
useful there too), z3c.recipe.compattest, and Christian Theune is
working on a way to 'touch' the ZODB so that it will update any moved
class to the new location.
Note that we haven't finished going through the codebase changing
imports from zope.app.folder to zope.site where possible - volunteers
are welcome. This should further reduce dependencies in the entire graph
as zope.site pulls in far less than zope.app.folder.
If a bunch of us keep this up we'll that'll allow us to start retiring a
lot of packages that are mostly unused, and have a smaller, easier set
of Zope 3 packages to maintain and understand. Users of the Zope 3
libraries (plain Zope 3, Grok, Zope 2, Repoze, and others) should all
benefit from this.
Regards,
Martijn
More information about the Zope-Dev
mailing list