Sounds good to me in general.
Martin Aspeli wrote:
I. Generic components without specific Plone or Zope 2 dependencies
live directly under the top-level 'plone' namespace. A good example is
the the Zope3-style 'plone.18n'
Minor spelling error: plone.18n -> plone.i18n
In addition I think we need some kind of explanation of what kind of
packages should live in plone.* at all and when you should write a
mxm.product, enfold.product or a simple exampleproduct without a
namespace. While I think there is no clear rule when to do this, we
could at least add some pointers. Like:
1) Packages that are meant to be included in the Plone Core product
should live in one of these two namespaces (as long as they use current
Zope3 best practices and are not some old Zope2 code).
2) All packages using the plone.* namespace have to be developed in the
Plone SVN repository and thus the copyright have to be owned by the
Maybe there are some more simple guidelines, but right now I cannot
think of any.
II. Extensions of such general components (or separate components) that
provide a tighter integration with Plone-the-application should live in
the secondary namespace 'plone.app'. See for example 'plone.app.i18n'
Components that *need* to be Zope 2 products will most likely continue
to live in $INSTANCE_HOME/Products still, at least for now. If possible
(which it may not be), however, you should try to not depend on
components being Zope 2 products.
As we are aiming for Zope 2.10 here, is there really a need for any
product to live in Products.* anymore? I thought thanks to Rocky all the
bad code has been fixed :)
Martin & the rest of the Framework Team
Thx Martin for writing this :)
Framework-Team mailing list