[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