-
Notifications
You must be signed in to change notification settings - Fork 30.2k
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
[v14.x] build: support Python 3.11 #45231
Conversation
PR-URL: nodejs#45191 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
PR-URL: nodejs#45191 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Review requested:
|
@@ -240,7 +240,7 @@ test with Python 3. | |||
* GNU Make 3.81 or newer | |||
* Python (see note above) | |||
* Python 2.7 | |||
* Python 3.5, 3.6, 3.7, 3.8, 3.9 or 3.10 (see note above) | |||
* Python >=3.5 <=3.11 (see note above) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We use f-strings and will not run on Python 3.5.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In Node.js 14? I don't think we've backported anything using f-strings there. Node.js 14 is in maintenance and going End-of-Life in April 2023 -- this PR is needed to build Node.js 14 on systems that have update to Python 3.11.
@@ -240,7 +240,7 @@ test with Python 3. | |||
* GNU Make 3.81 or newer | |||
* Python (see note above) | |||
* Python 2.7 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Legacy Python?!?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is Node.js 14, which goes End-of-Life in April 2023. We dropped legacy Python for Node.js 16 but 14 was the last release where we supported building with both legacy Python and Python 3 -- this PR merely allows the scripts to use Python 3.11.
It looks like the old version of node-gyp in the old version of npm doesn't work with Python 3.11 👀 😞 |
Given that Node.js 14 is in maintenance and it appears that Python 3.11 introduces incompatibilities with the older versions of node-gyp in npm in Node.js 14 it seems the least risky thing is to not add support for building with Python 3.11 for Node.js 14. We'll need to figure out a way of pinning Python in our Windows CI hosts to Python 3.10 (at least for Node.js 14) to unbreak the CI for Node.js 14. cc @nodejs/platform-windows @nodejs/build-infra |
FWIW on my Windows machine I installed Python from the Microsoft Store, where you can pin to a minor version number (the app is available multiple times, for example Python 3.10). |
Backport of #45191 to v14.x.