On 2020-04-17 19:00:31 +0200 (+0200), Radosław Piliszek wrote:
Thanks, Andreas, for analysis.
I have more to add: in Zuul we rely on extra wheels. In the wild usually only on PyPI ones. This adds more flavour to lower-constraints breakage as py3 incompats make their appearance in full, e.g.:
Collecting MarkupSafe==1.0 Using cached MarkupSafe-1.0.tar.gz (14 kB) ERROR: Command errored out with exit status 1: Complete output (5 lines): Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-install-_vser3_6/MarkupSafe/setup.py", line 6, in <module> from setuptools import setup, Extension, Feature ImportError: cannot import name 'Feature' [...]
I don't understand what you're trying to demonstrate here. MarkupSafe-1.0.tar.gz is an sdist, not a wheel. In our CI jobs we retrieve sdists from PyPI (via a caching proxy), and also do the same for any wheels which are published on PyPI. Some packages which aren't generally available as wheels for our target platforms are supplemented by sets we periodically pre-build and serve from a central wheelhouse, to save time so jobs don't have to redundantly rebuild them all from sdists themselves on every run. -- Jeremy Stanley