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.gronh...@nextday.fi <mailto:alex.gronh...@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.gronh...@nextday.fi
    <mailto:alex.gronh...@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.mo...@gmail.com <mailto:p.f.mo...@gmail.com>> wrote:

            On 3 May 2016 at 17:47, Donald Stufft <don...@stufft.io
            <mailto:don...@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@python.org
            <mailto:Distutils-SIG@python.org>
            https://mail.python.org/mailman/listinfo/distutils-sig



        _______________________________________________
        Distutils-SIG maillist  -Distutils-SIG@python.org 
<mailto:Distutils-SIG@python.org>
        https://mail.python.org/mailman/listinfo/distutils-sig


        _______________________________________________
        Distutils-SIG maillist  - Distutils-SIG@python.org
        <mailto:Distutils-SIG@python.org>
        https://mail.python.org/mailman/listinfo/distutils-sig



    _______________________________________________
    Distutils-SIG maillist  - Distutils-SIG@python.org
    <mailto:Distutils-SIG@python.org>
    https://mail.python.org/mailman/listinfo/distutils-sig


_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to