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

M.-A. Lemburg mal at egenix.com
Mon May 12 22:50:25 CEST 2014


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).

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source
>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________

::: Try our new mxODBC.Connect Python Database Interface for free ! ::::


   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
               http://www.egenix.com/company/contact/


More information about the Distutils-SIG mailing list