[Zope-dev] Proposal: Make Zope2 smaller

Tres Seaver tseaver at palladion.com
Sun Oct 26 13:57:00 EDT 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hanno Schlichting wrote:
> 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.

+1 to releasing a Zope 2.12 egg with "minimal" / "correct" dependencies.
   Perhaps the following script would help to identify them:

 http://www.tarind.com/py2depgraph.py



Tres.
- --
===================================================================
Tres Seaver          +1 540-429-0999          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJBK9s+gerLs4ltQ4RApXCAJ0XxxlGM6kqPiepsDySVXBA4C4NnQCeI53v
qJcn001PPGZjJ1YlhUUMT0U=
=UprJ
-----END PGP SIGNATURE-----



More information about the Zope-Dev mailing list