Hi. I'd like to get feedback on an idea I had recently.
Problem 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. Assumption 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. Proposal 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 = [ 'zope.app.rotterdam', 'zope.app.<...>', ], ), Rational 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. Implementation 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. Hanno _______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )