[Distutils] Meeting info re: sdists

Robert Collins robertc at robertcollins.net
Wed Oct 14 10:50:06 CEST 2015


On 14 October 2015 at 21:33, Paul Moore <p.f.moore at gmail.com> wrote:
> On 14 October 2015 at 01:46, Robert Collins <robertc at robertcollins.net> wrote:
...
>> Concretely:
>> {'build_requires': []} -> no build requirements
>> {} -> get build requirements by running the build system
>
> One use case that I don't think is covered here is publishing
> dependency metadata via PyPI. I believe distlib needs this for some
> functions (at the moment, I think it uses an externally hosted set of
> package dependency data that's maintained by Vinay), and I know there
> have been a number of utility scripts I've needed to write that I
> simply haven't been able to because doing so would involve a
> significant amount of extra work downloading and running package code.

Where thats static (expressable for all installs using PEP-426
conditions) we will be able to do that for sdists. Where its dependent
on the build environment, we can't do that today (but we already can
for wheels).

For illustration, consider a numpy extension, the version of numpy
present in the build environment determines some of the
install-requires. The sdist can build against a much wider range of
numpy versions than the resulting binary can run against.

> If there are dependencies that are only detectable at wheel build
> time, then so be it (I'm still looking for an example, but it's clear
> that the potential is there) but I'd like some way of getting at
> whatever dependency information a wheel (source or binary) provides
> via the PyPI JSON API - and I'd like an assurance that if dependency
> information *can* be determined statically, it will be.

That is exactly the intent.

-Rob


-- 
Robert Collins <rbtcollins at hp.com>
Distinguished Technologist
HP Converged Cloud


More information about the Distutils-SIG mailing list