As I pointed out in my previous post, "extended commands" are not the
only use case for setup_requires -- upgrading setuptools itself would
enable support for PEP 508 style conditional requirements. This
currently does not work because if you have such requirements in your
setup(), setuptools will fail when parsing those before it even has a
chance to act on the minimum setuptools requirement specification in
setup_requires.
03.05.2016, 21:33, Daniel Holth kirjoitti:
What happened is that only a half-dozen setuptools experts (I am not
one of those six people) know how to write an extended command or
whatever that would actually be able to take advantage of setup
requirements as implemented by setuptools. Everyone else wants to
"import x" at the top of setup.py and pass arguments to the setup()
function. So it would be better to have the installer make that possible.
On Tue, May 3, 2016 at 2:29 PM Alex Grönholm <[email protected]
<mailto:[email protected]>> wrote:
No, setuptools parses the install requirements before acting on
setup requirements. That is the source of the problem. If
setuptools only parsed and acted on setup requirements before even
parsing install requirements, this wouldn't be an issue.
03.05.2016, 21:26, Leonardo Rochael Almeida kirjoitti:
On 3 May 2016 at 15:07, Alex Grönholm <[email protected]
<mailto:[email protected]>> wrote:
Having setuptools process the setup requirements before
parsing install requirements would be a good step forward.
Had that been done before, we could've just added a setup
requirement for a newer setuptools to enable PEP 508
conditional requirements.
Setuptools does process setup requirements before install
requirements. The "chicken and egg" issue with setuptools is
that, most of the time, setup requires are needed to calculate
information that is passed into the `setup()` call itself.
For example information on header files coming from the C api of
`numpy` which is used to build extensions.
This usually means importing code from the packages in "setup
requires" before setuptools has a chance to actually look at it.
A simple fix would be to allow `setup()` keywords to accept
functions as well as direct values and only invoke the functions
when the values are actually needed, but this idea never gained
traction.
Of course, even if this was implemented, it wouldn't help
directly with "setup requiring" a new version of setuptools
itself, unless setuptools detected this situation and reinvoked
setup.py from scratch.
Regards,
Leo
03.05.2016, 21:04, Daniel Holth kirjoitti:
We did separate build from install. Now we just want to be
able to build without [having to emulate] distutils; just
having some dependencies installed before setup.py runs
would also be a great boon.
I'm reading part of this conversation as "a simple
bdist_wheel bug is a reason to do a lot of work
standardizing file formats" which I find unfortunate.
If he is still up for it let Robert implement his own PEP as
the way forward for build system abstraction. The extra PEPs
are just delaying action.
On Tue, May 3, 2016 at 1:11 PM Paul Moore
<[email protected] <mailto:[email protected]>> wrote:
On 3 May 2016 at 17:47, Donald Stufft <[email protected]
<mailto:[email protected]>> wrote:
> It will likely get decided as part of the build system
PEP, whenever that
> gets picked up again.
Yes, but on 15th March
(https://mail.python.org/pipermail/distutils-sig/2016-March/028457.html)
Robert posted
> Just to set expectations: this whole process seems
stalled to me; I'm
> going to context switch and focus on things that can
move forward.
> Someone please ping me when its relevant to put effort
in again :).
And I think that's right. The whole build system PEP
issue appears
stalled from a lack of someone willing (or with the
time) to make a
call on the approach we take.
As far as I'm aware, the decision remains with Nick.
With the possible
exception of Donald's proposal (which AFAIK never got
formally
published as a PEP) everything that can be said on the
other proposals
has been said, and the remaining differences are ones of
choice of
approach rather than anything affecting capabilities.
(Robert's
message at
https://mail.python.org/pipermail/distutils-sig/2016-March/028437.html
summarised the state of the 3 proposals at the time).
I think this is something that should be resolved - we
don't appear to
be gaining anything by waiting, and until we have a
decision on the
approach that's being taken, we aren't going to get
anyone writing
code for their preferred option.
Nick - do you have the time to pick this up? Or does it
need someone
to step up as BDFL-delegate? Robert, Nathaniel, do you
have time to
spend on a final round of discussion on this, on the
assumption that
the goal will be a final decision at the end of it?
Donald, do you
have the time and interest to complete and publish your
proposal?
Paul
_______________________________________________
Distutils-SIG maillist - [email protected]
<mailto:[email protected]>
https://mail.python.org/mailman/listinfo/distutils-sig
_______________________________________________
Distutils-SIG maillist [email protected]
<mailto:[email protected]>
https://mail.python.org/mailman/listinfo/distutils-sig
_______________________________________________
Distutils-SIG maillist - [email protected]
<mailto:[email protected]>
https://mail.python.org/mailman/listinfo/distutils-sig
_______________________________________________
Distutils-SIG maillist - [email protected]
<mailto:[email protected]>
https://mail.python.org/mailman/listinfo/distutils-sig
_______________________________________________
Distutils-SIG maillist - [email protected]
https://mail.python.org/mailman/listinfo/distutils-sig