[Distutils] Comments on PEP 426

M.-A. Lemburg mal at egenix.com
Tue Sep 3 23:20:00 CEST 2013


On 31.08.2013 17:56, Nick Coghlan wrote:
> setuptools definitely has its issues, but it's still substantially superior
> to distutils, and has the critical virtue of behaving the *same* in all
> currently supported versions of Python. Consistency across platform
> versions is something you really want in a build tool, and is something a
> standard library module like distutils can never provide. As one of the
> most conservative Linux vendors, even Red Hat has acknowledged this key
> point by creating the Red Hat Developer Toolset to provide a more
> consistent build experience across different RHEL versions. Microsoft (with
> Visual Studio) and Apple (with XCode) have long worked the same way.

I think you're overestimating the usefulness of setuptools here.

setuptools only extends distutils in various ways, it doesn't
replace it. And it doesn't do a good job at extending it, since
it monkey patches distutils in areas where monkey patching
is not necessary (*).

distutils does provide a pretty straight forward way to extend it,
adding new commands to it and new options to existing commands.
I've been extending distutils for many many years in mxSetup.py
(which is part of egenix-mx-base). It's been working great and
I only rarely had to revert to monkey patching in order to get
something implemented.

IMO, a much better way forward would be to integrate useful setuptools
changes right back into distutils, so that the monkey patching
no longer happens and python-dev can officially bless those
set of changes.

BTW: I'm not sure where you get the idea from that setuptools
behaves the same across Python versions or platforms. It simply
inherits the distutils changes in each version and thus exhibits
the same problems (if any) that you see with distutils itself.

(*) Monkey patching is necessary in a few places, but most of those
could be fixed by splitting out method code into new methods which can
then be overridden to provide the new functionality. Note that
this is a classical problem with OO code, there's nothing special
here w/r to distutils.

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Sep 03 2013)
>>> Python Projects, Consulting and Support ...   http://www.egenix.com/
>>> mxODBC.Zope/Plone.Database.Adapter ...       http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________

::::: Try our mxODBC.Connect Python Database Interface for free ! ::::::

   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
               http://www.egenix.com/company/contact/


More information about the Distutils-SIG mailing list