indygreg / python-build-standalone

Produce redistributable builds of Python
Mozilla Public License 2.0
2.14k stars 133 forks source link

Rename `python3.13t.exe` to `python.exe` in Windows free-threaded distributions #373

Closed zanieb closed 3 weeks ago

zanieb commented 1 month ago

Addressing https://github.com/astral-sh/uv/issues/8298

indygreg commented 1 month ago

Reading the linked issue, I guess we're going the rename route instead of an additional copy?

On Linux and macOS before freethreaded builds the canonical binary was pythonX.Y and we had symlinks from pythonX and python to it. I have a light preference towards shipping copies of the exe to maintain the same logical layout. But if that's not how the official Windows installers work, then maybe the single python.exe is best.

zanieb commented 1 month ago

Reading the linked issue, I guess we're going the rename route instead of an additional copy?

Yeah, I initially thought the copy was a better option but I trust Sam and Steve's opinions.

It seems simplest to maintain consistency with the existing Windows distributions first, i.e., by using python.exe. I like the idea of matching the Linux and macOS layouts, but parity with Linux and macOS is tricky, since symlinks are generally a privileged operation on Windows. My experience thus far in uv is that Windows Python executables we discover have the same name across versions. I think they avoided this with the free-threaded executable in the official installer to avoid breaking people's systems, but we don't really have that problem here.