-
Notifications
You must be signed in to change notification settings - Fork 147
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
Add support for fnmatch
patterns in --exclude args
#411
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## main #411 +/- ##
=======================================
Coverage 92.47% 92.48%
=======================================
Files 23 23
Lines 1289 1290 +1
Branches 300 300
=======================================
+ Hits 1192 1193 +1
Misses 56 56
Partials 41 41
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
I'm not sure we want to allow that. There's probably a high chance that you also require to change a requirement somewhere else (are you using @rdbisme, please do expand on the use-case if I misinterpreted something here. +cc @lkollar to get another opinion. |
I'm with @mayeut here. This could make it really easy to accidentally exclude a library and produce a bad wheel. But yes, maybe we are missing something, so a real-world example would help. |
The use case is shipping a wheel of a package containing a compiled extension that leverages the Arrow C++ API and links against the Right now, in our dependency specification, we specify just Allowing fnmatch like patterns, will allow to not touch the repair script anymore potentially. And won´t change the current behaviour, won´t it? People that want to be more safe, will be able to keep listing fully qualified library names? Otherwise, what workflow do you suggest? Pinning |
@rdbisme,
I don't have a clear view on this one. There's nothing to say pyarrow couldn't be built with a compatible ABI on glibc linux<2.17 (or even if there's a compatible manylinux_2_5 on PyPI)
Yes, you do have a hard requirement on pyarrow version in your wheel, it should be reflected everywhere that matters.
Yes it does and would most likely require some script to keep in sync rather than manually update all of these places which would be error prone. The build might also be able to generate the runtime dependencies and the repair script for example ?
This one could benefit from an fnmatch for a new blacklist option but that would be a new option.
Yes, It would't change the current behavior however, IMHO, accepting fnmatch sends a message that "it's ok to use fnmatching without taking care of version compatibility" and this will ultimately lower the quality of the wheels uploaded to PyPI with end-users trying to figure out how to pin the correct versions of their dependencies when it should be reflected in the wheel's metadata. |
How do you think this blacklist option should work? I can try to implement it (since I'm again dealing with pyarrow and the will of not onboarding the binaries since they're shipped with pyarrow wheel). |
Why this was not merged yet? |
Context: need to build a wheel where I exclude
libarrow
libraries. I'd love to avoid changing the build script everytime arrow is updated. Usinglibarrow*
would make the repair script more future proof.The PR also integrates a couple of commit that I needed to add to make checks and test work.