8fe68cf52d
## Summary This PR fixes a problem in `uv pip install`, which currently refuses to install debug wheels in virtual environments with debug CPythons. Before this change, wheel parsing already preserved debug ABI suffixes like cp313d and cp314d, but Tags::from_env only propagated free-threaded and legacy pymalloc variants. As a result, uv would detect a debug interpreter correctly during discovery while still generating cp313/cp314 environment tags, causing debug-built wheels to be rejected as incompatible. Fix this by accepting a debug_enabled flag in Tags::from_env, mapping it to CPythonAbiVariants::Debug, and passing the interpreter debug state from the production call sites in uv-python and uv pip resolution. Also update the affected tests and helpers, and add a regression test that verifies debug CPython 3.13 generates cp313-cp313d manylinux tags. ## Test Plan Tests run: - cargo test -p uv-platform-tags tags::tests::test_system_tags_debug_cpython -- --exact - cargo test -p uv-installer plan::tests::test_abi3_on_free_threaded_python_hint -- --exact - cargo test -p uv-installer plan::tests::test_gil_enabled_cpython_on_free_threaded_python_hint -- --exact - cargo test -p uv-installer plan::tests::test_abi3_on_regular_python_no_special_hint -- --exact - cargo test -p uv --test it pip_install::abi_compatibility_on_debug_python -- --exact --------- Co-authored-by: konstin <konstin@mailbox.org>
uv-python
This crate is an internal component of uv. The Rust API exposed here is unstable and will have frequent breaking changes.
This version (0.0.35) is a component of uv 0.11.2. The source can be found here.
See uv's crate versioning policy for details on versioning.