[Distutils] moving things forward

Alex Grönholm alex.gronholm at nextday.fi
Tue May 3 15:28:22 EDT 2016


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 <alex.gronholm at nextday.fi 
> <mailto:alex.gronholm at nextday.fi>> 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 <alex.gronholm at nextday.fi
>>     <mailto:alex.gronholm at nextday.fi>> 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
>>>         <p.f.moore at gmail.com <mailto:p.f.moore at gmail.com>> wrote:
>>>
>>>             On 3 May 2016 at 17:47, Donald Stufft <donald at stufft.io
>>>             <mailto:donald at stufft.io>> 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  - Distutils-SIG at python.org
>>>             <mailto:Distutils-SIG at python.org>
>>>             https://mail.python.org/mailman/listinfo/distutils-sig
>>>
>>>
>>>
>>>         _______________________________________________
>>>         Distutils-SIG maillist  -Distutils-SIG at python.org <mailto:Distutils-SIG at python.org>
>>>         https://mail.python.org/mailman/listinfo/distutils-sig
>>
>>
>>         _______________________________________________
>>         Distutils-SIG maillist  - Distutils-SIG at python.org
>>         <mailto:Distutils-SIG at python.org>
>>         https://mail.python.org/mailman/listinfo/distutils-sig
>>
>>
>
>     _______________________________________________
>     Distutils-SIG maillist  - Distutils-SIG at python.org
>     <mailto:Distutils-SIG at python.org>
>     https://mail.python.org/mailman/listinfo/distutils-sig
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20160503/a4eb967e/attachment-0001.html>


More information about the Distutils-SIG mailing list