-
Notifications
You must be signed in to change notification settings - Fork 75
pep621
is not optional but the dependency isn't declared
#56
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
Comments
|
I don't understand this. Don't you always use
It's in the job that explicitly tests building via an sdist:
If by manual you mean
It does not make sense for everyone to have to know about dependencies of |
Sorry, I meant PEP 621 metadata.
IMO this is a bug in pip, it should be erroring out or at least warning users if the required dependencies are not present when using
And they don't have to, people generally shouldn't being provisioning the build environment themselves. To solve your issue, I'd probably recommend that you drop pip and just use pypa/build and pypa/installer:
If you want to provision the build environment yourself, you can pass |
This really is not true for complex compiled packages. It is only true when you're working in a virtualenv. Half of the scientific community works in
I must use
What's the difference though - we always use that with |
Let me restate this a bit more generally: For every project using Meson and
It should not include "3. "check each build dependency and hunt down its dependencies". |
I think it's a design drawback from the PEP 517, but it's not unprecedented. We could possibly provide a
No. We can operate fully without it, which is useful for hacking around. We could make it a dependency of meson-python itself, but that's not really accurate. https://meson-python.readthedocs.io/en/latest/usage/start.html#automatic-metadata |
I don't like that much.
There is nothing inaccurate about this - whether you make something required or optional if it's needed of a subset of a dependency is always a choice, there is no right or wrong. Can you please just explain what the downside is of including
That comes with a warning that it's not recommended .... |
I now understood what https://github.com/FFY00/meson-python/blob/5f83a8d817833385f6f8a42e9715dd666302daed/mesonpy/__init__.py#L54-L58 is doing. That whole The design requirement here is: all dependencies for |
Ah wait, if the purpose is to remove dependencies that are not needed, so that creating an isolated build env, then that makes sense. Adding new dependencies is never right. Some comments would have helped me understand more easily - if I find some time tonight, I can make a PR. |
I had to read the code closely and re-read PEP 517 - this was wrong, my first take was right. |
After discussion:
|
gh-33 talks about replacing
pep621
but really seems to mean "rename" rather than replace. There seems to be a more urgent issue here:pep621
is imported here: https://github.com/FFY00/meson-python/blob/main/mesonpy/__init__.py#L552-L553 but is not declared as a dependency. So I'm seeing:in the CI job that tests building via sdist for SciPy (log. Why is a non-optional dependency not declared? The comment even explicitly discusses raising an exception - it should not be necessary for
meson-python
users like SciPy to listpep621
as a direct dependency. It should be either vendored, declared as non-optional, or made actually optional.The text was updated successfully, but these errors were encountered: