[Distutils] PEP 426: proposed metadata caching convention

Daniel Holth dholth at gmail.com
Wed Feb 27 16:35:51 CET 2013


On Wed, Feb 27, 2013 at 10:08 AM, Vinay Sajip <vinay_sajip at yahoo.co.uk> wrote:
> Daniel Holth <dholth <at> gmail.com> writes:
>
>> Vinay's distlib has taken the wheel spec at its word, runs an
>> unmodified "install" command with all the various paths set to
>> wheel-compatible distname-1.0.data/scripts etc., and converts the
>> .egg-info directory to .dist-info the same as bdist_wheel's final
>> step.
>
> Right, except there's no conversion of .egg-info to .dist-info in distlib
> itself. That's done by the separate wheeler.py demonstration script, which
> uses vanilla pip to install to a holding location, converts the .egg-info to
> .dist-info and then builds the wheel from that.
>
> At installation time, the wheel's .dist-info contents are moved to the
> installation site's site-packages, except for WHEEL, which is omitted,
> and RECORD which is recreated.
>
>> All wheel does is it takes a basic assumption of distutils2 (avoid
>> running setup.py), rearranges it slightly (avoid running setup.py at
>> install time) and magically people seem to like it. I wanted lxml to
>> compile faster and wound up with a distutils escape hatch. Now I think
>
> A happy accident, then!
>
>> that avoiding running *distutils* at install time is much more
>> important than avoiding setup.py.
>>
>
>> It's just the 1.0 release. There's no hurry to write the document
>> entitled "PEP 376 is now the/a standard *interchange* format for
>> [snip]
>> third-party products to do everything else" are higher up on the Grand
>> Python Packaging Plan or GP3 (tm) to-do list.
>
> I suppose you're right, but I want to make as much progress as I can while I
> still have the time I can spend on this, and while the grey cells haven't
> succumbed to packaging fatigue ...  :-)

Luckily parts of your brain are red and black. I'm amazed at the
effort you've put forth so far. The idea isn't to limit the amount of
progress but simply to have a good separation between a smaller number
things we need to agree on and probably put in the stdlib (for example
dependency declarations and a basic binary format) and the things we
don't have to or are very unlikely to agree on that will probably be
outside the stdlib (for example a not-likely-forthcoming universal
build system, and perhaps "the best" way to cache .dist-info assuming
the feature is even beneficial at all).

Anyway Nick has been describing a different thing "numpy or package
specific post-install hook" than the proposal "some way to run code
that is intended to cache .dist-info directories at install time
without patching every installer".


More information about the Distutils-SIG mailing list