-
Notifications
You must be signed in to change notification settings - Fork 149
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
Latest wheel==0.32.0 breaks auditwheel/wheeltools.py #102
Comments
I had no idea that so many tools relied on the private API of wheel. This is a bummer. |
Yep. A lot of duplicates, but 32k results for this one: https://github.com/search?l=Python&q="from+wheel.util+import"+open_for_csv&type=Code People in general don't read docs. Perhaps using the |
Dammit - it is unfortunate that Robert copied the delocate wheel code without the tests. That makes it much harder to know if the fixes are going to work. I've just fixed this in the latest delocate release. Maybe auditwheel can import from delocate? |
0.32 broke the universe. See the following for more info: pypa/auditwheel#102 pypa/wheel#255 python-pillow/pillow-wheels#102
Sorry :/ |
My 2 cents, in Manylinux docker image /opt/_internal/cpython-3.6.6/bin/python -m pip install wheel=0.31.1 |
@Mizux - the Manylinux docker image auditwheel should work now, with a version of the workaround you're using - does it work for you? |
@matthew-brett I use this workaround yesterday (Paris Time ~ 15h ago) to generate our python ortools packages.... ps: here the patch google/or-tools@c907c57 |
pypa/auditwheel#102 PiperOrigin-RevId: 215486669
1.12-rc0 cherry-pick request: Pin wheel=0.31.1 to work around issue pypa/auditwheel#102
pypa/auditwheel#102 PiperOrigin-RevId: 215685104
pypa/auditwheel#102 PiperOrigin-RevId: 215685104
Anyone have objections to me pinning to 0.31.1 in requirements.txt for now until we can actually fix this? |
Sounds reasonable to me. |
Also, make sure that you let me know in pypa/wheel#262 how auditwheel would like to use the wheel library (if @matthew-brett has missed something). This will help me design a proper public API which will not be broken on a whim. |
We have all these wacky helpers defined for being able to treat a wheel as a context. Unclear if that's the sort of thing that should go into a public API but @agronholm I will take a deep look and update that issue when I'm done. |
@ehashman - these helpers are all copied from Delocate, I think, but with some modifications. If there was a way to merge the changes back into delocate, then we could maintain this stuff in one place. And there would be tests! |
Ah, great. Emphatic +1. There's a PyPA sprint next weekend, I'd be very interested in looking at this then. |
is anybody working on this? I'm at the PyPA sprint in London and could work on updating auditwheel to work with wheel 0.32 |
@ehashman - are you at the sprint? @anthrotype - I'm sure you saw the stuff above - if it were me, I'd check that the delocate code does what's needed, and depend on that, because it has tests, and it would mean only one place to maintain the code (Robert C copied it from delocate originally). |
Or even break that part of the code out into its own tiny module. Maybe that would make it easier for Wheel to know what they need to keep stable in the API. |
Is there a chat platform folks are using to communicate between London and NYC for the sprint? Since @matthew-brett noted that this stuff was copied from delocate, I wonder if we could also grab their unit tests in order to verify the behaviour is correct. @anthrotype I took a quick look at your repo---I'm pretty sure we shouldn't add a multibuild dependency to auditwheel. I think the "right" way to fix this would be to either modify our code to work with the new wheel 0.32.0 UI or work on a public UI in wheel. |
I'm on Google chat if y'all need me - matthew.brett@gmail.com . Yes, definitely add the unit tests. I think the multibuild submodule doesn't need to be in the new repo, but the plan is to make a new pypi-installable package to do the wheel stuff. Then delocate and auditwheel would import that.. For delocate I have some test wheels with extension code in there, but we could make small pure python test wheels for the tests, or use the one I'm building in delocate. |
We can remove multibuild, sure. I only added it to reuse the same Travis setup and ensure the existing delocate tests are still working (they do now). |
I have removed multibuild as well as the functions in wheeltools/tools.py that are only required by delocate and hence are macOS-specific (e.g. those that use otool and install_name_tool commands). What we need to do now is:
|
I have put up the scaffolding of a stand-alone I then tried to take this wheeltools module extracted from delocate and import it inside auditwheel, however I stumbled on a few issues and am not sure how (or whether) to proceed. The
There may be more differences which I'm not aware of yet. I have to say, I'm not familiar enough with the Wheel specification; also am busy with other things, and am not sure I can promise to continue working on this in the coming weeks. |
pypa/auditwheel#102 PiperOrigin-RevId: 215685104
See pypa/auditwheel#102 See https://circleci.com/gh/scikit-build/ninja-python-distributions/344 Thanks @kjerstadius for investigating the issue. See #18
See pypa/auditwheel#102 See https://circleci.com/gh/scikit-build/ninja-python-distributions/344 Thanks @kjerstadius for investigating the issue. See scikit-build#18
Pin wheel to 0.31.1 due to pypa/auditwheel#102
Closing this as work on @anthrotype feel free to open a new issue if/when you think |
Wheel 0.32.0 was released two days ago and has refactored its (private) API, breaking
auditwheel
:https://travis-ci.org/python-pillow/pillow-wheels/jobs/435427307#L4860
The same thing hit multibuild and delocate: pypa/wheel#255.
Note that wheel officially has no public API:
pypa/wheel#255
(We're working around the issue by pinning to the previous wheel==0.31.1.)
The text was updated successfully, but these errors were encountered: