[Distutils] the 'wheel' binary package format

Paul Moore p.f.moore at gmail.com
Mon Jul 2 17:59:51 CEST 2012


On 2 July 2012 15:51, Daniel Holth <dholth at gmail.com> wrote:
> It is always a pain to use an installer to replace itself. Sorry.

Not your fault, it's just the way it is (combined with my lack of
familiarity with any aspect of pip/distribute beyond "pip install
pkg_from_pypi").

> Double oops. I have pushed bdist_wheel to my cpython fork, but that
> doesn't take care of the installer. I am definitely interested in
> porting the distribute version over to Python 3. I just haven't gotten
> to it.

Hmm, I'm a little confused as to how the bits hang together here.
Maybe some clarification would help. How close is the following?

pip - your patch for this is to recognise wheel files and use
distribute to install them
distribute - your patch for this is to add support for installing
wheel files (and to add a bdist_wheel command for building them???)
wheel - support library for the above, provides functions to work with
wheel files

Is that close?

Assuming it is, I'm not sure I follow what you say in the paragraph
above - what is the cpython patch you mention? You can't patch
distutils with bdist_wheel as it's feature-frozen, and packaging is
being taken out of 3.3 (if it hasn't already). I don't see much point
in maintaining a cpython patch that won't get accepted. And I'm not
sure what you mean by "the installer".

Based on my interpretation of what you say above, the things I see
outstanding are:

1. wheel discovery and download from PyPI  or local archives (so pip
install x will find and download x.whl before/as well as an x sdist)
2. wheel upload to PyPI (probably needs PyPI changes to support the new format)
3. converters to allow people to convert eggs and bdist_wininst
binaries to wheel format (otherwise you have a chicken-and-egg problem
in that wheels are only good for speeding up installs, rather than for
installing things you can't build for yourself)

(1) and (2) are longer-term requirements, and (3) may or may not be a
key requirement for you - in any case, others who do need the facility
could develop these independently. So it seems to me like you're
nearly there (assuming the pip and distribute maintainers accept your
patches).

Paul.


More information about the Distutils-SIG mailing list