-
Notifications
You must be signed in to change notification settings - Fork 53
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
Address deprecation of setup.py direct invocation #109
base: master
Are you sure you want to change the base?
Conversation
Fixes: "Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details."
a7d0c56
to
d59bfc1
Compare
In the future, it would also be good to move away from AFAIK, PyPA would like callers to migrate to purely declarative configuration where possible, to avoid arbitrary project code execution on sdist install, and limit the scope to a set of trusted backends that merely apply a declarative config. I don't think this can ever be enforced, as there are projects with foreign language extensions (or other special needs) that will continue to depend on dynamic setup, but PyPA could e.g. require explicit user confirmation in the future before |
this PR is not removing setup.py |
Correct. This PR just addresses the imminent deprecation, because that's a very simple fix. |
I think I should yet add a |
Yeah, moving to the toml file would be great. There isn't anything fancy to do in the current setup.py so making the move should be pretty easy. And the release/command workflows should already support it. |
+1
Sorry, I'm not sure what you mean with this? They currently call |
I meant that the correct fix should be moving to the .toml file |
Fixes
One problem with direct invocation is that there isn't really a reasonable way to install setup-time dependencies like setuptools itself. Therefore it was decided a separate tool should be called instead that can handle setup dependencies cleanly, usually via a
pyproject.toml
[build-system]
table.