plone buildout and Products namespace

Hanno Schlichting plone at hannosch.info
Wed Oct 17 22:16:07 UTC 2007


Martin Aspeli wrote:
> Leonardo Rochael wrote:
>> Not sure this is the right forum to reach those involved with the
>> respective
>> code...
>>
>> I've been playing with the plone3_buildout paste template and the recipes
>> sets up for your buildout. Specifically the plone.recipe.distro buildout,
>> which is also used by the plone.recipe.plone one for the non-eggified
>> Products.
>>
>> Now that Zope officially declares Products to be a namespace,
>> shouldn't we
>> be setting up these recipes to put these distributed products in a
>> Products
>> namespace as well?
> 
> It doesn't do that in 2.10.4, as far as I know; I thought that was
> scheduled for 2.11, but maybe it made it into a point release?

Tres backported the change and so it will be included in 2.10.5 as well
as 2.11b1.

>> The change to the recipes is simple enough, just add a Products
>> subdirectory
>> to each part and an __init__.py declaring the namespace before
>> downloading
>> and unpacking the products, and in the zope2instance recipe putting
>> something like:
> 
> Right - we could (should) do this - but the longer term solution is to
> re-package products as eggs and install them like that. :)

I'm against doing any magic folder creation in the recipes. This changes
the outcome compared to other installation methods and makes it harder
to understand problems that might arise.

It will also make the recipes useless for any former version of Zope,
which is not acceptable in my opinion.

>> products =
>>     ${buildout:directory}/Products <-- notice the capital P
>>     ${productdistros:location}/Products
>>     ${plone:products}/Products
>>
>> The benefit of this is enabling tools that understand python namespace
>> packages to understand what is happening with the products in a buildout.
> 
> You need to make sure that having multiple parts using plone.app.distros
> works still, but that shouldn't be too hard.
> 
>> One example of such a tool is the PyDEV extensions static code analysis
>> tool, that scans python files to enable proper code completion.
>>
>> 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.

I think this is absolutely the wrong level to add this feature. Either
package authors move their packages over to namespace packages or not.

We shouldn't change the packaging method on installation time, but
rather encourage and help people to move to proper eggs instead.

Hanno





More information about the Product-Developers mailing list