Skip to content

🐛 fix(spec): enumerate free-threaded and debug builds on PATH - #181

Merged
gaborbernat merged 4 commits into
tox-dev:mainfrom
darrenhuai:fix/no-spec-free-threaded-debug-names
Nov 2, 2026
Merged

gaborbernat merged 4 commits into
tox-dev:mainfrom
darrenhuai:fix/no-spec-free-threaded-debug-names

Conversation

@darrenhuai

@darrenhuai darrenhuai commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Listing interpreters with no spec could omit free-threaded and debug executables on PATH. Those builds now appear alongside managed installs.

The name matcher recognizes variant suffixes during enumeration. Lookups with a spec retain the narrow name search, and interpreter metadata determines whether each candidate qualifies.

darrenhuai and others added 4 commits October 29, 2026 19:26
iter_interpreters() with no spec skipped PATH entries such as python3.13t, python3.13d and python3.13-dbg.
generate_re only added the t and debug suffixes when the spec asked for that build, and the empty spec used for
enumeration leaves both flags unset, so the wide pattern matched python3.13 alone. On Linux a distribution's
free-threaded or debug build is usually found only through PATH, so an "all interpreters" call missed it, while the
same call did list uv's +freethreaded and +debug installs.

In wide mode a flag the spec leaves unset now makes its suffix optional, and the spec match still decides what is
yielded. get_interpreter and a spec passed to iter_interpreters keep the narrow pattern, so a lookup for 3.13 does not
start picking python3.13d over python3.13.
@gaborbernat gaborbernat added the bug Something isn't working label Nov 2, 2026
@gaborbernat
gaborbernat merged commit 43d9deb into tox-dev:main Nov 2, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants