[FR] Implement PEP 660 -- Editable Installations
See original GitHub issueWhat’s the problem this feature will solve?
PEP 660 standardises the mechanism that setup.py develop
uses to make “editable” packages.
Currently, pip needs to implement fairly horrible hacks to make legacy setup.py develop
builds work. It’d be great if setuptools could implement PEP 660, which would be the last item from setuptools’ end before pip can start the process of removing the legacy directly-call-setup.py build system.
Describe the solution you’d like
PEP 660’s build_editable hook gets implemented in aetuptools.
Alternative Solutions
Not doing this.
I imagine this will mean that either (a) pip continues to maintain editable installs for setuptools or (b) pip drops the legacy build system entirely and users of setuptools projects will no longer be able to make editable installations.
I don’t think (b) is happening any time soon, and it’d likely be best to implement the hook here.
Additional context
IIUC, this has been implemented in setuptools-pep660 already. It might not be a lot of work to migrate the work done there into seriptools directly.
Code of Conduct
- I agree to follow the PSF Code of Conduct
Issue Analytics
- State:
- Created 2 years ago
- Reactions:22
- Comments:14 (10 by maintainers)
Top GitHub Comments
Closing this out, since https://github.com/pypa/setuptools/pull/3265 implemented this. It’ll be in a release soon-enough.
It still has an experimental flag on it, but it works and that’s the part that I care about. I’ve now seen multiple people point to this issue to say that editable installs don’t work in Python – the only case that doesn’t is
setuptools
without asetup.py
, which is going to be solved once that PR reaches main. 😃For completeness, making an update here with how I understand the state of affairs to be.
With #1688 closed, this is now a blocker for getting editable installs working for setuptools’ new pyproject.toml only projects.
In https://github.com/pypa/setuptools/pull/2872, there has been extensive discussion about the implementation approach that setuptools can take for this. There seems to be no clear concensus about how to implement the PEP 660 hooks – there’s significant pushback from the maintainers for implementing the PEP 660 hooks (that enable editable installations, without a setup.py file) using a mechanism similar to
setup.py develop
today.