[Distutils] Re: [Python-checkins] python/dist/src/Lib/distutils sysconfig.py,1.52,1.53

M.-A. Lemburg mal@lemburg.com
Mon Nov 11 04:09:02 2002


Jeremy Hylton wrote:
>>>>>>"MAL" == mal  <M.-A.> writes:
> 
> 
>   >> Python 1.5.2 users have been running with distutils 1.0.2 for
>   >> about a year and a half now.  We haven't heard any complaints
>   >> from them about the lack of releases for 1.5.2.
> 
>   MAL> Maybe that's because package developers have tried to keep
>   MAL> 1.5.2 compatibility by adding bug fixes to their setup.pys ?!
>   MAL> I know that I've done this in the past.
> 
> Examples, please.  I don't maintain any software that is intended to
> run with 1.5.2, so I can't quite imagine what you mean.

Here's one:

         # We set these here, since distutils 1.0.2 introduced a
         # new incompatible way to process .define and .undef
         if build_ext.define:
             #print repr(build_ext.define)
             if type(build_ext.define) is types.StringType:
                 # distutils < 1.0.2 needs this:
                 l = string.split(build_ext.define, ',')
                 build_ext.define = map(lambda symbol: (symbol, '1'), l)
             build_ext.define = build_ext.define + define
         else:
             build_ext.define = define

>   >> I believe the last release was good enough for 1.5.2.  If someone
>   >> can live with all the bugs and out-of-date stuff in 1.5.2, they
>   >> can live with a slightly out-of-date distutils, too.
> 
>   MAL> If they won't be able to compile distutils packages anymore,
>   MAL> they certainly won't feel good about it.
> 
> I don't think anyone has suggested making changes such that would
> prevent people from building distutils packages.  I just don't
> understand the fear here.

I am talking about users who want to build from source. Your
changes, even though just cosmetic, prevent compatibility with
Python 1.5.2, so these users will no longer have a chance to
update to the latest distutils version.

As a result, packagers who want to maintain Python 1.5.2
compatibility will have to start maintaining setup.pys for
various distutils versions out there and that's a pain (it
already is a pain having to maintain this compatibility for
the many Python versions out there).

>   >> It's a pain in the neck to hack on distutils and be careful to
>   >> avoid accidentally adding code that won't work with 1.5.2.
> 
>   MAL> Huh ? Avoiding string methods isn't all that hard.
> 
> In large software projects like Zope and Mailman, people have
> repeatedly run into problems with Python version compatibility.  There
> are lots of differences between 1.5.2 and 2.2.2, and it is easy to use
> a new feature without thinking "I'm using a new feature."

We have PEPs for this:

	http://www.python.org/peps/pep-0291.html
	http://www.python.org/peps/pep-0290.html

It's really not that hard to not use the latest features
in coding Python. None of the new hip features are necessary
for distutils' application scope.

>   MAL> Instead of discussing code cosmetics we should look into adding
>   MAL> more packagers for e.g. debian and freebsd. These things are
>   MAL> much more important, IMHO.
> 
> They haven't proven important enough for anyone to do anything about
> them <0.3 wink>.

That is not entirely true. There was an effort to standarize
binary packagers and add more support for Solaris and HP-UX.
Unfortunately, we had to pull the support from CVS due to
copyright issues.

I am repeating myself here, but I still don't understand where
the motivation to break distutils on Python 1.5.2 stems from.

-- 
Marc-Andre Lemburg
CEO eGenix.com Software GmbH
_______________________________________________________________________
eGenix.com -- Makers of the Python mx Extensions: mxDateTime,mxODBC,...
Python Consulting:                               http://www.egenix.com/
Python Software:                    http://www.egenix.com/files/python/