[Python-Dev] BDFL delegation for PEP 426 (PyPI metadata 1.3)
vinay_sajip at yahoo.co.uk
Sun Feb 3 23:16:28 CET 2013
Daniel Holth <dholth <at> gmail.com> writes:
> Bento is the only available packaging tool to heap praise onto and it is
> impressive. I am reacting to all the hate heaped on setup tools when I think
> the underlying DistUtils design is a big part of the problem. My feeling is
> that stdlib packaging tools should be for bootstrapping and reference, more
> like wsgiref than django.
Bento is interesting, but I wouldn't jump to heap praise onto it. Apart from the
somewhat idiosyncratic source style, David Cournapeau himself points to what he
regards as weaknesses in it. It is no doubt a better build tool than
distutils for NumPy/SciPy users, and that's great. However, from what I could
see, the documentation is not very detailed, making it hard to evaluate, and
much of the build internals seem to be in some other tool called yaku, for which
I couldn't find much documentation.
When I see a sentiment suggesting that "Python should get out of the build tools
business" (paraphrasing what Daniel said, not quoting him), I can certainly see
why the distutils compiler infrastructure would make one think that, if it was
impossible to come up with something better. However, I do feel there is room
for a battery included in this area, as long as it is simple and easier to build
on than distutils has been. Although I have not started to add anything in this
area to distlib, I have spent some time thinking about the problems, and I have
some experimental work in mind.
I don't believe that "hate" is the right word when talking about why setuptools
isn't loved more by python-dev. Since it was extending the flawed distutils
design, it doesn't make sense to have it getting any closer to the stdlib, and
it could perhaps be argued that distutils2/packaging also failed to make
sufficient progress for the same reason.
Certainly, with distlib I've tried to incorporate a lot of the setuptools
functionality which developers find useful - in-package data, package exports
(entry points), wrapping callables with scripts and so on.
More information about the Python-Dev