The possibility of doing it in setuptools is discussed extensively in the threads, but a lot of us are going off of half-remembered discussions, so it's probably a good idea to get a central "agenda" of the things we want to resolve and create a new thread for discussion in the discourse.
Items I see for the agenda:
- The most urgent question for discussion that I see is what should be done now. This seems to me like a major issue, and I'm wondering if it would make sense to revert the major change in behavior until we iron out some of the details. It seems like many people in the thread (and people I've spoken to in person) are "solving" this by just pinning pip to < 19.0.
- From the setuptools side, I think we don't want to be forced to
rush things. setuptools is already a huge bundle of compromises
and less-than-ideal defaults because we have so few opportunities
to fix the crustier parts of it without introducing enormous code
churn. I don't want us to have to put compatibility shims into our
main build backend just to unbreak some people today if we can
avoid it with a less permanent "band-aid" solution.
I haven't read those discussions in full (sorry to be lazy, but there's quite a lot there), but my initial take is that the rule doesn't apply to running setup.py scripts, where there's a greater need for backward compatibility. I think the rule about the CWD not being on sys.path only applies to loading a proper PEP 517 build backend when that's specified in pyproject.toml.
Furthermore, if the build backend then wants to run some code with the CWD on sys.path, I think it's free to do so, so this could be implemented in the setuptools backend. The rule is only for how the frontend loads the backend, not what the backend does afterwards.
Where a real PEP 517 backend needs to be loaded from the CWD (e.g. for Flit to bootstrap itself), we've already got the intreehooks package to make this possible: https://pypi.org/project/intreehooks/
On Sun, Jan 27, 2019, at 2:26 PM, Chris Jerdonek wrote:
For those of you who participated in the PEP 517 discussion during the summer of 2017 (just prior to its provisional acceptance), I want to flag that one of the issues discussed back then has now resurfaced for discussion. This is because the feature was turned on by default in pip's latest release (19.0) less than a week ago.
The issue is the one around whether the source directory should be included in sys.path. The resurfacing is more or less as predicted. For example, in one email  from August 29, 2017, Nick summarized the state of things by saying (not too long before provisional acceptance)--
So I think we can deem this one resolved in favour of "Frontends must ensure the current directory is *NOT* on sys.path before importing the designated backend", as starting there will mean we maximise our chances of learning something new as part of the initial rollout of the provisionally accepted API.
2. If omitting it is genuinely a problem, we'll likely find out soon enough as part of implementing a setup.py backend
Basically, that "soon enough" moment has arrived, and at least one discussion on how to resolve it has started on the tracker here:
There is another discussion here, but it's probably better for the discussion to be in one spot:
Distutils-SIG mailing list -- email@example.com
To unsubscribe send an email to firstname.lastname@example.org
-- Distutils-SIG mailing list -- email@example.com To unsubscribe send an email to firstname.lastname@example.org https://mail.python.org/mailman3/lists/distutils-sig.python.org/ Message archived at https://email@example.com/message/G3FNWBTRUV5E4Z4MWDNOQ2PZTXLLD3XF/