[Zope3-dev] Re: zope.sendmail having dependency
on zope.app.comonent
Baiju M
mbaiju at zeomega.com
Fri Aug 31 07:11:30 EDT 2007
Wichert Akkerman wrote:
> 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.
>
There are some docs here:
http://pypi.python.org/pypi/zc.sourcefactory
Regards,
Baiju M
More information about the Zope3-dev
mailing list