[Distutils] PEP 426 updated (with more than you ever wanted to know about version schemes)

Paul Moore p.f.moore at gmail.com
Tue Feb 12 14:55:57 CET 2013


On 12 February 2013 13:46, Daniel Holth <dholth at gmail.com> wrote:
> I'm fairly certain you will find that distutils does not support eggs or
> .egg-info at all. It does write PKG-INFO 1.1. bdist_wheel (a setuptools
> plugin which does support eggs) has always just upgraded that metadata to
> version 1.2+ to express setuptools features. Since distutils doesn't support
> setuptools features you might not need to edit PKG-INFO at all, just
> generate the manifest (RECORD) correctly.

(pure) distutils writes a .egg-info file with the package metadata in
it. That's all. What you're saying bdist_wheel does - upgrade that
metadata to version 1.2+ - is what I'm talking about. Basically it's
create the .dist-info directory and then rename the generated
.egg-info file to dist-info/PKG-INFO. However, I'm not 100% sure
that's sufficient, which is why I was asking.

> I still think it makes more sense to just download distribute and wheel when
> you want to build one, but to each his own... if you need to create packages
> for pypi without being able to install things from it, knock yourself out.

See my other email about backward compatibility and supporting
existing packages.

It's not *quite* as simple as downloading distribute and wheel - you
also need to edit setup.py to import setup() from setuptools rather
than from distribute. Trivial, I know, but only if you're doing it
manually. Tools like pip have to do that ugly override dance.

And there's the whole question of what it means for Python to
"support" wheels if the core doesn't let you build them.

If "download distribute and wheel" is really enough, why do the core
developers care at all? Serious question - Antoine was asking on
python-dev what it means for Python to "support wheels" and why the
wheel format PEP was even needed if it was all implemented externally.
And Nick certainly cares. I can write the code, but I can't make the
decision as to whether it's necessary to do so...

>From your other email:

> All wonderful but we can finish the binary format wheel first :-)

It may be that getting code into distutils that allows creation of
wheels is a necessary requirement to getting the PEP accepted. That's
what I'm trying to understand (and provide, if it *is* needed).

Paul


More information about the Distutils-SIG mailing list