[Framework-Team] Re: Plone 3.0 product deployment

Philipp von Weitershausen philipp at weitershausen.de
Sat Feb 3 19:33:21 UTC 2007


On 3 Feb 2007, at 20:17 , Martin Aspeli wrote:
> Philipp von Weitershausen wrote:
>> I realize Plone 3.0 will ship with both packages and old-style  
>> products. Recently I wrote a proposal that should alleviate this  
>> problem by making it possible to deploy products as eggs [1]. I  
>> thought that this would become relevant only for Plone 3.5.
>> Now Daniel Nouri made me aware that you can already deploy  
>> products as eggs. In fact, you can already deploy products into  
>> lib/python, as long as lib/python/Products/__init__.py contains a  
>> namspace package declaration (in the setuptools sense,  
>> pkg_resources.declare_namespace('Products')). That means that  
>> Plone 3.0 can at least ship as *one* tarball for lib/python (in  
>> which all the traditional products are in such a 'Products'  
>> namespace package). I think that's great news, especially for the  
>> traditional deployment route of downloading a tarball.
>> It also means that Plone 3.0 would also be installable as eggs,  
>> given that somebody would make eggs out of the existing products  
>> and the CMF. That's mostly mechanical work, however. Hence, an  
>> installation via zc.buildout (using somethinglike ploneout) isn't  
>> so far fetched, and you wouldn't even need a special recipe to  
>> install products -- you'd just use the egg recipe.
>> I thought I'd run this by you guys. Daniel might have even more to  
>> say.
>
> It is very interesting. What worries me a bit is how we eggify the  
> existing products.

It's not an immediate thing to worry about, I'd say (unless you're  
pushing Plone 3.0 to ship as an egg, which I think is not a priority.)

> Perhaps we need a script to do that. It would almost certainly  
> introduce breakage of a lot of svn:externals, since the svn layout  
> is different. We'd also depend on Zope (e.g. PAS) and CMF products  
> doing this.

Well, the svn layout is something to worry about at some point, but  
maybe not immediately. Eggifying stuff like the CMF shouldn't be that  
hard. With svn:externals you don't even need access to the  
svn.zope.org repository. All you really need is a setup.py :)

(Of course, you'd probably want to play nice with the other kids, so  
it makes sense to talk to the CMF folks, etc., but as pointed out  
above and below, it doesn't look like it's a priority for Plone 3.0  
per se).

> If it's something we want to do, we need to do it fairly quickly.

You don't have to. You can still ship Plone 3.0 as a traditional  
tarball for now, though not one for INSTANCE/Products but one for  
INSTANCE/lib/python. In that tarball, you have a 'Products' directory  
with all the old products in it. Just the __init__.py needs to say  
pkg_resources.declare_namespace('Products'). That was really all of  
my point. Plone 3.0 can be *1* tarball :)

The corollary is, of course, the whole egg story, which is great, but  
perhaps something post Plone 3.0.0 (or, a parallel effort for folks  
like Daniel).

> Also, if products are eggs, are they still automatically found (and  
> their ZCML processed) at start-up?

Yes. My proposal is pretty much superfluous. Yay!

> I do love Daniel's idea of a Plone egg, so that you could  
> easy_install Plone and be done with it. :)

I agree.





More information about the Framework-Team mailing list