I'd like to get feedback on an idea I had recently.


Zope2 currently includes large parts of Zope 3. Not all of the zope.*
and zope.app.* packages are maintained or are in use.

Still Zope 2 includes large amounts of them and thus implicitly
advertises them to be used. In addition they blow up the installed code
size and add a long term maintenance burden.

The move to gain Python 2.6 compatibility has shown some of this and I
expect to see more work in moving to Python 3 at a later stage.


Zope 2.12 will most probably see two kind of distributions.

One is a Zope2 egg, consisting of one large Zope2 egg which pulls in
everything that has been eggified on their own as dependencies. This
includes the ZODB and all zope.* and zope.app.* packages.

The second distribution is a tradtional tarball, which exactly matches
the current distribution format.


I'd like to change the egg distribution alone and introduce one
setuptools extra to it. The old tarball distribution would stay the same.

The standard Zope2 egg install would only include those zope.* and
zope.app.* packages which it actually requires.

The extra would be called 'zope_app' and pull in all zope.* and
zope.app.* packages which we did include so far, but are not actually
required to run Zope 2.

For example:

extras_require = dict(
    zope_app = [


Any package that does require any of the zope.* or zope.app.* packages
can define those as an explicit dependency itself. The zope_app extra
makes the transition phase easier, in which packages do not yet declare
all their dependencies. In the long run, the extra can be dropped entirely.

This proposal makes it possible to get a smaller, well-defined Zope2
egg. The first egg release of Zope2 gives us an opportunity to do this
move without breaking backwards compatibility.

While Zope 2 has included large parts of Zope 3, it never exactly
included all of it. As Zope 3 is not likely to see an ongoing monolithic
release, I don't see a reason for Zope 2 to include Zope 3 in the
monolithic fashion we do so far.


This is not yet implemented but should be quite easy. Figuring out the
exact packages which are required by Zope 2 is to be done.

Questions / Comments / Feedback

Are more than welcome.


Zope-Dev maillist  -  Zope-Dev@zope.org
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope )

Reply via email to