Skip to content

Disable easy_install command and remove sandbox functionality. #2908

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

Merged
merged 15 commits into from
Apr 27, 2025

Conversation

jaraco
Copy link
Member

@jaraco jaraco commented Nov 26, 2021

Ref #917

@jaraco jaraco force-pushed the debt/remove-easy-install branch 2 times, most recently from e51d238 to 758589a Compare November 26, 2021 20:23
@jaraco jaraco force-pushed the debt/remove-easy-install branch from 758589a to 8d12d61 Compare November 26, 2021 22:01
@jaraco jaraco force-pushed the debt/remove-easy-install branch from 383ed7a to 9116c7e Compare May 9, 2022 14:42
@jaraco jaraco force-pushed the main branch 3 times, most recently from a85759c to 93ce5a0 Compare December 16, 2022 18:21
@jaraco jaraco force-pushed the debt/remove-easy-install branch from f379532 to 791cdbb Compare April 20, 2025 13:45
@jaraco jaraco force-pushed the debt/remove-easy-install branch from 791cdbb to 1db0b12 Compare April 20, 2025 19:24
@jaraco
Copy link
Member Author

jaraco commented Apr 20, 2025

I've filed pbr-2107732 to track an integration issue with the proposed work.

@jaraco jaraco force-pushed the debt/remove-easy-install branch from 1db0b12 to 54b9f78 Compare April 20, 2025 20:08
@jaraco jaraco force-pushed the debt/remove-easy-install branch from 976438b to 16ebbf6 Compare April 20, 2025 20:22
@rgommers
Copy link

@jaraco this PR's title didn't set off alarm bells for me, but I glanced at the linked pbr issue and there you say:

I've worked out that the develop command can be all-but-removed, and all the 'editable install' tests still pass.

Disabling python setup.py develop will have a much larger blast radius than only removing the easy_install executable I'd think? E.g., I know PyTorch uses it still - I'd expect a lot of projects to still rely on it.

Are you trying to remove both easy_install and the develop command at once here?

@jaraco
Copy link
Member Author

jaraco commented Apr 20, 2025

Are you trying to remove both easy_install and the develop command at once here?

I appreciate the concern. Thanks for reaching out.

I'm trying mainly to remove easy_install but develop depends on easy_install, so it becomes all-but-necessary to remove develop.

I was thinking that because setup.py develop is deprecated and superseded by a replacement for years and because it's not an integration concern (i.e. invoked implicitly as part of another process) but a user concern, use-cases that depend on it could be readily worked around by pinning to an older Setuptools. Should I think about it differently?

@jaraco jaraco force-pushed the debt/remove-easy-install branch from 16ebbf6 to e5f80a1 Compare April 20, 2025 20:33
@jaraco
Copy link
Member Author

jaraco commented Apr 20, 2025

In #4955, I'm considering a different tack for decoupling develop from easy_install. I've also created debt/remove-develop to track removing the develop command separately from the effort of disabling easy_install.

@jaraco jaraco force-pushed the debt/remove-easy-install branch from e5f80a1 to 6370b0a Compare April 20, 2025 21:40
@rgommers
Copy link

I was thinking that because setup.py develop is deprecated and superseded by a replacement for years and because it's not an integration concern (i.e. invoked implicitly as part of another process) but a user concern, use-cases that depend on it could be readily worked around by pinning to an older Setuptools. Should I think about it differently?

The problem with that deprecation of all of direct python setup.py xxx is that it's so large that people have been ignoring it, and also that there aren't ready-made replacements for everything.

It's possible to say "pin to and older version" and at some point that's going to be needed. But it'll still be disruptive. What I would recommend is decouple easy_install and develop removals (as you're trying in gh-4955), and to announce a timeline for the develop removal that's say 6 months into the future. That gives people a concrete deadline and a reason to do the work, and will limit the disruption when the removal happens.

@jaraco
Copy link
Member Author

jaraco commented Apr 27, 2025

It's possible to say "pin to and older version" and at some point that's going to be needed. But it'll still be disruptive. What I would recommend is decouple easy_install and develop removals (as you're trying in gh-4955), and to announce a timeline for the develop removal that's say 6 months into the future. That gives people a concrete deadline and a reason to do the work, and will limit the disruption when the removal happens.

Thanks for this feedback. I agree that's a good plan and promises to be a lot less disruptive.

I've continued to pursue #4955, which is reaching stability. I plan to merge that and this change at the same time as this change, even though they could be rolled back independently.

@jaraco jaraco marked this pull request as ready for review April 27, 2025 01:42
@jaraco jaraco merged commit 354de25 into main Apr 27, 2025
10 of 36 checks passed
@jaraco jaraco deleted the debt/remove-easy-install branch April 27, 2025 01:55
jaraco added a commit that referenced this pull request Apr 27, 2025
Disable easy_install command and remove sandbox functionality.
@rgommers
Copy link

Thanks @jaraco! I will follow up with PyTorch and check in other projects I'm familiar with for remaining develop usages.

@hroncok
Copy link
Contributor

hroncok commented Apr 28, 2025

This change broke setup.py install --prefix=.... See #3143

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants