[Python-Dev] External Package Maintenance (was Re: Please stop changing wsgiref on the trunk)

Phillip J. Eby pje at telecommunity.com
Mon Jun 12 19:08:52 CEST 2006

At 09:43 AM 6/12/2006 -0700, Guido van Rossum wrote:
>On 6/12/06, Phillip J. Eby <pje at telecommunity.com> wrote:
>>At 09:04 AM 6/12/2006 -0700, Guido van Rossum wrote:
>> >IOW I think PEP 360 is an unfortunate historic accident, and we would
>> >be better off without it. I propose that we don't add to it going
>> >forward, and that we try to get rid of it as we can.
>>4 of the 6 modules in PEP 360 were added to Python in 2.5, so if you want
>>to get rid of it, *now* would be the time.
>I'm all for it.
>While I am an enthusiastic supporter of several of those additions, I
>am *not* in favor of the special status granted to software
>contributed by certain developers, since it is a burden for all other

While I won't claim to speak for the other authors, I would guess that they 
have the same reason for wanting that status as I do: to be able to 
maintain an external release for their existing users with older versions 
of Python, until Python-in-the-field catches up with Python-in-development.

Right now, the effective industry-deployed version of Python is 2.3 - maybe 
2.2 if you have a lot infrastructure in Python, and 2.1 if you support Jython.

>I also suspect that the external linking will continue to cause a
>burden for Python developers -- upgrading to a newer version of the
>external package would require making sure that no changes made by
>Python developers in the previous release bundle are lost in the new
>release bundle.

I'd be willing to live with e.g. moving wsgiref to an Externals/wsgiref 
subdirectory of the main Python tree, *without* svn:externals, and simply 
bumping its version number in that directory to issue snapshots.

This would be no different from the current situation (in terms of svn 
usage for core developers), except that I could go to one directory to get 
an "svn log" and review what other people did to the code and docs.  Right 
now, I've got to track at least three different directories to know what 
somebody did to wsgiref in the core.

>I personally think that, going forward, external maintainers should
>not be granted privileges such as are being granted by PEP 360, and an
>inclusion of a package in the Python tree should be considered a
>"fork" for all practical purposes. If an external developer is not
>okay with such an arrangement, they shouldn't contribute.

This is going to make it tougher to get good contributions, where "good" 
means "has existing users and a maintainer committed to supporting them".

>Perhaps issues like these should motivate us to consider a different
>source control tool. There's a new crop of tools out that could solve
>this by having multiple repositories that can be sync'ed with each
>other. This sounds like an important move towards world peace!

First we'd need to make Python's build process support building external 
libraries in the first place.  If we did that, we could solve the problem 
in SVN right now, as long as maintainers were willing to move their 
project's main repository to Python's repository.

If I understand correctly, the main thing it would require is that Python's 
setup.py invoke all the Externals/*/setup.py files.

More information about the Python-Dev mailing list