Skip to content

[scripts] Add support for Python 3.13 and 3.14 tools#51807

Draft
mcoliver wants to merge 1 commit into
microsoft:masterfrom
mcoliver:python-3.13-3.14-support
Draft

[scripts] Add support for Python 3.13 and 3.14 tools#51807
mcoliver wants to merge 1 commit into
microsoft:masterfrom
mcoliver:python-3.13-3.14-support

Conversation

@mcoliver
Copy link
Copy Markdown

Fixes #46556 #47791

  • Changes comply with the maintainer guide.
  • SHA512s are updated for each updated download.
  • The "supports" clause reflects platforms that may be fixed by this new version, or no changes were necessary.
  • Any fixed CI baseline and CI feature baseline entries are removed from that file, or no entries needed to be changed.
  • All patch files in the port are applied and succeed.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Exactly one version is added in each modified versions file.

Signed-off-by: Michael Oliver <mcoliver@gmail.com>
Copy link
Copy Markdown
Member

@BillyONeal BillyONeal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to confuse the different pythons, not that I can blame anyone for being confused by the situation.

vcpkg_find_acquire_program(PYTHON3) is for "I have a random .py script I want to execute during my build, /usr/bin/python3 or whatever version happens to be on the system already is acceptable", the port python is for the "I need a particular version and/or to build modules that can be loaded by python"

That Python is both a common embedded component and a "general system utility" deployed on many POSIX systems unfortunately puts us in a place where we can't really have a single answer to "what is Python?"

@@ -0,0 +1,38 @@
if(CMAKE_HOST_WIN32)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think at this point we are going to decline to add further vcpkg_find_acquire_program entries given that that they can't be versioned. If someone needs that specific of a version, they need to depend on the port instead.

Comment thread versions/p-/python3.json
@@ -1,5 +1,15 @@
{
"versions": [
{
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is damaged: the python3 port isn't being edited so the version database should not be being edited.

set(download_sha512 71c1ce33aa484935306b1a24c75b26193463bb475aa6e1c0f94767649caa22a862c49b2eb341d21f3d8428ae0e4243d5cae1488a83f9f598e23678ee8c548ad8)
endif()

# Remove this after the next update
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like this should be removed.

@@ -1,29 +1,29 @@
if(CMAKE_HOST_WIN32)
set(program_name python)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this whole thing should likely be replaced with z_use_vcpkg_fetch(PYTHON3) and adding the missing non-Windows entries to

"name": "python3",

@ChaseKnowlden ChaseKnowlden mentioned this pull request May 16, 2026
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

python3 update to 3.13

2 participants