Hi Martin.

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' (http://svn.plone.org/svn/plone/plone.i18n).

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 Plone Foundation.

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' (http://svn.plone.org/svn/plone/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

Reply via email to