-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issue #6163: Postpone using PEP 517 by default #6229
Issue #6163: Postpone using PEP 517 by default #6229
Conversation
* Temporarily changes the mode selection logic to only implicitly use PEP 517 if the pyproject.toml build-system.build-backend key is set * Adds sys.path test cases for 3 pyproject.toml scenarios: - no build-system section - build-system section without build-backend - build-system section with build-backend
Hmm, I just realised "has a build-system section" is going to be a better opt-in than "has a build-backend entry", as otherwise |
I'm getting confused as to the various proposals going round here. There's this, the one about switching to |
Nick is summarizing, but I think this one is orthogonal to the other proposals, right? This is the "postpone the PEP 517 opt-in until 19.1 to buy us time" PR. I would like to get the integration-tests repo up and going well before the 19.1 release, so we can try to more extensively test the interplay between |
I narrowed the change in defaults even further such that even an empty There's one test that I marked as a strict |
Why? I think we should make the opt-in condition that |
@pganssle If The All 3 initially failed with this change, so I got CI passing again by having the first two continue to opt-in to build isolation, while marking the 3rd test as an expected failure (which will start passing again once the default behaviour is able to be changed back to running an isolated build with the |
Details on the failures reported by Travis:
|
Eh, I don't think this is worth doing at all at this point. Probably we missed our window already and most people have permanently hard-coded --no-use-pep517 into their installation workflows by now. This version of the "fix" will still break a bunch of stuff, including setuptools itself. Might as well just live with the fact that |
@pganssle Adding the "How are imports from setup.py handled?" test cases is critical if anyone is ever going to be able to migrate such projects to PEP 517. |
I meant the postponement of the pep 517 default. The other stuff is just |
There's still going to be a window of weeks or months where pip 19 will define the behaviour of interactive installs (as opposed to automated CI workflows). |
@pfmoore @pradyunsg What are the consequences of allowing (The way I've structured this PR is based on the assumption that that isn't an available option) Otherwise I'm going to have to resurrect PR #6210, as that currently seems to be the only proposed workaround for the compatibility break that actually works, since it retains the build isolation, while adding back the source directory to |
This is precisely what |
Ah, cool - I'd missed that |
Ah, no - there were a lot more than 3 failures in the initial draft where even I've pushed that broken version now, so folks can see the By contrast, the original "add the source directory back to |
Reviewing the failures, I believe the issue is that when the PEP 517 support was added, the original PEP-518-only support was removed. This means that if PEP 517 gets turned off, then |
Closing this one as it turned out that it unfortunately doesn't resolve the original issue - disabling PEP 517 means affected projects that are relying on both PEP 518 and local imports from Instead, we'll go back to the original plan, with #6210 as an interim workaround for pip 19.0.2 that should get most install scripts working again, and then the longer term solution with |
@ncoghlan I think you missed clicking the close button so I did that in my end. :) |
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Temporarily changes the mode selection logic to
only implicitly use PEP 517 if the pyproject.toml
build-system table is present
Adds sys.path test cases for 3 pyproject.toml scenarios: