[Distutils] PEP 438, pip and --allow-external

Donald Stufft donald at stufft.io
Mon May 12 22:51:49 CEST 2014


On May 12, 2014, at 4:50 PM, M.-A. Lemburg <mal at egenix.com> wrote:

> On 12.05.2014 22:37, Donald Stufft wrote:
>> 
>> On May 12, 2014, at 4:33 PM, M.-A. Lemburg <mal at egenix.com> wrote:
>>>>> Binary installs are nice, but they are not the answer to everything
>>>>> and no matter how much meta data you put into static files,
>>>>> there will always be cases where that meta data description just
>>>>> doesn't include those bits you would need to complete the setup,
>>>>> esp. for packages with C extensions and more complex external
>>>>> dependencies or setup requirements. (*)
>>>>> 
>>>>> The setup.py interface makes all this possible, which is why so
>>>>> many Python packages use it to configure themselves automatically.
>>>>> 
>>>>> Deprecating this interface would make some distributions impossible
>>>>> to install without manual user intervention and we'd be back to the
>>>>> Makefile.pre.in days.
>>>>> 
>>>>> I don't think that's a good idea. It still is a very good idea
>>>>> to make more meta data available in static non-executable form
>>>>> in order to simplify finding packages, determining
>>>>> dependencies, features, enhancing the PyPI UI, and for
>>>>> deciding which distribution file to download and install.
>>>>> 
>>>>> This can be generated by setup.py as part of the build process
>>>>> and made available to PyPI during package release registration
>>>>> (much like it is now, only in extended form).
>>>>> 
>>>>> (*) This does work if you are only targeting a few select systems and
>>>>> system versions, but the Python user base out just has too many
>>>>> diverse setups to be able to address them all to be able to
>>>>> completely drop setup.py.
>>>> 
>>>> This is slightly confusing but pip will always be able to go from an sdist to
>>>> an installed system. It'll just build a Wheel first and then install the Wheel
>>>> (at least that's the idea). This is a sort of vague idea right now but it's the
>>>> direction we want to go in.
>>> 
>>> Ah, so this is just a misunderstanding on my part then. I thought
>>> Paul was saying that having pip run setup.py will go away.
>>> 
>>> Thanks for the clarification,
>>> 
>> 
>> I should expand on that answer, that sdist 2.0 will ideally include static
>> metadata but it won't be a static build system. Things like name, version,
>> dependencies etc will be static, but building will be done by executing some
>> code.
> 
> Now, you've got me really confused. Is this something I can read up
> somewhere ?
> 
> sdists already includes static package information in the PKG-INFO file
> (format 1.0, but that could be changed to e.g. 2.0).

It's really not written up anywhere yet because nobody has done any work on it
yet. Most the work in that area has been focused on Metadata 2.0.

-----------------
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20140512/7384cc5b/attachment-0001.sig>


More information about the Distutils-SIG mailing list