Disable `cache: 'pip'` for unreleased Python versions
See original GitHub issueDescription:
Disable cache: 'pip'
for unreleased Python versions (right now, that means only Python 3.11)
Justification:
The ABI between Python 3.11 versions is not stable, and in fact recently changed between Python 3.11 alpha 2 and alpha 3. This is why projects don’t provide binary wheels for Python 3.11 until the ABI is stabilized. Unfortunately, when enabling pip’s cache, this means that wheels cached for Python 3.11 alpha 2 will get used for Python 3.11 alpha 3 and are then likely to break or segfault. This is not a theoretical concern, this broke urllib3’s test suite, and likely cryptography’s test suite as well. See https://bugs.python.org/issue46320 for more details.
Without this change, our options are disabling pip’s cache altogether or stop testing Python 3.11.
Are you willing to submit a PR?
No, sorry.
Issue Analytics
- State:
- Created 2 years ago
- Comments:6 (4 by maintainers)
Top GitHub Comments
The pip cache can be especially useful for testing dev versions, because there are few wheels available and it can be very slow to build stuff from source. Far better to cache after the first time.
The ABI can change during the CPython alpha and beta phase. It’s also possible during RC, but they aim not to.
So we need to make sure the cache isn’t reused between say 3.11.0a2 and 3.11.0a3.
Onw way would be to include this fully qualified version number in the cache key.
Similar to https://github.com/actions/setup-python/pull/303 which includes x.y but use the full 3.11.0a3 form.
Thoughts?
Hello everyone. We merged https://github.com/actions/setup-python/pull/303 and released new version of the action with these changes. Now cache will be restored for the particular python versions. For now I’m going to close the issue. If you have any concerns feel free to ping us.