[Zope-dev] Re: [Zope 2.12] Eggification of Zope 2 - pros and cons?

Martin Aspeli optilude at gmx.net
Mon Mar 24 13:23:42 EDT 2008


Philipp von Weitershausen wrote:
> Andreas Jung wrote:
>> during the latest 'zope.publisher' thread on zope-dev I came up with
>> the proposal to eggify the Zope core for the Zope 2.12 release. I would 
>> like to start a discussion about the pros and cons, risks and advantages 
>> of any eggification effort.
>>
>> Chris favors a 'big' Zope egg with some dependencies (like ZODB) 
>> stripped out.
> 
> I have pretty much done this already. [1] defines an egg called 'Zope2'. 
> All the Zope 3 eggs are dependencies, as are a few "non-core" packages 
> such as ExtensionClass, Acquisition, etc. (which are already eggified 
> and available on PyPI).

That sounds like a good balance to me. We need to make sure that there's 
a single Zope egg that we can version-pin that'll always have a stable, 
working set up Zope 3 packages. Zope 3 is a whole farm-full of eggs, and 
version management can be tricky. Zope 3 has a KGS, of course, so maybe 
we can just use that.

> I also started a branch of the Plone egg back then to see if it can be 
> modified to install Zope 2 completely as a dependency. See [2].

I'm pretty sure Plone 4 will want to do this. We (read: Hanno) is almost 
done eggifying all of Plone anyway.

Note that the current "Plone" egg is not maintained and never quite 
worked out. Right now we use plone.recipe.plone to install Plone in a 
buildout, which version pegs all the plone.* eggs and friends (which are 
in PyPI), and then downloads a tarball of products that are added to the 
'products' line in the generated zope.conf. We want to get rid of the 
latter, of course.

>> I would prefer a more broader approach. One of the reasons are
>> company-internals modifications to the Zope core. Right now we 
>> maintain a more or less heavy modified version of Zope 2.8 in our
>> repos (making Zope upgrades pretty hard). A better modularization
>> would help  us here. Another example:
>> the Plone people maintained a Zope 2.10 branch with experimental ZODB
>> blob support. With an eggified version of ZODB you could easily
>> switch the eggs (easily spoken).
> 
> I feel indifferent to this in general, so feel free to split away more 
> stuff from my 'Zope2' egg.

Having Zope with a separate ZODB and a few other "big" pieces makes 
sense indeed. Having tons of small packages that no-one will ever re-use 
outside a large Zope just creates overhead and the potential for people 
to buildout themselves into version conflicts.

>> So before promoting the eggification as an ultimate goal, let's discuss 
>> what we really need and want. A complete eggification just for the sake 
>> of eggs is possibly not the goal :-)
> 
> 
> [1] http://svn.zope.org/Zope2.buildout

Yay for this. :)

> [2] http://svn.plone.org/svn/plone/dist/Plone/branches/philikon-buildoutify

I'm not sure this is all that useful. For Plone 4, we're just going to 
have a number of plone.*, plone.app.* and Products.* (and a few others, 
like kss.*) eggs that we can put in a KGS or version pin in a single 
"Plone" egg.

Cheers,
Martin

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



More information about the Zope-Dev mailing list