Martin Aspeli wrote:

products =
    ${buildout:directory}/Products <-- notice the capital P
    ${productdistros:location}/Products
    ${plone:products}/Products

...

Would people be interested in such changes to the recipes and to the
ZopeSkel template?

This sounds like a good idea. The only problem I see is that quite a lot of documentation (including, selfishly, my book) assumes the lowercase p in ${buildout:directory}/products. It probably isn't a huge deal to change it, but it would be a bit annoying.

Thinking about this some more - does it really matter that the parent directory for everything on the Product-path is "Products" with a capital P and has an __init__.py that declares a namespace package?

Right now, the way the plone3_buildout layout works, we have a 'products' directory (lowercase p) with no __init__.py at all, on the productpath and it works just fine. I don't see why adding an __init__.py would make much difference at all.

As far as I understand it, the thing that matters is that the first 'Products' that's found on the PYTHONPATH/sys.path has the necessary namespace package declarations inside its __init__.py. Zope itself does things like "import Products" (there are even some module level variables in $SOFTWARE_HOME/Products/__init__.py) and it's definitely a good idea if the namespace declaration goes there, but this doesn't really apply to other things on the product-path (which is scanned by Zope at a much lower level anyway).

I don't think it even makes a difference to the plone.recipe.distros case. Again, we have an arbitrary directory which we put on the product-path; this isn't on sys.path and isn't imported in any way. It doesn't have an __init__.py either.

I may be wrong though. But if I'm not, then I'm -1 on your proposal, since it'd be changing stuff that's documented and which people are using right now in a way that makes it more confusing (multiple plone.recipe.distro parts would use the same directory, adding __init__.py makes this look like a package when it's not) and inconsistent (everything else in the buildout uses lowercase directory names) for no actual beenfit.

Martin

--
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book


_______________________________________________
Product-Developers mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers

Reply via email to