[Distutils] Ensuring source availability for PyPI entries / PEP: Build system abstraction for pip/conda etc
Robert Collins
robertc at robertcollins.net
Wed Feb 10 13:46:02 EST 2016
On 11 February 2016 at 02:36, M.-A. Lemburg <mal at egenix.com> wrote:
>> Currently what pip does is to
>> invoke
>>
>> $ python setup.py egg_info --egg-base $TEMPDIR
>>
>> to get the metadata. It is not possible to get the metadata without
>> executing the setup.py which is problematic for many applications.
>> Providing a static pypa.json file is much better: tools can read a
>> static file to get the metadata.
>
> Depends on which kind of meta data you're after. sdist packages
> do include the static PKG-INFO file which has the version 1.0
> meta data. This doesn't include dependencies or namespace
> details, but it does have important data such as version,
> package name, description, etc.
For pip to use it, it needs to include - reliably - version, name, and
dependencies; for it to be in any way better, we also need
setup-requires or a functional equivalent.
Today, we can't rely on the PKG-INFO being complete, so we assume they
are all wrong and start over. One of the things we'll get by being
strict in subsequent iterations is the ability to rely on things.
> In the end, you'll just be defining a different standard
> to express the same thing in different ways.
>
> The setup.py interface was never designed with integration in mind
> (only with the idea to provide an extensible interface; and I'm not
> going get into the merits of setuptools additions such as
> --single-version-externally-managed :-)) but it's still
> quite usable for the intended purpose.
However we *are defining an integration point*, which is yet another
reason not to use the setup.py interface.
-Rob
--
Robert Collins <rbtcollins at hpe.com>
Distinguished Technologist
HP Converged Cloud
More information about the Distutils-SIG
mailing list