-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Problems with using setuptools
as a default build-backend for projects
#6462
Comments
The third one is sort of interesting. We could definitely check if there are obvious problems, and do something different. |
Sadly, I still feel _BuildMetaLegacyBackend will stay around for many more years given what happened with the temporary removal of |
Yep, the legacy one. I don't mind using it for builds in general, but I think we need to provide a better experience than it delivers to people who just try to |
I like (2) for projects that are managed by uv. We obviously need to continue to use the setuptools fallback for published source distributions and outside-of-workspace dependencies, but if the user doesn't specify a build backend, we can leave them in a manually mode. There's a large number of python projects that's just a number of scripts that aren't targeted at redistribution. I've seen a number of scientic/ML projects that were just a collection of jupyter notebooks. These greatly profit from dependency management, but don't need any management of their project. |
Perhaps RFC 2119 keyword SHOULD should have been capitalized here? Since shoulds are recommendations (rather than requirements like shalls/musts), I see no violation of the spec here 🙂 |
Yes it's not quite a specification violation, but we strive to conform with "SHOULD" too |
(At the risk of being slightly pedantic) Surely the spec only comes into play when actually building a package though? The root issue here is that uv currently assumes that all projects should be built as a package - which in my experience is more the exception than the norm for your typical end-user Python app. ie: This issue is more about uv needing a heuristic for "should this project be packaged" (xref #6511), and if that heuristic determined the answer was "no", then it's not a violation of the spec to skip packaging using the setuptools backend. |
As of uv 0.4.0, we no longer build the package if a build system is not defined unless the user opts-in. |
This would be a violation of the spec, sort of:
Using
setuptools.buildmeta:_legacy
for a project is problematic as a default:uv sync
freezes infinitely at the container root #6443We have a few options here, e.g.:
Maybe there are other options?
The text was updated successfully, but these errors were encountered: