-
-
Notifications
You must be signed in to change notification settings - Fork 31.9k
Windows build favours NuGet over local install of branch version #108051
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
It shouldn't be installing 3.12.0-rc1 from Nuget - without the Given the complexity in finding an existing copy of Python that's going to work (especially as people change our bootstrap scripts to require ever-more-recent releases), I'd be more inclined to make it only use the Nuget install unless you specify But since we're now building 3.13, there's no issue adding 3.12 to that list. Just needs a PR. Note that setting |
It looks like the options are:
@zooba, which would you prefer? |
I'm not exactly sure which logic we'd be removing, but since it's probably going to upset other people if we remove any of it, leaving a comment/note to say we can/should update it after a release is fine. The The PR to allow a newer version should be easy enough, and having it noted will give people permission to send it. I don't feel any need to aggressively push it in, though. |
Checklist
and am confident this bug has not been reported before
CPython versions tested on:
3.11, 3.12, CPython main branch
Operating systems tested on:
Windows
Output from running 'python -VV' on the command line:
No response
A clear and concise description of the bug:
Windows builds of Python use a script called find_python.bat to locate a valid python.exe to use during the build.
It tries, in order:
VIRTUAL_ENV
externals\pythonx86\tools\
py.exe
from $PATH, but only a permitted version, as per this line https://github.com/python/cpython/blob/main/PCbuild/find_python.bat#L45The problem is with case 3.
The permitted $PATH versions of Python to build 3.10 are 3.9 or 3.8 - if 3.10 is installed, it is ignored and 3.12RC1 from NuGet is used instead
The permitted $PATH versions of Python to build 3.11 are 3.10 or 3.9 - if 3.11 is installed, it is ignored and 3.12RC1 from NuGet is used instead
The permitted $PATH versions of Python to build 3.12 are 3.11, 3.10 or 3.9 - if 3.12 is installed, it is ignored and 3.12RC1 from NuGet is used instead
The permitted $PATH versions of Python to build main are 3.11, 3.10 or 3.9 - if main is installed, it is ignored and 3.12RC1 from NuGet is used instead
This behaviour is clearly wrong (especially since the version downloaded in the fallback case 4 is not version locked, so right now it's 3.12RC1 and doesn't account for compatibility breakages). Version X should always be in the permitted list to build version X.
3.9 did allow builds from a system install of 3.9, but this seems like an accident rather than design.
Linked PRs
The text was updated successfully, but these errors were encountered: