[Distutils] Buildout status
Jim Fulton
jim at zope.com
Wed May 11 15:21:12 CEST 2011
Buildout has become too complex for me to maintain. Two factors in
particular have increased it's complexity to the breaking point, the
isolation machinery introduced in 1.5 and the code to support the fork
of setuptools.
Let me be clear about 1.5: I really *really* appreciate the effort
Gary Poster put in to that release. I don't fault his effort, given
it's goals, I've just decided that the goals were too ambitious.
I recently released 2.0.0a1 for Python 3. Not all tests pass under
Python 2 or 3, but enough pass to make this usable with Python 3. The
next phase of work will probably involve responding to problems people
report with this release. (So far, it's been much quieter than I
expected.) After that, I'll get going on the version 2 release in
earnest. In the mean time, people will have some time to respond to
what I say next, which may be controversial. :)
While the current release of buildout 2 has all the features from 1.5,
future releases will not. Buildout has to get simpler, or someone else
has to take over maintenance. Assuming the former, I plan to
eliminate some high maintenance features, including:
- Support for multiple Python interpreters within a single buildout
- Partial isolation from site packages and site.py
Buildout will have an "isolated" mode. In this mode, it will exclude
directories from the path that are added by site.py. (I'm not
certain what the default should be. I previously thought buildout
should switch to being isolated by default, but given the popularity
of using buildout with virtualenv, I'm leaning towards making
isolation optional.)
z3c.recipe.scripts will be spun off to a separate project along with
it's support code currently living in the zc.buildout package. I'll
to whatever I can, by providing hooks, to support this recipe, but
the maintenance of this feature has to move out of buildout.
- Support for both setuptools and distribute
I'm going to support one, or the other, or neither. I'm in a tough
spot. Distribute, which was created because setuptools wasn't being
maintained, is no longer being maintained, except there was a recent
release. Setuptools, which is being maintained, doesn't work with
Python 3. (I was thinking about forking distribute to eliminate the
dependency, but after further consideration, I don't think that's a
good idea, as one of these is needed to build source releases that
depend on them.) My current leaning is toward porting setuptools to
2&3 and supporting only setuptools.
Jim
--
Jim Fulton
http://www.linkedin.com/in/jimfulton
More information about the Distutils-SIG
mailing list