[Distutils] the 'wheel' binary package format

Robert Kern robert.kern at gmail.com
Sun Jul 1 20:44:03 CEST 2012


On 7/1/12 6:52 AM, Daniel Holth wrote:
> I got tired of waiting for lxml to compile over and over again, so I
> invented a binary packaging format called 'wheel' (of cheese) that
> uses Metadata 1.2 and .dist-info directories instead of .egg-info,
> patched pkg_resources.py to be able to load .dist-info directories,
> implemented "python setup.py bdist_wheel", and patched pip to be able
> to install .whl files.
>
> The gist of the spec is that it is a zip file with the .whl extension
> containing the contents of 'purelib' for a distribution, plus a
> Name-1.0.dist-info/ directory with the metadata files, plus
> Name-1.0.data/subdir directories for scripts, platlib, packaging's
> "categories", ...
>
> My specification so far is at
> https://docs.google.com/document/d/1mWPyvoeiqCrAy4UPNnvaz7Cgrqm4s_cfaTauAeJWABI/edit
> and an lxml compiled for linux-x86-64 is at
> https://docs.google.com/open?id=0BxHz5bC4iN5TN0VWTFNrZGtCbWs
>
> http://bitbucket.org/dholth/distribute
> http://github.com/dholth/pip
> http://pypi.python.org/pypi/wheel
>
> Perhaps it will be useful. The implementation is still pretty rough,
> for example it does not check the architecture while installing, but
> it could be a handy way to speed up repeated virtualenv builds.

Very nice.

I like how much information the file names provide. Do you think it would be 
possible to add (optional) build numbers to the specification? At Enthought, we 
make a Python distribution with access to a repository of binary eggs. When 
regularly building third party eggs for downstream consumption, it's essential 
to have build numbers in the file name since we need to fix bugs in our builds 
while keeping the upstream version of the package itself the same. Linux 
distributions have the same issue and put in build numbers into their package 
file names.

I'm not sure I'd go so far as to force every .whl to have a build number in it, 
but it would be great if we could figure out a way to have a compatible 
convention that could include build numbers when needed.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
  that is made terrible by our own mad attempt to interpret it as though it had
  an underlying truth."
   -- Umberto Eco





More information about the Distutils-SIG mailing list