2009/3/5 Martijn Faassen <faas...@startifact.com>:
> Hi there,
> I know opinions are divergent about 'extra' dependencies in setup.py.
> These ar dependencies that effectively make a single project with a
> single dependency structure into a number of "virtual" packages that
> each can have a separate list of dependencies. Such a virtual package
> that we're currently getting rid of is zope.component[zcml].
> I think they make the graph harder to reason about. That's bad, we want
> to reason about the system more easily. So I propose that:
> * we shouldn't create any new "extra" dependencies from now on.
> * we should investigate ways to remove the need for 'extra' dependencies.
> The latter point would of course not be done instantly, but if we agree
> we don't want to create *more* "extra" dependencies we can agree on
> starting with that policy right away.
> One place where "extra" dependencies are used quite a lot is in testing.
> One extra dependency that shows up a lot is a dependency on
> zope.app.testing. I think that *also* makes things much harder to reason
> about; testing dependencies should follow normal package dependencies.
> I therefore think zope.app.testing is one package we should be looking
> to get rid of eventually by splitting it up among a lot of 'testing'
> modules in individual packages. This way we won't have zope.app.testing
> sitting at an edge against our whole dependency tree. Since this is a
> lot of work this will be an ongoing project but we could at least agree
> we *want* to do this.
+99999999 for removing test extras.
-0.75 for removing functionality extras. I still don't get how extras
are different from additional packages.
I'd also like to officially clear things about dependencies for zcml
configuration. Most of our packages can be used nicely without any
zcml, but the zcml-related dependencies can be quite large. I think
that the extras here will do a nice job. I mailed about that a while
WBR, Dan Korostelev
Zope-Dev maillist - Zope-Dev@zope.org
** No cross posts or HTML encoding! **
(Related lists -