Skip to content

Conversation

@MikeMcC399
Copy link
Contributor

@MikeMcC399 MikeMcC399 commented Dec 26, 2025

Fixes: #60919

Situation

Python version 3.9 reached end of life transition and has moved to the list of Python unsupported versions:

Python version End of life
3.9 2025-10-31

Build scripts for current release lines should continue to allow using this version for the sake of build environment continuity.

Future Node.js release lines should not include the now unsupported Python 3.9 in build scripts.

Change

Remove Python 3.9 from build scripts. This is a semver-major change.

Similar to #55239 which dropped support for Python 3.8

@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to build files or the CI. needs-ci PRs that need a full CI run. labels Dec 26, 2025
@MikeMcC399 MikeMcC399 marked this pull request as draft December 26, 2025 13:41
@MikeMcC399 MikeMcC399 marked this pull request as ready for review December 26, 2025 13:46
@MikeMcC399
Copy link
Contributor Author

MikeMcC399 commented Dec 26, 2025

Test on Windows 11 25H2 with only Python 3.9.13 installed. Build was correctly rejected:

>.\vcbuild
Looking for Python
Python found in C:\Users\mikem\AppData\Local\Microsoft\WindowsApps\\python.exe
Python 3.9.13
Looking for NASM
Using ClangCL because the Node.js version being compiled is >= 24.
Looking for Visual Studio 2026
Looking for Visual Studio 2022
Found MSVS version 17.0
Found Clang version 19.1.5
configure  --dest-cpu=x64 --clang-cl=19.1.5
[WARNING] A shebang '/bin/sh' was found but does not match any supported template (e.g. '/usr/bin/python'), so it will be treated as an arbitrary command.
[WARNING] To prevent execution of programs that are not Python runtimes, set 'shebang_can_run_anything' to 'false' in your configuration file.
Node.js configure: Found Python 3.9.13...
Please use python3.14 or python3.13 or python3.12 or python3.11 or python3.10.
Failed to create vc project files.

@MikeMcC399

This comment was marked as resolved.

@aduh95 aduh95 added author ready PRs that have at least one approval, no pending requests for changes, and a CI started. request-ci Add this label to start a Jenkins CI on a PR. dont-land-on-v20.x PRs that should not land on the v20.x-staging branch and should not be released in v20.x. dont-land-on-v22.x PRs that should not land on the v22.x-staging branch and should not be released in v22.x. dont-land-on-v24.x PRs that should not land on the v24.x-staging branch and should not be released in v24.x. dont-land-on-v25.x PRs that should not land on the v25.x-staging branch and should not be released in v25.x. labels Dec 26, 2025
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Dec 26, 2025
@nodejs-github-bot
Copy link
Collaborator

@MikeMcC399

This comment was marked as outdated.

@MikeMcC399
Copy link
Contributor Author

MikeMcC399 commented Dec 29, 2025

Waiting for resolution of build infrastructure issue nodejs/build#4208 to bump to minimum Python 3.10 (lowest version on Python supported versions list).

@MikeMcC399

This comment was marked as resolved.

@aduh95
Copy link
Contributor

aduh95 commented Dec 30, 2025

I don't have visibility into https://ci.nodejs.org/ (MikeMcC399 is missing the Overall/Read permission - I'm not a Node.js Collaborator)

That's not the reason, most Collaborators also don't have access due to the security release that have been delayed, see https://nodejs.org/en/blog/vulnerability/december-2025-security-releases#update-17-dec-2025-security-release-target-january-7th.
Unfortunately, that means you have to either trust I reviewed the CI results thoroughly, or wait for the CI to be unlocked once the security releases are out. I don't think it's very likely nodejs/build#4208 will be resolved before then, many project members are taking some time off for the holidays.

@MikeMcC399

This comment was marked as outdated.

@MikeMcC399
Copy link
Contributor Author

I see that some progress is being made in updating the build environment (PR nodejs/build#4215).

Please let me know if there is anything that I should be doing, such as rebasing this PR.

I do now have access to Jenkins at least, now that the security release has been completed. 👍🏻

@richardlau richardlau added the request-ci Add this label to start a Jenkins CI on a PR. label Jan 15, 2026
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Jan 15, 2026
@nodejs-github-bot
Copy link
Collaborator

@avivkeller avivkeller added the commit-queue Add this label to land a pull request using GitHub Actions. label Jan 15, 2026
@nodejs-github-bot nodejs-github-bot added commit-queue-failed An error occurred while landing this pull request using GitHub Actions. and removed commit-queue Add this label to land a pull request using GitHub Actions. labels Jan 15, 2026
@nodejs-github-bot
Copy link
Collaborator

Commit Queue failed
- Loading data for nodejs/node/pull/61177
✔  Done loading data for nodejs/node/pull/61177
----------------------------------- PR info ------------------------------------
Title      build: drop support for Python 3.9 (#61177)
   ⚠  Could not retrieve the email or name of the PR author's from user's GitHub profile!
Branch     MikeMcC399:drop-python39 -> nodejs:main
Labels     build, author ready, needs-ci, dont-land-on-v20.x, dont-land-on-v22.x, dont-land-on-v24.x, dont-land-on-v25.x
Commits    2
 - build: drop support for Python 3.9
 - add back missing bracket
Committers 1
 - Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
PR-URL: https://github.com/nodejs/node/pull/61177
Fixes: https://github.com/nodejs/node/issues/60919
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com>
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
------------------------------ Generated metadata ------------------------------
PR-URL: https://github.com/nodejs/node/pull/61177
Fixes: https://github.com/nodejs/node/issues/60919
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com>
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
--------------------------------------------------------------------------------
   ℹ  This PR was created on Fri, 26 Dec 2025 13:38:49 GMT
   ✔  Approvals: 6
   ✔  - Antoine du Hamel (@aduh95) (TSC): https://github.com/nodejs/node/pull/61177#pullrequestreview-3613632689
   ✔  - Colin Ihrig (@cjihrig): https://github.com/nodejs/node/pull/61177#pullrequestreview-3613700225
   ✔  - Luigi Pinca (@lpinca): https://github.com/nodejs/node/pull/61177#pullrequestreview-3613828398
   ✔  - Marco Ippolito (@marco-ippolito) (TSC): https://github.com/nodejs/node/pull/61177#pullrequestreview-3615541772
   ✔  - Stefan Stojanovic (@StefanStojanovic): https://github.com/nodejs/node/pull/61177#pullrequestreview-3615608194
   ✔  - Ulises Gascón (@UlisesGascon): https://github.com/nodejs/node/pull/61177#pullrequestreview-3620571392
   ✘  Last GitHub CI failed
   ℹ  Last Full PR CI on 2026-01-15T17:53:43Z: https://ci.nodejs.org/job/node-test-pull-request/70817/
- Querying data for job/node-test-pull-request/70817/
✔  Build data downloaded
   ✔  Last Jenkins CI successful
--------------------------------------------------------------------------------
   ✔  Aborted `git node land` session in /home/runner/work/node/node/.ncu
https://github.com/nodejs/node/actions/runs/21047805954

@aduh95 aduh95 added commit-queue Add this label to land a pull request using GitHub Actions. commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. and removed commit-queue-failed An error occurred while landing this pull request using GitHub Actions. commit-queue Add this label to land a pull request using GitHub Actions. labels Jan 15, 2026
@nodejs-github-bot nodejs-github-bot added the commit-queue-failed An error occurred while landing this pull request using GitHub Actions. label Jan 15, 2026
@nodejs-github-bot
Copy link
Collaborator

Commit Queue failed
- Loading data for nodejs/node/pull/61177
✔  Done loading data for nodejs/node/pull/61177
----------------------------------- PR info ------------------------------------
Title      build: drop support for Python 3.9 (#61177)
   ⚠  Could not retrieve the email or name of the PR author's from user's GitHub profile!
Branch     MikeMcC399:drop-python39 -> nodejs:main
Labels     build, author ready, needs-ci, commit-queue-squash, dont-land-on-v20.x, dont-land-on-v22.x, dont-land-on-v24.x, dont-land-on-v25.x
Commits    2
 - build: drop support for Python 3.9
 - add back missing bracket
Committers 1
 - Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
PR-URL: https://github.com/nodejs/node/pull/61177
Fixes: https://github.com/nodejs/node/issues/60919
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com>
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
------------------------------ Generated metadata ------------------------------
PR-URL: https://github.com/nodejs/node/pull/61177
Fixes: https://github.com/nodejs/node/issues/60919
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com>
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
--------------------------------------------------------------------------------
   ℹ  This PR was created on Fri, 26 Dec 2025 13:38:49 GMT
   ✔  Approvals: 6
   ✔  - Antoine du Hamel (@aduh95) (TSC): https://github.com/nodejs/node/pull/61177#pullrequestreview-3613632689
   ✔  - Colin Ihrig (@cjihrig): https://github.com/nodejs/node/pull/61177#pullrequestreview-3613700225
   ✔  - Luigi Pinca (@lpinca): https://github.com/nodejs/node/pull/61177#pullrequestreview-3613828398
   ✔  - Marco Ippolito (@marco-ippolito) (TSC): https://github.com/nodejs/node/pull/61177#pullrequestreview-3615541772
   ✔  - Stefan Stojanovic (@StefanStojanovic): https://github.com/nodejs/node/pull/61177#pullrequestreview-3615608194
   ✔  - Ulises Gascón (@UlisesGascon): https://github.com/nodejs/node/pull/61177#pullrequestreview-3620571392
   ✘  Last GitHub CI failed
   ℹ  Last Full PR CI on 2026-01-15T22:00:51Z: https://ci.nodejs.org/job/node-test-pull-request/70817/
- Querying data for job/node-test-pull-request/70817/
✔  Build data downloaded
   ✔  Last Jenkins CI successful
--------------------------------------------------------------------------------
   ✔  Aborted `git node land` session in /home/runner/work/node/node/.ncu
https://github.com/nodejs/node/actions/runs/21048070546

@aduh95 aduh95 merged commit d73c49e into nodejs:main Jan 15, 2026
119 of 121 checks passed
@aduh95
Copy link
Contributor

aduh95 commented Jan 15, 2026

Landed in d73c49e

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author ready PRs that have at least one approval, no pending requests for changes, and a CI started. build Issues and PRs related to build files or the CI. commit-queue-failed An error occurred while landing this pull request using GitHub Actions. commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. dont-land-on-v20.x PRs that should not land on the v20.x-staging branch and should not be released in v20.x. dont-land-on-v22.x PRs that should not land on the v22.x-staging branch and should not be released in v22.x. dont-land-on-v24.x PRs that should not land on the v24.x-staging branch and should not be released in v24.x. dont-land-on-v25.x PRs that should not land on the v25.x-staging branch and should not be released in v25.x. needs-ci PRs that need a full CI run.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Python 3.9 EOL accepted for build in main branch

10 participants