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
_______________________________________________
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com