wheel: `WheelFile` moved location between 0.31.1 and 0.32.0, breaking user code
I have, for a long time, been using WheelFile in:
- https://github.com/matthew-brett/multibuild/blob/devel/supported_wheels.py#L8
- The delocate package: https://github.com/matthew-brett/delocate
Both of these are fairly widely used. At some point between 0.31.2 and 0.32.0, WheelFile appears to have moved from the install module to the wheelfile module, thus breaking imports for both bits of code. Of course, I can work round this with some conditional imports, and new releases of these packages, but it would help if you would consider deprecation warnings or similar before moving stuff around in the public API.
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Reactions: 1
- Comments: 23 (13 by maintainers)
Commits related to this issue
- Workaround for Wheel 0.32.0 API change WheelFile moved for this release. See: https://github.com/pypa/wheel/issues/255 — committed to multi-build/multibuild by matthew-brett 6 years ago
- Pin wheel to 0.31.1 0.32 broke the universe. See the following for more info: https://github.com/pypa/auditwheel/issues/102 https://github.com/pypa/wheel/issues/255 https://github.com/python-pillow/... — committed to scikit-image/multibuild by jni 6 years ago
I think that at least the
WheelFileclass could be exposed in the public API. I’ll have to look around to see what else other projects use from wheel.Incidentally, the biggest headache for my code was dealing with the zero-permissions RECORD file. If you could see your way through to reverting that change, I am sure that would help.
I thought you’d say that 😃
Pip took the same approach - it certainly reduces maintenance burden, for
wheel, but the consequence is that people have to start copying code out ofwheelinto their own packages, meaning an increasing mess of out of date and incompatible code copies. The same situation is already starting to cause pain for pip.Just to say that pbr has broken test suite as well. Patch for it has been attached to https://bugs.launchpad.net/pbr/+bug/1798130
AFAIK, there’s no supported public API, as noted in the README: