[Zope3-dev] Re: zope.sendmail having dependency on
zope.app.comonent
Wichert Akkerman
wichert at wiggy.net
Fri Aug 31 07:06:04 EDT 2007
Previously Philipp von Weitershausen wrote:
> On 30 Aug 2007, at 14:19 , Michael Howitz wrote:
>
> >Am 22.08.2007 um 15:53 schrieb Philipp von Weitershausen:
> >
> >>Michael Howitz wrote:
> >>>while looking at the dependencies of packages in the zope.*
> >>>namespace at gocept we found out that zope.sendmail depends on
> >>>zope.app.component.
> >>
> >>Just to make sure: If we ever had a formal distinction of the
> >>zope.* and zope.app.* namespaces, I think we've abandoned it a
> >>while ago already. So, it doesn't matter whether a package is in
> >>zope.* or zope.app.*, we need to take all interdependencies (also
> >>the ones in zope.app.*) into account. So all in all I don't think
> >>it's a big problem in zope.sendmail depended on
> >>zope.app.component, as long as zope.app.component wouldn't depend
> >>on a gazillion other things...
> >
> >So, you suggest to leave this dependency as it is as long no-one
> >complains?
>
> In general, yes. That said, zope.app.component isn't the lightest
> dependency. It draws in almost all of zope.app.*
>
> >>>zope.sendmail needs
> >>>zope.app.component.vocabulary.UtilityVocabulary to define a
> >>>vocabulary for the utilities implementing
> >>>zope.sendmail.interfaces.IMailDelivery.
> >>>So we'd suggest to move
> >>>zope.app.component.vocabulary.UtilityVocabulary out of the
> >>>zope.app.* namespace because it is a generic vocabulary.
> >>>Possible places for UtilityVocabulary could be zope.component
> >>>(because the concept of utilities is defined there) or
> >>>zope.schema (because the concept of vocabularies is defined there).
> >>>zope.schema seems to be the better place because zope.component
> >>>does not depend on zope.schema yet.
> >>
> >>But zope.schema does in no way depend on zope.component.
> >
> >Yes, you are right. So we would introduce a dependency from
> >zope.schema to zope.comonent.
> >The only way to get lost of the zope.app dependency seems to be a
> >new package "zope.app.sendmail" (including deprecation!). But there
> >is already a zope.app.mail which is deprecated and will be removed
> >in 3.5.
>
> I don't understand why that is "the only way" and why we have to
> create more packages in that dreadful zope.app.* namespace.
>
> One way to break this dependency is to move the UtilityVocabulary out
> to a separate package, e.g. zope.utilityvocabulary.
>
> Another way is to simply stop using UtilityVocabulary; this would
> also be an opportunity to replace it with a source. zc.sourcefactory
> is supposed to make this quite easy (and from what I've seen, it
> does), but unfortunately its dependencies aren't exactly light-weight
> either.
Is there documentation on sources anywhere? The last time I checked
there was nothing that I could understand either in zope.* or
on the wiki.
Wichert.
--
Wichert Akkerman <wichert at wiggy.net> It is simple to make things.
http://www.wiggy.net/ It is hard to make things simple.
More information about the Zope3-dev
mailing list