Re: zope.sendmail having dependency on zope.app.comonent

Philipp von Weitershausen <[email protected]>
Newsgroups gmane.comp.web.zope.zope3
Message-ID <[email protected]>
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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.