Fred Drake wrote: > On Fri, May 15, 2009 at 2:57 AM, Chris McDonough <chr...@plope.com> wrote: >> It's a partial step towards getting rid of a dependency that zope.intid has >> on >> zope.container. I'm thinking that maybe that IContained interface belongs in >> some other package (e.g. maybe zope.contained). That Container base class >> is.. >> uh.. not complicated, so even if we never do get rid of the zope.container >> dependency completely, it really doesn't harm anything to not use Contained. >> Unless you have some nostalgia for it. ;-) > > At the rate we're going, every class and every interface is going to > be in a separate package.
I don't think we have many examples of this. We have zope.browser as a repository of some interfaces. The other such package off the top of my head is zope.broken, and that one really isn't pulling its weight so I hope the IBroken interface can eventually move elsewhere. (someone, analysis please? perhaps we need a package to hold content-specific interfaces, equivalent to zope.browser. IBroken and IContained might move there.. but see below) There hasn't been a lot of splitting off of classes into new packages as far as I know. We moved a lot from zope.app into zope. to leave the ZMI behind, but I don't think that's been a bad exercise at all. > Keeping the dependency graph clean is great, and there's plenty to do > there. But there's also something to be said about being able to keep > a substantial portion of it in your head. Those two goals are not mutually exclusive and in fact mutually supportive. It's not like it was easy to keep a portion in your head before this work started anyway - it was a horrible, horrible, horrible mess. http://faassen.n--tree.net/blog/view/weblog/2009/01/29/0 I'd argue it's easier now that we can actually *read* the graphs. :) > The cleanliness of the > graph isn't so important if most users still can't understand just > because there are so many pieces that they wouldn't normally use > directly. I appreciate that point. We shouldn't be generating a lot of small pieces if we can help it. That's why it is important as a first impulse to look at existing packages to move an interface into. Sometimes a dependency inversion is the right way forward. I think in the case of IContained it wouldn't hurt us much moving this interface to zope.location, as IContained is just a marker. It's not as clean as we'd like, but the dependency graph will be much cleaner if we do and it's not horrible either. We want both less packages and cleaner dependencies. I don't think we're moving in the wrong direction at present though, so I don't think it's the time to pull on the package-generation breaks just yet. Regards, Martijn _______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )