-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Future of wheel.macosx_libfile
#4935
Comments
@agronholm, do you have any recommendations for this one? (I have previously seen the wheel PR with the changes for |
I've yanked the latest wheel release until we can sort this out. Why is |
The same problem was reported against wheel: pypa/wheel#659 |
Thanks for the quick response and for yanking the release @agronholm - ![]() |
Closing the issue! |
@agronholm, I apologize, I have previously seen the wheel PR with the changes for I see 3 options going forward:
Regarding 1, the module seems to be fairly complex and require advanced knowledge about macOS systems. I don't feel right now confident in transferring the maintenance of such module into the same project as setuptools (which is already high maintenance). So what makes more sense to me is option 3 to decouple the maintenance effort. It would be fair that setuptools maintainers would also added to that project (given setuptools is its main consumer), but hopefully we can also have other volunteers involved. @jaraco, @agronholm any thoughts? Footnotes
|
No module named 'wheel.macosx_libfile'
wheel.macosx_libfile
To me it seems like But I repeat my question: why is |
This seems to be a limitation/intentional design of the simplified vendoring system in setuptools, introduced in #4457. |
Looks like this was introduced relatively recently, and after my migration work of |
@pypa/packaging-committers any thoughts on the suggestions in #4935 (comment) and #4935 (comment)?
@agronholm, let's see if we can find a solution. |
How are the other build back-ends dealing with macOS extension binaries? |
I might want to use it in scikit-build-core and/or meson-python. :) Currently, I believe most of them don't analyze the binaries this way, but instead just base it on what a user requests. |
That should be fine. I think there might be still some benefit and keeping it reserved for a well know list of collaborating projects so that we can communicate changes effectively, instead of a publicly available API. |
The setuptools behaviour of only using the vendored dependencies if there is not an external version available almost seems like the worst of both worlds. The extra effort of managing vendored deps, and the increased installation size, without any of the certainty that things won't break. |
Yeah, it's a recipe for a disaster, as was just seen here. |
I'm assuming the question is whether we would want to absorb |
Thanks @brettcannon. I believe it is being used to calculate the correct platform tag for macOS, which is required by/related to the standard on the wheel format. Does May be related: If |
I would be naturally inclined to assume the relevant stakeholders for this conceptual functionality, are the I can't directly see anywhere in the delocate documentation any suggestion that it can/does relabel a wheel with the correct platform tags according to minimum platform requirements. However auditwheel (the Linux equivalent of delocate) is certainly capable of doing precisely this for a Linux wheel -- that is, extract the minimum compatibility tag for glibc ELF binaries and convert it to a PyPA-endorsed "manylinux" platform tag. So it's plausible that this should just be a feature request for delocate. |
... for a specific file, not the current platform that's running. (We calculate that using https://github.com/pypa/packaging/blob/e624d8edfaa28865de7b5a7da8bd59fd410e5331/src/packaging/tags.py#L408).
No, but that's because we don't try to calculate based on a file what wheel tags should be used for the resulting wheel file. |
cc @HexDecimal @matthew-brett ( |
Delocate does relabel a wheels platform tags. It currently uses the |
setuptools version
setuptools==78.1.0
Python version
Python 3.10
OS
macOS
Additional environment information
No response
Description
Getting the error below when trying
uv sync
. Seems to be happening due to this import.As I see from the latest wheel release that the file,
src/wheel/macosx_libfile.py
, is no longer present. It was present in the previous wheel releaseError stack trace:
Expected behavior
The imports should work for the latest setuptools release
How to Reproduce
Try to create a virtual environment with the latest
setuptools==78.1.0
.Output
The text was updated successfully, but these errors were encountered: