From 0cacae1b7d263d3b16bc50553de87dba54f03fb0 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Mon, 13 Oct 2025 16:56:33 +0200 Subject: [PATCH] build: support Python 3.14 Python v3.14 -- October 7th * https://www.python.org/download/pre-releases * https://www.python.org/downloads/release/python-3140rc3 PR-URL: https://github.com/nodejs/node/pull/59983 Backport-PR-URL: https://github.com/nodejs/node/pull/61370 Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com> Reviewed-By: Marco Ippolito Reviewed-By: Stefan Stojanovic Reviewed-By: Stewart X Addison Refs: https://github.com/nodejs/node/issues/60874 --- .github/workflows/build-tarball.yml | 2 +- .github/workflows/coverage-linux-without-intl.yml | 2 +- .github/workflows/coverage-linux.yml | 2 +- .github/workflows/coverage-windows.yml | 2 +- .github/workflows/daily-wpt-fyi.yml | 2 +- .github/workflows/lint-release-proposal.yml | 2 +- .github/workflows/linters.yml | 2 +- .github/workflows/test-internet.yml | 2 +- .github/workflows/test-linux.yml | 2 +- .github/workflows/test-macos.yml | 2 +- .github/workflows/tools.yml | 2 +- android-configure | 3 ++- configure | 3 ++- 13 files changed, 15 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml index 8a39b563612138..39118f07b8e176 100644 --- a/.github/workflows/build-tarball.yml +++ b/.github/workflows/build-tarball.yml @@ -28,7 +28,7 @@ concurrency: cancel-in-progress: true env: - PYTHON_VERSION: '3.12' + PYTHON_VERSION: '3.14' FLAKY_TESTS: keep_retrying permissions: diff --git a/.github/workflows/coverage-linux-without-intl.yml b/.github/workflows/coverage-linux-without-intl.yml index eefb9f33d67a94..dc110262a60183 100644 --- a/.github/workflows/coverage-linux-without-intl.yml +++ b/.github/workflows/coverage-linux-without-intl.yml @@ -34,7 +34,7 @@ concurrency: cancel-in-progress: true env: - PYTHON_VERSION: '3.12' + PYTHON_VERSION: '3.14' FLAKY_TESTS: keep_retrying CC: sccache clang CXX: sccache clang++ diff --git a/.github/workflows/coverage-linux.yml b/.github/workflows/coverage-linux.yml index ea28d9e23fd1a6..9b6d7ce831b405 100644 --- a/.github/workflows/coverage-linux.yml +++ b/.github/workflows/coverage-linux.yml @@ -34,7 +34,7 @@ concurrency: cancel-in-progress: true env: - PYTHON_VERSION: '3.12' + PYTHON_VERSION: '3.14' FLAKY_TESTS: keep_retrying CC: sccache clang CXX: sccache clang++ diff --git a/.github/workflows/coverage-windows.yml b/.github/workflows/coverage-windows.yml index 24aad7dc296a96..ca9d98001176c5 100644 --- a/.github/workflows/coverage-windows.yml +++ b/.github/workflows/coverage-windows.yml @@ -34,7 +34,7 @@ concurrency: cancel-in-progress: true env: - PYTHON_VERSION: '3.12' + PYTHON_VERSION: '3.14' FLAKY_TESTS: keep_retrying permissions: diff --git a/.github/workflows/daily-wpt-fyi.yml b/.github/workflows/daily-wpt-fyi.yml index 57cdc99bfa177b..4d12ec23adb51f 100644 --- a/.github/workflows/daily-wpt-fyi.yml +++ b/.github/workflows/daily-wpt-fyi.yml @@ -13,7 +13,7 @@ on: - cron: 30 0 * * * env: - PYTHON_VERSION: '3.12' + PYTHON_VERSION: '3.14' permissions: contents: read diff --git a/.github/workflows/lint-release-proposal.yml b/.github/workflows/lint-release-proposal.yml index c3e0ee34d18188..bb3a3ac6778a54 100644 --- a/.github/workflows/lint-release-proposal.yml +++ b/.github/workflows/lint-release-proposal.yml @@ -10,7 +10,7 @@ concurrency: cancel-in-progress: true env: - PYTHON_VERSION: '3.12' + PYTHON_VERSION: '3.14' NODE_VERSION: lts/* permissions: diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 8ef41b0a20cf33..572f47891ef1de 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -14,7 +14,7 @@ concurrency: cancel-in-progress: true env: - PYTHON_VERSION: '3.12' + PYTHON_VERSION: '3.14' NODE_VERSION: lts/* permissions: diff --git a/.github/workflows/test-internet.yml b/.github/workflows/test-internet.yml index d97579b6ef6a72..bfaed237d47d15 100644 --- a/.github/workflows/test-internet.yml +++ b/.github/workflows/test-internet.yml @@ -31,7 +31,7 @@ concurrency: cancel-in-progress: true env: - PYTHON_VERSION: '3.12' + PYTHON_VERSION: '3.14' FLAKY_TESTS: keep_retrying CC: sccache clang CXX: sccache clang++ diff --git a/.github/workflows/test-linux.yml b/.github/workflows/test-linux.yml index 207074d75bbe91..c943c8d222eba1 100644 --- a/.github/workflows/test-linux.yml +++ b/.github/workflows/test-linux.yml @@ -25,7 +25,7 @@ concurrency: cancel-in-progress: true env: - PYTHON_VERSION: '3.12' + PYTHON_VERSION: '3.14' FLAKY_TESTS: keep_retrying CC: sccache clang CXX: sccache clang++ diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml index e759c913712162..2f5acc8c52d767 100644 --- a/.github/workflows/test-macos.yml +++ b/.github/workflows/test-macos.yml @@ -29,7 +29,7 @@ concurrency: cancel-in-progress: true env: - PYTHON_VERSION: '3.12' + PYTHON_VERSION: '3.14' XCODE_VERSION: '16.1' FLAKY_TESTS: keep_retrying diff --git a/.github/workflows/tools.yml b/.github/workflows/tools.yml index 38157bfc00e2bb..fdbc75a6d44d59 100644 --- a/.github/workflows/tools.yml +++ b/.github/workflows/tools.yml @@ -43,7 +43,7 @@ on: - zstd env: - PYTHON_VERSION: '3.12' + PYTHON_VERSION: '3.14' permissions: contents: read diff --git a/android-configure b/android-configure index fb237241d7413d..27f39b9917cc55 100755 --- a/android-configure +++ b/android-configure @@ -4,6 +4,7 @@ # Note that the mix of single and double quotes is intentional, # as is the fact that the ] goes on a new line. _=[ 'exec' '/bin/sh' '-c' ''' +command -v python3.14 >/dev/null && exec python3.14 "$0" "$@" command -v python3.13 >/dev/null && exec python3.13 "$0" "$@" command -v python3.12 >/dev/null && exec python3.12 "$0" "$@" command -v python3.11 >/dev/null && exec python3.11 "$0" "$@" @@ -23,7 +24,7 @@ except ImportError: from distutils.spawn import find_executable as which print('Node.js android configure: Found Python {}.{}.{}...'.format(*sys.version_info)) -acceptable_pythons = ((3, 13), (3, 12), (3, 11), (3, 10), (3, 9), (3, 8)) +acceptable_pythons = ((3, 14), (3, 13), (3, 12), (3, 11), (3, 10), (3, 9), (3, 8)) if sys.version_info[:2] in acceptable_pythons: import android_configure else: diff --git a/configure b/configure index 56720e8f4c42d9..789a87c5377f35 100755 --- a/configure +++ b/configure @@ -4,6 +4,7 @@ # Note that the mix of single and double quotes is intentional, # as is the fact that the ] goes on a new line. _=[ 'exec' '/bin/sh' '-c' ''' +command -v python3.14 >/dev/null && exec python3.14 "$0" "$@" command -v python3.13 >/dev/null && exec python3.13 "$0" "$@" command -v python3.12 >/dev/null && exec python3.12 "$0" "$@" command -v python3.11 >/dev/null && exec python3.11 "$0" "$@" @@ -23,7 +24,7 @@ except ImportError: from distutils.spawn import find_executable as which print('Node.js configure: Found Python {}.{}.{}...'.format(*sys.version_info)) -acceptable_pythons = ((3, 13), (3, 12), (3, 11), (3, 10), (3, 9), (3, 8)) +acceptable_pythons = ((3, 14), (3, 13), (3, 12), (3, 11), (3, 10), (3, 9), (3, 8)) if sys.version_info[:2] in acceptable_pythons: import configure else: