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

Latest wheel==0.32.0 breaks multibuild/supported_wheels.py #202

Closed
anthrotype opened this issue Sep 29, 2018 · 26 comments
Closed

Latest wheel==0.32.0 breaks multibuild/supported_wheels.py #202

anthrotype opened this issue Sep 29, 2018 · 26 comments

Comments

@anthrotype
Copy link
Contributor

this was just released today: https://pypi.org/project/wheel/0.32.0/

the supported_wheels.py script in multibuild is now failing with the latest wheel version with this error:

Traceback (most recent call last):
  File "/io/multibuild/supported_wheels.py", line 8, in <module>
    from wheel.install import WheelFile
ModuleNotFoundError: No module named 'wheel.install'

https://travis-ci.org/fonttools/openstep-plist/jobs/435053641#L590

@anthrotype
Copy link
Contributor Author

as temporary workaround, pinning wheel==0.31.1 in TEST_DEPENDS seems to work
fonttools/openstep-plist@e4e7abf...d50f6a8

@anthrotype
Copy link
Contributor Author

also delocate seems broken by wheel 0.32.0 (but you probably know that already)
https://travis-ci.org/fonttools/openstep-plist/jobs/435056896#L177

@anthrotype
Copy link
Contributor Author

@matthew-brett I see you've opened an issue on the wheel repo, thanks for taking a look to quickly! 👍

@matthew-brett
Copy link
Collaborator

Thanks for letting me know. I made a fix on the devel branch - does it work for you? I'll fix, release delocate now too.

@anthrotype
Copy link
Contributor Author

thanks, I'll try

@anthrotype
Copy link
Contributor Author

it's now failing with

AttributeError: 'WheelFile' object has no attribute 'tags'

I'll pin to 0.31.1 for now.

@anthrotype
Copy link
Contributor Author

travis build log with full traceback here:
https://travis-ci.org/fonttools/openstep-plist/jobs/435064653#L589-L594

@matthew-brett
Copy link
Collaborator

Oh man, they've really gone to town on refactoring the API. I think the official wheel project position is "don't care, you shouldn't be using it anyway" : pypa/wheel#255 (comment) . I've made the case over at that issue, but pip did the same thing, hoping it would make their lives easier. I think that didn't work for pip, but we'll see what happens for wheel.

@hugovk
Copy link
Contributor

hugovk commented Sep 29, 2018

Seeing this on a Mac build:

Installing collected packages: delocate
Successfully installed delocate-0.7.3
Traceback (most recent call last):
  File "/Users/travis/build/hugovk/pillow-wheels/venv/bin/delocate-wheel", line 15, in <module>
    from delocate import delocate_wheel, __version__
  File "/Users/travis/build/hugovk/pillow-wheels/venv/lib/python2.7/site-packages/delocate/__init__.py", line 3, in <module>
    from .delocating import delocate_path, delocate_wheel, patch_wheel
  File "/Users/travis/build/hugovk/pillow-wheels/venv/lib/python2.7/site-packages/delocate/delocating.py", line 18, in <module>
    from .wheeltools import rewrite_record, InWheel
  File "/Users/travis/build/hugovk/pillow-wheels/venv/lib/python2.7/site-packages/delocate/wheeltools.py", line 14, in <module>
    from wheel.util import urlsafe_b64encode, open_for_csv, native
ImportError: cannot import name open_for_csv

https://travis-ci.org/hugovk/pillow-wheels/jobs/435064485#L4899

@matthew-brett
Copy link
Collaborator

Yes, sorry, the API for wheel has completely changed, wreaking havoc with delocate, in particular. I'm working on it now.

@charris
Copy link
Contributor

charris commented Sep 29, 2018

WheelFile is in wheel.wheelfile

In [1]: from wheel.wheelfile import WheelFile

In [2]: 

@matthew-brett
Copy link
Collaborator

Chuck - thanks - yes - but the wheel folks have done a huge refactoring of their internals, so it's much worse than just a moved import, sadly.

@charris
Copy link
Contributor

charris commented Sep 29, 2018

If wheel has no public API, why does it exist?

@charris
Copy link
Contributor

charris commented Sep 29, 2018

Hi @matthew-brett , I'm feeling your pain :) The easiest short term fix is probably to pin the release version.

@hugovk
Copy link
Contributor

hugovk commented Sep 29, 2018

It exists as (1) a setuptools extension and (2) a command line tool, according to the README:

https://github.com/pypa/wheel/blob/master/README.rst

@hugovk
Copy link
Contributor

hugovk commented Sep 30, 2018

The latest devel of multibuild is now passing for Linux, and as expected Mac builds are failing due to delocate:

https://travis-ci.org/python-pillow/pillow-wheels/builds/435238329

We're due for a quarterly Pillow release tomorrow (2018-09-01). Is delocate fixed in master, and if so, any chance of a release today or tomorrow? Or would it help if we tested it first, and is there anything else we can do to help?

Thank you!

@hugovk
Copy link
Contributor

hugovk commented Sep 30, 2018

Actually no rush, we're all good with pinning wheel (Linux and Mac) and I don't see anything really important where we would need the new wheel version.

@anthrotype
Copy link
Contributor Author

just noting that auditwheel is now failing as well (even after I set VIRTUALENV_NO_DOWNLOAD=1), as the manylinux docker images now ship with wheel 0.32.0 pypa/manylinux#228

https://travis-ci.org/fonttools/openstep-plist/jobs/435504919#L545

I have set wheel==0.31.1 in both BUILD_DEPENDS, TEST_DEPENDS, in pyproject.toml and have VIRTUALENV_NO_DOWNLOAD=1.

@matthew-brett
Copy link
Collaborator

See: pypa/manylinux#229

@anthrotype
Copy link
Contributor Author

Thanks!

@charris
Copy link
Contributor

charris commented Oct 14, 2018

@matthew-brett What is the status of this? Should we just go ahead and pin the wheel version? I'm looking to make a release next weekend.

@matthew-brett
Copy link
Collaborator

There's no harm in pinning, but it's not needed any more.

@radarhere
Copy link
Collaborator

Cool, thanks @matthew-brett. So is there anything keeping this issue open?

@charris
Copy link
Contributor

charris commented Oct 15, 2018

@matthew-brett I assume we need to update the multibuild submodule hash?

@matthew-brett
Copy link
Collaborator

Yes, it should be latest master or devel.

@radarhere radarhere changed the title latest wheel==0.32.0 breaks multibuild/supported_wheels.py Latest wheel==0.32.0 breaks multibuild/supported_wheels.py Jan 5, 2019
bnaul referenced this issue in jmschrei/pomegranate_wheel_builder Feb 20, 2019
From the latest Travis build it looks like we're using a very old `multibuild`:
```
Submodule path 'multibuild': checked out '7cca00d3d1d590a3ed34185ef1db1cd970c3a3a1'
```
I believe this will make sure the `submodule init` call gets the latest version which should fix the failure caused by https://github.com/matthew-brett/multibuild/issues/202
@mattip
Copy link
Collaborator

mattip commented Mar 17, 2020

Closing, currently as far as I know all the pieces are in place to use the latest wheel version. Please reopen if I am mistaken.

@mattip mattip closed this as completed Mar 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants