Skip to content
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

[FR] Ability to dynamically specify "build wheel" dependencies #4806

Open
1 task done
mgorny opened this issue Jan 16, 2025 · 0 comments
Open
1 task done

[FR] Ability to dynamically specify "build wheel" dependencies #4806

mgorny opened this issue Jan 16, 2025 · 0 comments
Labels
enhancement Needs Triage Issues that need to be evaluated for severity and status.

Comments

@mgorny
Copy link
Contributor

mgorny commented Jan 16, 2025

What's the problem this feature will solve?

Some projects have specific dynamic dependencies for build* commands such as cmake. Currently, such dependencies either have to be specified a. as build-system.requires, or b. via setup_requires. The former method only permits static dependencies, so we can't express "[cmake] only if no system CMake is available", the latter is deprecated — and both of them apply to source distributions, whereas we need it only for wheel builds.

Describe the solution you'd like

I'd like a non-deprecated option to pass wheel building requirements to setup() function, so they'd be returned by the backend's get_requires_for_build_wheel() method.

Alternative Solutions

The alternative is for every such package to use a custom backend based on setuptools', and have the backend override get_requires_for_build_wheel(). However, it seems a bit of an overkill.

Additional context

No response

Code of Conduct

  • I agree to follow the PSF Code of Conduct
@mgorny mgorny added enhancement Needs Triage Issues that need to be evaluated for severity and status. labels Jan 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Needs Triage Issues that need to be evaluated for severity and status.
Projects
None yet
Development

No branches or pull requests

1 participant