Skip to content

build: default PYTHON to python3 in Makefile - #37764

Closed
targos wants to merge 1 commit into
nodejs:masterfrom
targos:make-python3
Closed

build: default PYTHON to python3 in Makefile#37764
targos wants to merge 1 commit into
nodejs:masterfrom
targos:make-python3

Conversation

@targos

Copy link
Copy Markdown
Member

So that direct calls to make which spawn the configure script do not use Python 2.

@nodejs-github-botnodejs-github-bot added build Issues and PRs related to build files or the CI. needs-ci PRs that need a full CI run. labels Mar 16, 2021
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@targos

Copy link
Copy Markdown
MemberAuthor

@cclauss this should help for #36691

@targos

Copy link
Copy Markdown
MemberAuthor

Failed on SmartOS:

07:57:20 python3 ./configure --verbose 07:57:20 make: python3: Command not found

/cc @nodejs/platform-smartos

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@richardlau

richardlau commented Mar 16, 2021

Copy link
Copy Markdown
Member

Failed on SmartOS:

07:57:20 python3 ./configure --verbose 07:57:20 make: python3: Command not found

/cc @nodejs/platform-smartos

Fixed via nodejs/build#2575
From https://ci.nodejs.org/job/node-test-commit-smartos/37929/nodes=smartos18-64/consoleFull

17:04:09 python3 ./configure --verbose 17:04:16 Node.js configure: Found Python 3.7.1...

FWIW though https://ci.nodejs.org/job/node-test-commit/45091/ from yesterday is a closer representation of where we are with unblocking #36691. That job was run against what is effectively a combination of this PR and #36691 and it reveals that some of our jobs explicitly set PYTHON=python before calling the makefiles and so default to Python 2 even though the machine has Python 3 available. (node-test-commit-smartos was one of the jobs that was not explicitly setting PYTHON.) If you were to look at the logs for the passing jobs from https://ci.nodejs.org/job/node-test-pull-request/36732/ you'll see that a lot of them are still using Python 2.

Follow up build issue to track the job changes: nodejs/build#2576

@targostargos added the semver-major PRs that contain breaking changes and should be released in the next major version. label Mar 16, 2021
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@targos

Copy link
Copy Markdown
MemberAuthor

Looks like tools/genv8constants.py is not compatible with Python 3:

09:09:57 File "tools/genv8constants.py", line 97, in <module>
09:09:57 match = pattern.match(line)
09:09:57 TypeError: cannot use a string pattern on a bytes-like object
09:09:57 make[2]: *** [node_dtrace_ustack.target.mk:13: /home/iojs/build/workspace/node-test-commit-smartos/nodes/smartos18-64/out/Release/obj/gen/v8constants.h] Error 1

@targostargos added the blocked PRs that are blocked by other issues or PRs. label Mar 20, 2021
@targos

targos commented Mar 20, 2021

Copy link
Copy Markdown
MemberAuthor

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@targos

Copy link
Copy Markdown
MemberAuthor

Blocked on nodejs/build#2507 (comment)

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@targos

Copy link
Copy Markdown
MemberAuthor

So that direct calls to `make` which spawn the configure script do not use Python 2.
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@richardlaurichardlau mentioned this pull request Mar 31, 2021
4 tasks
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@targos

Copy link
Copy Markdown
MemberAuthor

node-test-binary-arm-12+ is blocked on nodejs/build#2606 (comment)

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@richardlaurichardlau removed the blocked PRs that are blocked by other issues or PRs. label Apr 14, 2021
gengjiawen pushed a commit that referenced this pull request Apr 15, 2021
So that direct calls to `make` which spawn the configure script do not use Python 2.
PR-URL: #37764
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ash Cripps <acripps@redhat.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
@gengjiawen

Copy link
Copy Markdown
Member

Landed in c3a5e15

@targos
targos deleted the make-python3 branch April 15, 2021 04:42
BethGriggs pushed a commit that referenced this pull request Apr 15, 2021
So that direct calls to `make` which spawn the configure script do not use Python 2.
PR-URL: #37764
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ash Cripps <acripps@redhat.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
BethGriggs added a commit that referenced this pull request Apr 20, 2021
Notable Changes:
Deprecations and Removals
- **(SEMVER-MAJOR)** **fs**: remove permissive rmdir recursive
(Antoine du Hamel) [#37216]
- **(SEMVER-MAJOR)** **fs**: runtime deprecate rmdir recursive option
(Antoine du Hamel) [#37302]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('http_parser') (James M Snell) [#37813]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('url') (James M Snell) [#37799]
- **(SEMVER-MAJOR)** **lib**: make process.binding('util') return only
type checkers (Anna Henningsen) [#37819]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('crypto') (James M Snell) [#37790]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('signal_wrap') (James M Snell) [#37800]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('v8') (James M Snell) [#37789]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('async_wrap') (James M Snell) [#37576]
- **(SEMVER-MAJOR)** **module**: remove module.createRequireFromPath
(Antoine du Hamel) [#37201]
- **(SEMVER-MAJOR)** **module**: runtime deprecate subpath folder
mappings (Antoine du Hamel) [#37215]
- **(SEMVER-MAJOR)** **module**: runtime deprecate "main" index and
extension lookups (Antoine du Hamel) [#37206]
- **(SEMVER-MAJOR)** **module**: runtime deprecate invalid package.json
main entries (Antoine du Hamel) [#37204]
- **(SEMVER-MAJOR)** **process**: runtime deprecate changing
process.config (James M Snell) [#36902]
Stable Timers Promises API:
The Timers Promises API provides an alternative set of timer functions
that return Promise objects. Added in Node.js v15.0.0, in this release
they graduate from experimental status to stable.
Contributed by James Snell - [#38112]
Toolchain and Compiler Upgrades:
Node.js v16.0.0 will be the first release where we ship prebuilt
binaries for Apple Silicon. While we’ll be providing separate tarballs
for the Intel (`darwin-x64`) and ARM (`darwin-arm64`) architectures the
macOS installer (`.pkg`) will be shipped as a ‘fat’ (multi-architecture)
binary.
- **(SEMVER-MAJOR)** **build**: remove support for Python 2
(Christian Clauss) [#36691]
- **(SEMVER-MAJOR)** **build**: default PYTHON to python3 in Makefile
(Michaël Zasso) [#37764]
- **build**: update Makefile to support fat binary (Ash Cripps)
[#37861]
- **(SEMVER-MAJOR)** **build**: enable ASLR (PIE) on OS X (woodfairy)
[#35704]
- **build**: warn for gcc versions earlier than 8.3.0 (Richard Lau)
[#37935]
- **(SEMVER-MAJOR)** **doc**: update minimum supported Xcode to 11
(Michaël Zasso) [#37872]
- **(SEMVER-MAJOR)** **doc**: update minimum supported GCC to 8.3
(Michaël Zasso) [#37871]
- **(SEMVER-MAJOR)** **doc**: update AIX to GCC8 for v16.x (Ash Cripps)
[#37677]
- **tools**: set arch in Distribution.xml (Ash Cripps)
[#38261]
V8 9.0:
The V8 JavaScript engine is updated to V8 9.0, including performance
tweaks and improvements.
This update also brings the ECMAScript RegExp Match Indices, which
provide the start and end indices of the captured string. The indices
array is available via the `.indices` property on match objects when the
regular expression has the `/d` flag.
Contributed by Michaël Zasso - [#37587]
Other Notable Changes:
- **(SEMVER-MINOR)** **assert**: graduate assert.match and
assert.doesNotMatch (James M Snell) [#38111]
- **(SEMVER-MAJOR)** **buffer**: expose btoa and atob as globals
(James M Snell) [#37786]
- **deps**: update llhttp to 6.0.0 (Fedor Indutny)
[#38277]
- **deps**: upgrade npm to 7.10.0 (Ruy Adorno)
[#38254]
- **(SEMVER-MAJOR)** **deps**: bump minimum ICU version to 68
(Michaël Zasso) [#37330]
- **(SEMVER-MINOR)** **http**: add http.ClientRequest.getRawHeaderNames()
(simov) [#37660]
- **(SEMVER-MAJOR)** **lib,src**: update cluster to use Parent
(Michael Dawson) [#36478]
- **(SEMVER-MINOR)** **module**: add support for `node:`‑prefixed
`require(…)` calls (ExE Boss) [#37246]
- **(SEMVER-MINOR)** **perf_hooks**: add histogram option to timerify
(James M Snell) [#37475]
- **(SEMVER-MINOR)** **repl**: add auto‑completion for `node:`‑prefixed
`require(…)` calls (ExE Boss) [#37246]
- **(SEMVER-MINOR)** **util**: add getSystemErrorMap() impl
(eladkeyshawn) [#38101]
Semver-Major Commits:
- **async_hooks**: add thisArg to AsyncResource.bind (James M Snell)
[#36782]
- **buffer**: expose btoa and atob as globals (James M Snell)
[#37786]
- **build**: remove support for Python 2 (Christian Clauss)
[#36691]
- **build**: default PYTHON to python3 in Makefile (Michaël Zasso)
[#37764]
- **build**: update Makefile to support fat binary (Ash Cripps)
[#37861]
- **build**: reset embedder string to "-node.0" (Michaël Zasso)
[#37587]
- **build**: include minimal V8 headers in distribution (Michaël Zasso)
[#37570]
- **build**: reset embedder string to "-node.0" (Michaël Zasso)
[#37330]
- **build**: reset embedder string to "-node.0" (Michaël Zasso)
[#36139]
- **build**: use C++11 ABI with libstdc++ (Anna Henningsen)
[#36634]
- **build**: enable ASLR (PIE) on OS X (woodfairy)
[#35704]
- **build**: reset embedder string to "-node.0" (Michaël Zasso)
[#35700]
- **deps**: V8: cherry-pick 1648e050cade (Michaël Zasso)
[#37587]
- **deps**: silence irrelevant V8 warnings (Michaël Zasso)
[#37587]
- **deps**: fix V8 build issue with inline methods (Jiawen Geng)
[#35415]
- **deps**: make v8.h compatible with VS2015 (Joao Reis)
[#32116]
- **deps**: V8: forward declaration of `Rtl\*FunctionTable` (Refael
Ackermann) [#32116]
- **deps**: V8: patch register-arm64.h (Refael Ackermann)
[#32116]
- **deps**: V8: un-cherry-pick bd019bd (Refael Ackermann)
[#32116]
- **deps**: update V8 to 9.0.257.11 (Michaël Zasso)
[#37587]
- **deps**: bump minimum ICU version to 68 (Michaël Zasso)
[#37330]
- **deps**: V8: cherry-pick 8957d4677aa7 (Michaël Zasso)
[#37330]
- **deps**: V8: backport a11395433dbd (Michaël Zasso)
[#37330]
- **deps**: V8: cherry-pick deb0813166f3 (Michaël Zasso)
[#36139]
- **deps**: V8: cherry-pick 9a6a22874c81 (Michaël Zasso)
[#36139]
- **deps**: silence irrelevant V8 warning (Michaël Zasso)
[#37330]
- **deps**: workaround stod() limitations on SmartOS (Colin Ihrig)
[#37330]
- **deps**: fix V8 build issue with inline methods (Jiawen Geng)
[#35415]
- **deps**: patch V8 to run on Xcode 8 (Mary Marchini)
[#32116]
- **deps**: make v8.h compatible with VS2015 (Joao Reis)
[#32116]
- **deps**: V8: forward declaration of `Rtl\*FunctionTable` (Refael
Ackermann) [#32116]
- **deps**: V8: patch register-arm64.h (Refael Ackermann)
[#32116]
- **deps**: patch V8 to run on older XCode versions (Ujjwal Sharma)
[#32116]
- **deps**: V8: un-cherry-pick bd019bd (Refael Ackermann)
[#32116]
- **deps**: update V8 to 8.9.255.19 (Michaël Zasso)
[#37330]
- **deps**: V8: cherry-pick deb0813166f3 (Michaël Zasso)
[#36139]
- **deps**: V8: cherry-pick 9a6a22874c81 (Michaël Zasso)
[#36139]
- **deps**: V8: cherry-pick 2059ee813359 (Michaël Zasso)
[#36139]
- **deps**: V8: cherry-pick bde7ee5473d6 (Michaël Zasso)
[#36139]
- **deps**: V8: cherry-pick 9a712984025e (Michaël Zasso)
[#36139]
- **deps**: V8: cherry-pick 0b96e5b0bfb2 (Michaël Zasso)
[#36139]
- **deps**: V8: cherry-pick fbb28902e049 (Michaël Zasso)
[#36139]
- **deps**: V8: cherry-pick 821fb3883a8e (Michaël Zasso)
[#35700]
- **deps**: workaround stod() limitations on SmartOS (Colin Ihrig)
[#36139]
- **deps**: fix V8 build issue with inline methods (Jiawen Geng)
[#35415]
- **deps**: patch V8 to run on Xcode 8 (Mary Marchini)
[#32116]
- **deps**: V8: silence irrelevant warnings (Michaël Zasso)
[#32116]
- **deps**: make v8.h compatible with VS2015 (Joao Reis)
[#32116]
- **deps**: V8: forward declaration of `Rtl\*FunctionTable` (Refael
Ackermann) [#32116]
- **deps**: V8: patch register-arm64.h (Refael Ackermann)
[#32116]
- **deps**: patch V8 to run on older XCode versions (Ujjwal Sharma)
[#32116]
- **deps**: V8: un-cherry-pick bd019bd (Refael Ackermann)
[#32116]
- **deps**: update V8 to 8.8.278.17 (Michaël Zasso)
[#36139]
- **deps**: V8: cherry-pick 821fb3883a8e (Michaël Zasso)
[#35700]
- **deps**: V8: cherry-pick 45e49775f5a3 (Michaël Zasso)
[#35700]
- **deps**: V8: cherry-pick 7b3a27b7ae65 (Michaël Zasso)
[#35700]
- **deps**: V8: cherry-pick d76abfed3512 (Michaël Zasso)
[#35415]
- **deps**: fix V8 build issue with inline methods (Jiawen Geng)
[#35415]
- **deps**: update V8 postmortem metadata script (Colin Ihrig)
[#35415]
- **deps**: update V8 postmortem metadata script (Colin Ihrig)
[#33579]
- **deps**: patch V8 to run on Xcode 8 (Mary Marchini)
[#32116]
- **deps**: V8: silence irrelevant warnings (Michaël Zasso)
[#32116]
- **deps**: make v8.h compatible with VS2015 (Joao Reis)
[#32116]
- **deps**: V8: forward declaration of `Rtl\*FunctionTable` (Refael
Ackermann) [#32116]
- **deps**: V8: patch register-arm64.h (Refael Ackermann)
[#32116]
- **deps**: patch V8 to run on older XCode versions (Ujjwal Sharma)
[#32116]
- **deps**: V8: un-cherry-pick bd019bd (Refael Ackermann)
[#32116]
- **deps**: update V8 to 8.7.220 (Michaël Zasso)
[#35700]
- **dns**: use url module instead of punycode for IDNA (Antoine du
Hamel) [#35091]
- **doc**: update minimum supported Xcode to 11 (Michaël Zasso)
[#37872]
- **doc**: update minimum supported GCC to 8.3 (Michaël Zasso)
[#37871]
- **doc**: update AIX to GCC8 for v16.x (Ash Cripps)
[#37677]
- **doc**: fixup http.IncomingMessage deprecation code (Guy Bedford)
[#36917]
- **doc**: add http.IncomingMessage#connection (Pranshu Srivastava)
[#33768]
- **events**: change EventTarget handler exception behavior (Nitzan
Uziely) [#37237]
- **fs**: remove permissive rmdir recursive (Antoine du Hamel)
[#37216]
- **fs**: add validation for fd and path (Dylan Elliott)
[#35187]
- **fs**: runtime deprecate rmdir recursive option (Antoine du Hamel)
[#37302]
- **fs**: fix flag and mode validation (James M Snell)
[#37480]
- **http**: use objects with null prototype in Agent (Michaël Zasso)
[#36409]
- **lib**: runtime deprecate access to process.binding('http_parser')
(James M Snell) [#37813]
- **lib**: runtime deprecate access to process.binding('url') (James M
Snell) [#37799]
- **lib**: make process.binding('util') return only type checkers (Anna
Henningsen) [#37819]
- **lib**: runtime deprecate access to process.binding('crypto') (James
M Snell) [#37790]
- **lib**: runtime deprecate access to process.binding('signal_wrap')
(James M Snell) [#37800]
- **lib**: runtime deprecate access to process.binding('v8') (James M
Snell) [#37789]
- **lib**: aggregate errors to avoid error swallowing (Antoine du Hamel)
[#37460]
- **lib**: load v8_prof_processor dependencies as ESM (Michaël Zasso)
[#37587]
- **lib**: runtime deprecate access to process.binding('async_wrap')
(James M Snell) [#37576]
- **lib**: remove usage of url.parse (raisinten)
[#36853]
- **lib**: add error handling for input stream (rexagod)
[#31603]
- **lib,src**: update cluster to use Parent (Michael Dawson)
[#36478]
- **module**: runtime deprecate subpath folder mappings (Antoine du
Hamel) [#37215]
- **module**: runtime deprecate "main" index and extension lookups
(Antoine du Hamel) [#37206]
- **module**: runtime deprecate invalid package.json main entries
(Antoine du Hamel) [#37204]
- **module**: remove module.createRequireFromPath (Antoine du Hamel)
[#37201]
- **module**: only set cache when finding module succeeds (Yongsheng
Zhang) [#36642]
- **perf_hooks**: make performance a global (James M Snell)
[#37970]
- **perf_hooks**: complete overhaul of the implementation (James M
Snell) [#37136]
- **process**: disallow adding options to
process.allowedNodeEnvironmentFlags (Antoine du Hamel)
[#36660]
- **process**: runtime deprecate changing process.config (James M Snell)
[#36902]
- **readline**: cursorTo throw error on NaN (Zijian Liu)
[#36379]
- **src**: use non-deprecated GetCreationContext from V8 (Michaël Zasso)
[#37587]
- **src**: remove V8_FT_ADAPTOR for V8 update (Colin Ihrig)
[#37587]
- **src**: use non-deprecated V8 module APIs (Michaël Zasso)
[#37587]
- **src**: update NODE_MODULE_VERSION to 93 (Michaël Zasso)
[#37587]
- **src**: use non-deprecated V8 module and script APIs (Michaël Zasso)
[#37330]
- **src**: update NODE_MODULE_VERSION to 92 (Michaël Zasso)
[#37330]
- **src**: update NODE_MODULE_VERSION to 91 (Michaël Zasso)
[#36139]
- **src**: mark internally exported functions as explicitly internal
(Tyler Ang-Wanek) [#37000]
- **src**: inline AsyncCleanupHookHandle in headers (Tyler Ang-Wanek)
[#37000]
- **src**: fix v8 api deprecation (Jiawen Geng)
[#35700]
- **src**: update NODE_MODULE_VERSION to 90 (Michaël Zasso)
[#35700]
- **src**: clean up embedder API (Anna Henningsen)
[#35897]
- **test**: mark test-return-on-exit as flaky (Michaël Zasso)
[#36139]
- **test**: mark WASI's test-return-on-exit as flaky (Colin Ihrig)
[#36139]
- **tools**: update V8 gypfiles for 9.0 (Michaël Zasso)
[#37587]
- **tools**: update V8 gypfiles for 8.9 (Michaël Zasso)
[#37330]
- **tools**: update V8 gypfiles for 8.8 (Michaël Zasso)
[#36139]
- **tools**: update V8 gypfiles for 8.7 (Michaël Zasso)
[#35700]
- **worker**: send correct error status for worker init (Yash Ladha)
[#36242]
PR-URL: #37678
BethGriggs added a commit that referenced this pull request Apr 20, 2021
Notable changes:
Deprecations and Removals:
- **(SEMVER-MAJOR)** **fs**: remove permissive rmdir recursive
(Antoine du Hamel) [#37216]
- **(SEMVER-MAJOR)** **fs**: runtime deprecate rmdir recursive option
(Antoine du Hamel) [#37302]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('http_parser') (James M Snell) [#37813]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('url') (James M Snell) [#37799]
- **(SEMVER-MAJOR)** **lib**: make process.binding('util') return only
type checkers (Anna Henningsen) [#37819]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('crypto') (James M Snell) [#37790]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('signal_wrap') (James M Snell) [#37800]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('v8') (James M Snell) [#37789]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('async_wrap') (James M Snell) [#37576]
- **(SEMVER-MAJOR)** **module**: remove module.createRequireFromPath
(Antoine du Hamel) [#37201]
- **(SEMVER-MAJOR)** **module**: runtime deprecate subpath folder
mappings (Antoine du Hamel) [#37215]
- **(SEMVER-MAJOR)** **module**: runtime deprecate "main" index and
extension lookups (Antoine du Hamel) [#37206]
- **(SEMVER-MAJOR)** **module**: runtime deprecate invalid package.json
main entries (Antoine du Hamel) [#37204]
- **(SEMVER-MAJOR)** **process**: runtime deprecate changing
process.config (James M Snell) [#36902]
Stable Timers Promises API:
The Timers Promises API provides an alternative set of timer functions
that return Promise objects. Added in Node.js v15.0.0, in this release
they graduate from experimental status to stable.
Contributed by James Snell - [#38112]
Toolchain and Compiler Upgrades:
Node.js v16.0.0 will be the first release where we ship prebuilt
binaries for Apple Silicon. While we’ll be providing separate tarballs
for the Intel (`darwin-x64`) and ARM (`darwin-arm64`) architectures the
macOS installer (`.pkg`) will be shipped as a ‘fat’ (multi-architecture)
binary.
- **(SEMVER-MAJOR)** **build**: remove support for Python 2 (Christian
Clauss) [#36691]
- **(SEMVER-MAJOR)** **build**: default PYTHON to python3 in Makefile
(Michaël Zasso) [#37764]
- **build**: update Makefile to support fat binary (Ash Cripps)
[#37861]
- **(SEMVER-MAJOR)** **build**: enable ASLR (PIE) on OS X (woodfairy)
[#35704]
- **build**: warn for gcc versions earlier than 8.3.0 (Richard Lau)
[#37935]
- **(SEMVER-MAJOR)** **doc**: update minimum supported Xcode to 11
(Michaël Zasso) [#37872]
- **(SEMVER-MAJOR)** **doc**: update minimum supported GCC to 8.3
(Michaël Zasso) [#37871]
- **(SEMVER-MAJOR)** **doc**: update AIX to GCC8 for v16.x (Ash Cripps)
[#37677]
- **tools**: set arch in Distribution.xml (Ash Cripps)
[#38261]
V8 9.0:
The V8 JavaScript engine is updated to V8 9.0, including performance
tweaks and improvements.
This update also brings the ECMAScript RegExp Match Indices, which
provide the start and end indices of the captured string. The indices
array is available via the `.indices` property on match objects when the
regular expression has the `/d` flag.
Contributed by Michaël Zasso - [#37587]
Other Notable Changes:
- **(SEMVER-MINOR)** **assert**: graduate assert.match and
assert.doesNotMatch (James M Snell) [#38111]
- **(SEMVER-MAJOR)** **buffer**: expose btoa and atob as globals
(James M Snell) [#37786]
- **(SEMVER-MAJOR)** **deps**: bump minimum ICU version to 68
(Michaël Zasso) [#37330]
- **deps**: update ICU to 69.1 (Michaël Zasso)
[#38178]
- **deps**: update llhttp to 6.0.0 (Fedor Indutny)
[#38277]
- **deps**: upgrade npm to 7.10.0 (Ruy Adorno)
[#38254]
- **(SEMVER-MINOR)** **http**: add http.ClientRequest.getRawHeaderNames()
(simov) [#37660]
- **(SEMVER-MAJOR)** **lib,src**: update cluster to use Parent
(Michael Dawson) [#36478]
- **(SEMVER-MINOR)** **module**: add support for `node:`‑prefixed
`require(…)` calls (ExE Boss) [#37246]
- **(SEMVER-MINOR)** **perf_hooks**: add histogram option to timerify
(James M Snell) [#37475]
- **(SEMVER-MINOR)** **repl**: add auto‑completion for `node:`‑prefixed
`require(…)` calls (ExE Boss) [#37246]
- **(SEMVER-MINOR)** **util**: add getSystemErrorMap() impl
(eladkeyshawn) [#38101]
Semver-Major Commits:
- **(SEMVER-MAJOR)** **async_hooks**: add thisArg to AsyncResource.bind
(James M Snell) [#36782]
- **(SEMVER-MAJOR)** **buffer**: expose btoa and atob as globals
(James M Snell) [#37786]
- **(SEMVER-MAJOR)** **build**: remove support for Python 2
(Christian Clauss) [#36691]
- **(SEMVER-MAJOR)** **build**: default PYTHON to python3 in Makefile
(Michaël Zasso) [#37764]
- **(SEMVER-MAJOR)** **build**: update Makefile to support fat binary
(Ash Cripps) [#37861]
- **(SEMVER-MAJOR)** **build**: include minimal V8 headers in
distribution (Michaël Zasso) [#37570]
- **(SEMVER-MAJOR)** **build**: use C++11 ABI with libstdc++
(Anna Henningsen) [#36634]
- **(SEMVER-MAJOR)** **build**: enable ASLR (PIE) on OS X (woodfairy)
[#35704]
- **(SEMVER-MAJOR)** **deps**: update V8 to 9.0.257.11 (Michaël Zasso)
[#37587]
- **(SEMVER-MAJOR)** **deps**: bump minimum ICU version to 68
(Michaël Zasso) [#37330]
- **(SEMVER-MAJOR)** **deps**: update V8 to 8.9.255.19 (Michaël Zasso)
[#37330]
- **(SEMVER-MAJOR)** **deps**: update V8 to 8.8.278.17 (Michaël Zasso)
[#36139]
- **(SEMVER-MAJOR)** **deps**: update V8 to 8.7.220 (Michaël Zasso)
[#35700]
- **(SEMVER-MAJOR)** **dns**: use url module instead of punycode for
IDNA (Antoine du Hamel) [#35091]
- **(SEMVER-MAJOR)** **doc**: update minimum supported Xcode to 11
(Michaël Zasso) [#37872]
- **(SEMVER-MAJOR)** **doc**: update minimum supported GCC to 8.3
(Michaël Zasso) [#37871]
- **(SEMVER-MAJOR)** **doc**: update AIX to GCC8 for v16.x (Ash Cripps)
[#37677]
- **(SEMVER-MAJOR)** **doc**: add http.IncomingMessage#connection
(Pranshu Srivastava) [#33768]
- **(SEMVER-MAJOR)** **events**: change EventTarget handler exception
behavior (Nitzan Uziely) [#37237]
- **(SEMVER-MAJOR)** **fs**: remove permissive rmdir recursive
(Antoine du Hamel) [#37216]
- **(SEMVER-MAJOR)** **fs**: add validation for fd and path
(Dylan Elliott) [#35187]
- **(SEMVER-MAJOR)** **fs**: runtime deprecate rmdir recursive option
(Antoine du Hamel) [#37302]
- **(SEMVER-MAJOR)** **fs**: fix flag and mode validation
(James M Snell) [#37480]
- **(SEMVER-MAJOR)** **http**: use objects with null prototype in Agent
(Michaël Zasso) [#36409]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('http_parser') (James M Snell)
[#37813]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('url') (James M Snell)
[#37799]
- **(SEMVER-MAJOR)** **lib**: make process.binding('util') return only
type checkers (Anna Henningsen) [#37819]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('crypto') (James M Snell) [#37790]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('signal_wrap') (James M Snell) [#37800]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('v8') (James M Snell) [#37789]
- **(SEMVER-MAJOR)** **lib**: aggregate errors to avoid error swallowing
(Antoine du Hamel) [#37460]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('async_wrap') (James M Snell) [#37576]
- **(SEMVER-MAJOR)** **lib**: remove usage of url.parse
(raisinten) [#36853]
- **(SEMVER-MAJOR)** **lib**: add error handling for input stream
(rexagod) [#31603]
- **(SEMVER-MAJOR)** **lib,src**: update cluster to use Parent
(Michael Dawson) [#36478]
- **(SEMVER-MAJOR)** **module**: runtime deprecate subpath folder
mappings (Antoine du Hamel) [#37215]
- **(SEMVER-MAJOR)** **module**: runtime deprecate "main" index and
extension lookups (Antoine du Hamel) [#37206]
- **(SEMVER-MAJOR)** **module**: runtime deprecate invalid package.json
main entries (Antoine du Hamel) [#37204]
- **(SEMVER-MAJOR)** **module**: remove module.createRequireFromPath
(Antoine du Hamel) [#37201]
- **(SEMVER-MAJOR)** **module**: only set cache when finding module
succeeds (Yongsheng Zhang) [#36642]
- **(SEMVER-MAJOR)** **perf_hooks**: make performance a global (James M
Snell) [#37970]
- **(SEMVER-MAJOR)** **perf_hooks**: complete overhaul of the
implementation (James M Snell) [#37136]
- **(SEMVER-MAJOR)** **process**: disallow adding options to
process.allowedNodeEnvironmentFlags (Antoine du Hamel)
[#36660]
- **(SEMVER-MAJOR)** **process**: runtime deprecate changing
process.config (James M Snell) [#36902]
- **(SEMVER-MAJOR)** **readline**: cursorTo throw error on NaN
(Zijian Liu) [#36379]
- **(SEMVER-MAJOR)** **src**: mark internally exported functions as
explicitly internal (Tyler Ang-Wanek) [#37000]
- **(SEMVER-MAJOR)** **src**: inline AsyncCleanupHookHandle in headers
(Tyler Ang-Wanek) [#37000]
- **(SEMVER-MAJOR)** **src**: clean up embedder API (Anna Henningsen)
[#35897]
- **(SEMVER-MAJOR)** **worker**: send correct error status for worker
init (Yash Ladha) [#36242]
PR-URL: #37678
BethGriggs added a commit that referenced this pull request Apr 20, 2021
Notable changes:
Deprecations and Removals:
- **(SEMVER-MAJOR)** **fs**: remove permissive rmdir recursive
(Antoine du Hamel) [#37216]
- **(SEMVER-MAJOR)** **fs**: runtime deprecate rmdir recursive option
(Antoine du Hamel) [#37302]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('http_parser') (James M Snell) [#37813]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('url') (James M Snell) [#37799]
- **(SEMVER-MAJOR)** **lib**: make process.binding('util') return only
type checkers (Anna Henningsen) [#37819]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('crypto') (James M Snell) [#37790]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('signal_wrap') (James M Snell) [#37800]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('v8') (James M Snell) [#37789]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('async_wrap') (James M Snell) [#37576]
- **(SEMVER-MAJOR)** **module**: remove module.createRequireFromPath
(Antoine du Hamel) [#37201]
- **(SEMVER-MAJOR)** **module**: runtime deprecate subpath folder
mappings (Antoine du Hamel) [#37215]
- **(SEMVER-MAJOR)** **module**: runtime deprecate "main" index and
extension lookups (Antoine du Hamel) [#37206]
- **(SEMVER-MAJOR)** **module**: runtime deprecate invalid package.json
main entries (Antoine du Hamel) [#37204]
- **(SEMVER-MAJOR)** **process**: runtime deprecate changing
process.config (James M Snell) [#36902]
Stable Timers Promises API:
The Timers Promises API provides an alternative set of timer functions
that return Promise objects. Added in Node.js v15.0.0, in this release
they graduate from experimental status to stable.
Contributed by James Snell - [#38112]
Toolchain and Compiler Upgrades:
Node.js v16.0.0 will be the first release where we ship prebuilt
binaries for Apple Silicon. While we’ll be providing separate tarballs
for the Intel (`darwin-x64`) and ARM (`darwin-arm64`) architectures the
macOS installer (`.pkg`) will be shipped as a ‘fat’ (multi-architecture)
binary.
- **(SEMVER-MAJOR)** **build**: remove support for Python 2 (Christian
Clauss) [#36691]
- **(SEMVER-MAJOR)** **build**: default PYTHON to python3 in Makefile
(Michaël Zasso) [#37764]
- **build**: update Makefile to support fat binary (Ash Cripps)
[#37861]
- **(SEMVER-MAJOR)** **build**: enable ASLR (PIE) on OS X (woodfairy)
[#35704]
- **build**: warn for gcc versions earlier than 8.3.0 (Richard Lau)
[#37935]
- **(SEMVER-MAJOR)** **doc**: update minimum supported Xcode to 11
(Michaël Zasso) [#37872]
- **(SEMVER-MAJOR)** **doc**: update minimum supported GCC to 8.3
(Michaël Zasso) [#37871]
- **(SEMVER-MAJOR)** **doc**: update AIX to GCC8 for v16.x (Ash Cripps)
[#37677]
- **tools**: set arch in Distribution.xml (Ash Cripps)
[#38261]
V8 9.0:
The V8 JavaScript engine is updated to V8 9.0, including performance
tweaks and improvements.
This update also brings the ECMAScript RegExp Match Indices, which
provide the start and end indices of the captured string. The indices
array is available via the `.indices` property on match objects when the
regular expression has the `/d` flag.
Contributed by Michaël Zasso - [#37587]
Other Notable Changes:
- **(SEMVER-MINOR)** **assert**: graduate assert.match and
assert.doesNotMatch (James M Snell) [#38111]
- **(SEMVER-MAJOR)** **buffer**: expose btoa and atob as globals
(James M Snell) [#37786]
- **(SEMVER-MAJOR)** **deps**: bump minimum ICU version to 68
(Michaël Zasso) [#37330]
- **deps**: update ICU to 69.1 (Michaël Zasso)
[#38178]
- **deps**: update llhttp to 6.0.0 (Fedor Indutny)
[#38277]
- **deps**: upgrade npm to 7.10.0 (Ruy Adorno)
[#38254]
- **(SEMVER-MINOR)** **http**: add http.ClientRequest.getRawHeaderNames()
(simov) [#37660]
- **(SEMVER-MAJOR)** **lib,src**: update cluster to use Parent
(Michael Dawson) [#36478]
- **(SEMVER-MINOR)** **module**: add support for `node:`‑prefixed
`require(…)` calls (ExE Boss) [#37246]
- **(SEMVER-MINOR)** **perf_hooks**: add histogram option to timerify
(James M Snell) [#37475]
- **(SEMVER-MINOR)** **repl**: add auto‑completion for `node:`‑prefixed
`require(…)` calls (ExE Boss) [#37246]
- **(SEMVER-MINOR)** **util**: add getSystemErrorMap() impl
(eladkeyshawn) [#38101]
Semver-Major Commits:
- **(SEMVER-MAJOR)** **async_hooks**: add thisArg to AsyncResource.bind
(James M Snell) [#36782]
- **(SEMVER-MAJOR)** **buffer**: expose btoa and atob as globals
(James M Snell) [#37786]
- **(SEMVER-MAJOR)** **build**: remove support for Python 2
(Christian Clauss) [#36691]
- **(SEMVER-MAJOR)** **build**: default PYTHON to python3 in Makefile
(Michaël Zasso) [#37764]
- **(SEMVER-MAJOR)** **build**: update Makefile to support fat binary
(Ash Cripps) [#37861]
- **(SEMVER-MAJOR)** **build**: include minimal V8 headers in
distribution (Michaël Zasso) [#37570]
- **(SEMVER-MAJOR)** **build**: use C++11 ABI with libstdc++
(Anna Henningsen) [#36634]
- **(SEMVER-MAJOR)** **build**: enable ASLR (PIE) on OS X (woodfairy)
[#35704]
- **(SEMVER-MAJOR)** **deps**: update V8 to 9.0.257.11 (Michaël Zasso)
[#37587]
- **(SEMVER-MAJOR)** **deps**: bump minimum ICU version to 68
(Michaël Zasso) [#37330]
- **(SEMVER-MAJOR)** **deps**: update V8 to 8.9.255.19 (Michaël Zasso)
[#37330]
- **(SEMVER-MAJOR)** **deps**: update V8 to 8.8.278.17 (Michaël Zasso)
[#36139]
- **(SEMVER-MAJOR)** **deps**: update V8 to 8.7.220 (Michaël Zasso)
[#35700]
- **(SEMVER-MAJOR)** **dns**: use url module instead of punycode for
IDNA (Antoine du Hamel) [#35091]
- **(SEMVER-MAJOR)** **doc**: update minimum supported Xcode to 11
(Michaël Zasso) [#37872]
- **(SEMVER-MAJOR)** **doc**: update minimum supported GCC to 8.3
(Michaël Zasso) [#37871]
- **(SEMVER-MAJOR)** **doc**: update AIX to GCC8 for v16.x (Ash Cripps)
[#37677]
- **(SEMVER-MAJOR)** **doc**: add http.IncomingMessage#connection
(Pranshu Srivastava) [#33768]
- **(SEMVER-MAJOR)** **events**: change EventTarget handler exception
behavior (Nitzan Uziely) [#37237]
- **(SEMVER-MAJOR)** **fs**: remove permissive rmdir recursive
(Antoine du Hamel) [#37216]
- **(SEMVER-MAJOR)** **fs**: add validation for fd and path
(Dylan Elliott) [#35187]
- **(SEMVER-MAJOR)** **fs**: runtime deprecate rmdir recursive option
(Antoine du Hamel) [#37302]
- **(SEMVER-MAJOR)** **fs**: fix flag and mode validation
(James M Snell) [#37480]
- **(SEMVER-MAJOR)** **http**: use objects with null prototype in Agent
(Michaël Zasso) [#36409]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('http_parser') (James M Snell)
[#37813]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('url') (James M Snell)
[#37799]
- **(SEMVER-MAJOR)** **lib**: make process.binding('util') return only
type checkers (Anna Henningsen) [#37819]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('crypto') (James M Snell) [#37790]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('signal_wrap') (James M Snell) [#37800]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('v8') (James M Snell) [#37789]
- **(SEMVER-MAJOR)** **lib**: aggregate errors to avoid error swallowing
(Antoine du Hamel) [#37460]
- **(SEMVER-MAJOR)** **lib**: runtime deprecate access to
process.binding('async_wrap') (James M Snell) [#37576]
- **(SEMVER-MAJOR)** **lib**: remove usage of url.parse
(raisinten) [#36853]
- **(SEMVER-MAJOR)** **lib**: add error handling for input stream
(rexagod) [#31603]
- **(SEMVER-MAJOR)** **lib,src**: update cluster to use Parent
(Michael Dawson) [#36478]
- **(SEMVER-MAJOR)** **module**: runtime deprecate subpath folder
mappings (Antoine du Hamel) [#37215]
- **(SEMVER-MAJOR)** **module**: runtime deprecate "main" index and
extension lookups (Antoine du Hamel) [#37206]
- **(SEMVER-MAJOR)** **module**: runtime deprecate invalid package.json
main entries (Antoine du Hamel) [#37204]
- **(SEMVER-MAJOR)** **module**: remove module.createRequireFromPath
(Antoine du Hamel) [#37201]
- **(SEMVER-MAJOR)** **module**: only set cache when finding module
succeeds (Yongsheng Zhang) [#36642]
- **(SEMVER-MAJOR)** **perf_hooks**: make performance a global (James M
Snell) [#37970]
- **(SEMVER-MAJOR)** **perf_hooks**: complete overhaul of the
implementation (James M Snell) [#37136]
- **(SEMVER-MAJOR)** **process**: disallow adding options to
process.allowedNodeEnvironmentFlags (Antoine du Hamel)
[#36660]
- **(SEMVER-MAJOR)** **process**: runtime deprecate changing
process.config (James M Snell) [#36902]
- **(SEMVER-MAJOR)** **readline**: cursorTo throw error on NaN
(Zijian Liu) [#36379]
- **(SEMVER-MAJOR)** **src**: mark internally exported functions as
explicitly internal (Tyler Ang-Wanek) [#37000]
- **(SEMVER-MAJOR)** **src**: inline AsyncCleanupHookHandle in headers
(Tyler Ang-Wanek) [#37000]
- **(SEMVER-MAJOR)** **src**: clean up embedder API (Anna Henningsen)
[#35897]
- **(SEMVER-MAJOR)** **worker**: send correct error status for worker
init (Yash Ladha) [#36242]
PR-URL: #37678
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

buildIssues and PRs related to build files or the CI.needs-ciPRs that need a full CI run.semver-majorPRs that contain breaking changes and should be released in the next major version.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants

@targos@nodejs-github-bot@richardlau@gengjiawen@jasnell@Trott@cclauss@AshCripps