Commits
Click on a commit to change the comparison rangeImprove error message for abi3 wheels on free-threaded Python
When attempting to install an abi3 wheel on free-threaded Python, the
error message previously showed a misleading Python version mismatch
(e.g., "wheel is cp37, you're using cp314"). This was confusing because
abi3 wheels should be forward-compatible with newer Python versions.
The real issue is that free-threaded Python (3.13t+) does not support
the stable ABI (abi3). This change adds a new `IncompatibleTag::AbiFreethreaded`
variant that is detected in the tag compatibility check when an abi3 wheel
is encountered on free-threaded Python.
Changes:
- Add `IncompatibleTag::AbiFreethreaded` variant
- Store `is_freethreaded` in `Tags` struct for detection
- Detect abi3 + free-threaded in `Tags::compatibility` loop
- Handle the new variant in all relevant error message sites
- Add snapshot test for the error message
Fixes #17406