-
Notifications
You must be signed in to change notification settings - Fork 29.6k
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
process: runtime deprecate changing process.config #36902
Conversation
The fact that `process.config` is mutable has long made it unreliable when it really should just work. Start the process of deprecating the ability to change it. Fixes: nodejs#7803 Signed-off-by: James M Snell <jasnell@gmail.com>
Do we have evidence that what people do is replacing the entire object? Intuitively I would say that it's more likely they change individual properties on it. |
There were examples that I saw long ago (2015/16) timeframe that changed the whole object but I haven't seen it in a very long time and haven't been able to dig any up recently. I've never seen an application/module that changes individual properties on it. |
I found https://github.com/BitGo/key-recovery-service-v2 which replaces the object. How about we also warn if any of the original properties are changed? |
I'd just be worried about the performance cost on start up going through those objects. I guess we could wrap it in a proxy object tho. |
That's what I had in mind |
The documentation at https://github.com/nodejs/node/blob/master/doc/api/process.md#processconfig, especially the last sentence, should be updated to mention the deprecation. It would also be nice to have an entry in the YAML section. |
Ok, I'll update this to wrap the entire config object in a Proxy that emits a warning only once if any of the properties are changed. That will include if any new properties are added. |
@targos .. updated! |
Co-authored-by: Antoine du Hamel <duhamelantoine1995@gmail.com>
/cc @nodejs/tsc ... this needs TSC review |
Landed in 96f3977 |
The fact that `process.config` is mutable has long made it unreliable when it really should just work. Start the process of deprecating the ability to change it. Fixes: #7803 Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: #36902 Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>
It is deprecated and will emit a warning in Node.js 16. Refs: nodejs/node#36902
PR-URL: #2322 Refs: nodejs/node#36902 Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Rod Vagg <rod@vagg.org>
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
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
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
* gyp: update gyp to 0.2.1 PR-URL: nodejs/node-gyp#2092 Reviewed-By: Rod Vagg <rod@vagg.org> * deps: replace mkdirp with {recursive} mkdir only supported on Node.js 10+ Closes: #2084 PR-URL: nodejs/node-gyp#2123 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> * doc: update acid test and introduce curl|bash test script PR-URL: nodejs/node-gyp#2105 Reviewed-By: Rod Vagg <rod@vagg.org> * doc: update catalina xcode clt download link PR-URL: nodejs/node-gyp#2133 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Christian Clauss <cclauss@me.com> * v7.0.0: bump version and update changelog PR-URL: nodejs/node-gyp#2124 * deps: increase "engines" to "node" : ">= 10.12.0" Makes npm warn users if they are using an unsupported Node version. Refs: nodejs/node-gyp#2123 PR-URL: nodejs/node-gyp#2153 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Rod Vagg <rod@vagg.org> * doc: silence curl for macOS Catalina acid test PR-URL: nodejs/node-gyp#2150 Reviewed-By: Rod Vagg <rod@vagg.org> * docs: note that node-gyp@7 should solve Catalina CLT issues PR-URL: nodejs/node-gyp#2156 Reviewed-By: Christian Clauss <cclauss@me.com> * build: support apple silicon (arm64 darwin) builds Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> PR-URL: nodejs/node-gyp#2165 * gyp: update gyp to 0.4.0 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> PR-URL: nodejs/node-gyp#2165 * build: add update-gyp script Co-authored-by: Christian Clauss <cclauss@me.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Christian Clauss <cclauss@me.com> PR-URL: nodejs/node-gyp#2167 * v7.1.0: bump version and update changelog * doc: drop the --production flag for installing windows-build-tools This isn't needed, and was probably copy-pasted from windows-build-tools' README.md, which has since been changed to drop the `--production` flag from the install instructions. PR-URL: nodejs/node-gyp#2206 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Rod Vagg <rod@vagg.org> * ci: switch to GitHub Actions Co-authored-by: Christian Clauss <cclauss@me.com> Co-authored-by: Matias Lopez <imatlopez@gmail.com> PR-URL: nodejs/node-gyp#2210 Closes: #2127 Closes: #2209 * doc: replace status badges with new Actions badge PR-URL: nodejs/node-gyp#2218 Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Matias Lopez <imatlopez@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> * test: GitHub Actions: Test on Python 3.9 From python: [3.6, 3.7, 3.8] --> python: [3.6, 3.8, 3.9] because if things work on Python 3.6 and 3.8 then they should work on 3.7. https://www.python.org/downloads/release/python-390/ PR-URL: nodejs/node-gyp#2230 Reviewed-By: Shelley Vohr <shelley.vohr@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> * lib: better log message when ps fails PR-URL: nodejs/node-gyp#2229 Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com> Reviewed-By: Rod Vagg <rod@vagg.org> * gyp: update gyp to 0.6.1 Closes: nodejs/node-gyp#2236 PR-URL: nodejs/node-gyp#2238 Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Myles Borins <myles.borins@gmail.com> * deps: update deps to match npm@7 PR-URL: nodejs/node-gyp#2240 Reviewed-By: Richard Lau <riclau@uk.ibm.com> * v7.1.1: bump version and update changelog PR-URL: nodejs/node-gyp#2239 Reviewed-By: Christian Clauss <cclauss@me.com> * doc: add cmd to reset `xcode-select` to initial state PR-URL: nodejs/node-gyp#2235 Reviewed-By: Christian Clauss <cclauss@me.com> * gyp: update gyp to 0.6.2 Refs: https://github.com/nodejs/gyp-next/releases/tag/v0.6.2 PR-URL: nodejs/node-gyp#2241 Reviewed-By: Rod Vagg <rod@vagg.org> * v7.1.1: bump version and update changelog PR-URL: nodejs/node-gyp#2242 * doc: add missing `sudo` to Catalina doc PR-URL: nodejs/node-gyp#2244 Reviewed-By: Rod Vagg <rod@vagg.org> * ci: migrate deprecated grammar (#2285) PR-URL: nodejs/node-gyp#2285 Reviewed-By: Richard Lau <rlau@redhat.com> * doc: updated README.md to copy easily (#2281) PR-URL: nodejs/node-gyp#2281 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> * gyp: update gyp to v0.7.0 (#2284) PR-URL: nodejs/node-gyp#2284 Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Christian Clauss <cclauss@me.com> * doc: update macOS_Catalina.md (#2293) PR-URL: nodejs/node-gyp#2293 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> * gyp: update gyp to v0.8.0 (#2318) PR-URL: nodejs/node-gyp#2318 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> * lib: avoid changing process.config (#2322) PR-URL: nodejs/node-gyp#2322 Refs: nodejs/node#36902 Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Rod Vagg <rod@vagg.org> * gyp: remove support for Python 2 (#2300) PR-URL: nodejs/node-gyp#2300 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> * lib: migrate requests to fetch (#2220) PR-URL: nodejs/node-gyp#2220 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> * lib: drop Python 2 support in find-python.js (#2333) Co-authored-by: Christian Clauss <cclauss@me.com> PR-URL: nodejs/node-gyp#2333 Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> * ci: update actions/setup-node to v2 (#2302) PR-URL: nodejs/node-gyp#2302 Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> * doc: add downloads badge (#2352) PR-URL: nodejs/node-gyp#2352 Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Richard Lau <rlau@redhat.com> * deps: sync mutual dependencies with npm Sync with npm 7.7.0 PR-URL: nodejs/node-gyp#2348 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> * gyp: Improve our flake8 linting tests PR-URL: nodejs/node-gyp#2356 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> * gyp: update gyp to v0.8.1 (#2355) PR-URL: nodejs/node-gyp#2355 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Christian Clauss <cclauss@me.com> * v8.0.0: bump version and update changelog * doc: fix v8.0.0 release date PR-URL: nodejs/node-gyp#2346 * meta: add `release-please-action` for automated releases (#2395) Co-authored-by: gengjiawen <technicalcute@gmail.com> * lib: fail gracefully if we can't find the username (#2375) * lib: log as yes/no whether build dir was created (#2370) This bit of logging apparently expected to be given a boolean, but was receiving either a path or undefined based on the result of fs.mkdir. Now it prints either "Yes" or "No", rather than printing either a path or "undefined", respectively. * doc: Update README.md Visual Studio Community page polski to auto (#2371) changed URL of Visual Studio Community from a default polski URL to the one without the lenguage code * doc: remove redundant version info (#2403) * feat(gyp): update gyp to v0.9.1 (#2402) * chore: release 8.1.0 (#2418) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * lib: deep-copy process.config during configure (#2368) * fix: change default gyp update message (#2420) * fix: add error arg back into catch block for older Node.js users * chore: fix typos discovered by codespell (#2442) * Initial Commit * doc(wiki): Created "binding.gyp" files out in the wild (markdown) * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): fixed node-serialport link * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): add bcrypt * doc(wiki): change bcrypt url to binding.gyp file * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): add one more example * doc(wiki): Add a link to the node-midi binding.gyp file. * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): Adds node-inotify and v8-profiler * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): Adds node-fann * doc(wiki): Add node-canvas * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): Created Linking to OpenSSL (markdown) * doc(wiki): Updated Home (markdown) * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): Updated Linking to OpenSSL (markdown) * doc(wiki): added levelup * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): Created Updating npm's bundled node gyp (markdown) * doc(wiki): Updated Updating npm's bundled node gyp (markdown) * doc(wiki): Updated Updating npm's bundled node gyp (markdown) * doc(wiki): Updated Updating npm's bundled node gyp (markdown) * doc(wiki): Updated Updating npm's bundled node gyp (markdown) * doc(wiki): Created Visual Studio 2010 Setup (markdown) * doc(wiki): Updated Home (markdown) * doc(wiki): Created Common issues (markdown) * doc(wiki): Updated Home (markdown) * doc(wiki): Add helpful information * doc(wiki): Created Error: "pre" versions of node cannot be installed (markdown) * doc(wiki): Updated Error: "pre" versions of node cannot be installed (markdown) * doc(wiki): Updated Home (markdown) * doc(wiki): fix link to gyp file used to build libsqlite3 * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): Bumping Python version from 2.3 to 2.7 as per the node-gyp readme * doc(wiki): Add node-openvg-canvas and node-openvg. * doc(wiki): Updated Home (markdown) * doc(wiki): Adding link to node-cryptopp's gyp file * doc(wiki): Updated Linking to OpenSSL (markdown) * doc(wiki): add topcube, node-osmium, and node-osrm * doc(wiki): Created use of undeclared identifier 'TypedArray' (markdown) * doc(wiki): Created Visual studio 2012 setup (markdown) * doc(wiki): Destroyed Visual studio 2012 setup (markdown) * doc(wiki): Correcting the link to node-osmium * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): Fix link to node-zipfile * doc(wiki): Explicit link to Visual C++ 2010 Express * doc(wiki): Added tip about resolving frustrating LNK1181 error * doc(wiki): Updated node-levelup to node-leveldown (broken links) * doc(wiki): Added details for properly fixing * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): Added nk-mysql (nodamysql) * doc(wiki): Added nk-xrm-installer .gyp references, including .py scripts for providing complete reference to examples of fetching source via http, extracting, and moving files (as opposed to copying) * doc(wiki): Note: VS2010 seems to be no longer available! VS2013 or nothing! * doc(wiki): node-sass in the wild * doc(wiki): Clarification + direct link to VS2010 * doc(wiki): Updated Updating npm's bundled node gyp (markdown) * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): if ouns that the -h did not help. I founs on github that there was support for visual studio 2015, while i couldn't install node-red beacuse it kept telling me the key 2015 was missing. looking in he gyp python code i found the local file was bot up t dat with the github repo. updating took several efforts before i tried to drop the -g option. * doc(wiki): sorry, forgot to mention a specific windows version. * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): Added Ghostscript4JS * doc(wiki): I highly missing it in common issue as every windows biggner face that issue * doc(wiki): ADDED: Node.js binding to OpenCV * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): Adding the sharp library to the list * doc(wiki): node-srs was a 404 * doc(wiki): C++ build tools version upgraded * doc(wiki): Destroyed Visual Studio 2010 Setup (markdown) * doc(wiki): Updated Home (markdown) * doc(wiki): Lower case L * doc(wiki): Updated "binding.gyp" files out in the wild (markdown) * doc(wiki): Make changes discussed in nodejs/node-gyp#2416 * doc(wiki): Drop in favor of * doc(wiki): Different commands for Windows npm v6 vs. v7 * doc(wiki): Improve Unix instructions * doc(wiki): Updated Updating npm's bundled node gyp (markdown) * doc(wiki): If permissions error, please try and then the command. * doc(wiki): move wiki docs into doc/ * doc(wiki): link to docs/ from README * doc(wiki): safer doc names, remove unnecessary TypedArray doc * ci: GitHub Actions Test on node: [12.x, 14.x, 16.x] (#2439) * Add title to node-gyp version document (#2452) * Add title to node-gyp version document * Update Updating-npm-bundled-node-gyp.md * fix: doc how to update node-gyp independently from npm * fix: missing spaces * ISSUE_TEMPLATE.md: Instructions for old versions (#2470) * ISSUE_TEMPLATE.md: Instructions for old versions Also, add a caution about `node sass` being deprecated. * Update .github/ISSUE_TEMPLATE.md Co-authored-by: Rod Vagg <rod@vagg.org> Co-authored-by: Rod Vagg <rod@vagg.org> * chore(deps): bump tar from 6.1.0 to 6.1.2 (#2474) Addresses GHSA-3jfq-g458-7qm9 and GHSA-r628-mhmh-qjhw * doc: correct link to "binding.gyp files out in the wild" (#2483) correct link to "binding.gyp files out in the wild" * feat(gyp): update gyp to v0.9.6 (#2481) * chore: release 8.2.0 * chore: refactor the creation of config.gypi file * test: Python 3.10 was release on Oct. 4th (#2504) * chore(deps): bump make-fetch-happen from 8.0.14 to 9.1.0 The breaking change in this module was a cache parameter that `node-gyp` is not using, so this module is not affected. * feat(gyp): update gyp to v0.10.0 (#2521) * chore: release 8.3.0 * feat: support vs2022 (#2533) * feat: build with config.gypi from node headers * chore: release 8.4.0 * docs: fix typo in powershell node-gyp update * deps: npmlog@6.0.0 * fix: windows command missing space (#2553) * chore: release 8.4.1 * chore: add minimal SECURITY.md (#2560) * doc: Rename and update Common-issues.md --> docs/README.md (#2567) Update the common problems to track with current issues on this repo and shorten the URL to just https://github.com/nodejs/node-gyp/tree/master/docs * docs: title match content (#2574) * docs: Add notes/disclaimers for upgrading the copy of node-gyp that npm uses (#2585) * docs: rephrase explanation of which node-gyp is used by npm (#2587) * doc: Update Python versions (#2571) * Add Python 3.10 * Drop Python 3.6 which [EOLs on 23 Dec. 2021](https://devguide.python.org/#status-of-python-branches) * macOS: clarify `Xcode Command Line Tools` standalone vs. from full Xcode * Window: Use the same URL as https://github.com/nodejs/node/blob/master/BUILDING.md#windows * deps!: increase "engines" to "node" : "^12.22 || ^14.13 || >=16" (#2601) Makes npm warn users if they are using an unsupported Node version. * deps: make-fetch-happen@10.0.1 The breaking change was dropping node10 support, which node-gyp has already done. * fix: update make-fetch-happen to a minimum of 10.0.3 * added node-heapdump binding.gyp * fix: _ in npm_config_ env variables * lib: add lib.target as path for searching libnode on z/OS * chore: release 9.0.0 * test: Upgrade GitHub Actions (#2623) * doc: update docs/README.md with latest version number * fix: typo on readme * fix: new ca & server certs, bundle in .js file and unpack for testing bundling in certs.js rather than including the raw files should avoid some false positives that low-quality security scanners keep on complaining about. * fix: extend tap timeout length to allow for slow CI * Add Python symlink to path (for non-Windows OSes only) (#2362) * lib: create a Python symlink and add it to PATH Helps to ensure a version of Python validated by lib/find-python.js is used to run various Python scripts generated by gyp. Known to affect gyp-mac-tool, probably affects gyp-flock-tool as well. These Python scripts (such as `gyp-mac-tool`) are invoked directly, via the generated Makefile, so their shebang lines determine which Python binary is used to run them. The shebang lines of these scripts are all `#!/usr/bin/env python3`, so the first `python3` on the user's PATH will be used. By adding a symlink to the Python binary validated by find-python.js, and putting this symlink first on the PATH, we can ensure we use a compatible version of Python to run these scripts. (Only on Unix/Unix-like OSes. Symlinks are tricky on Windows, and Python isn't used at build-time anyhow on Windows, so this intervention isn't useful or necessary on Windows. A similar technique for Windows, no symlinks required, would be to make batch scripts which execute the target binary, much like what Node does for its bundled copy of npm on Windows.) * test: update mocked graceful-fs for configure test Add missing functions "unlink()" and "symlink()" to mocked module. * lib: log any errors when creating Python symlink Warn users about errors, but continue on in case the user does happen to have new enough Python on their PATH. (The symlinks are only meant to fix an issue in a corner case, where the user told `node-gyp` where new enough Python is, but it's not the first `python3` on their PATH. We should not introduce a new potential failure mode to all users when fixing this bug. So no hard errors during the symlink process.) * lib: improve error formatting for Python symlink Logging the entire error object shows the stack twice, and all the other information is contained in the stack. It also messes with the order of what is logged. Rather than logging a bunch of redundant information in a messy way, we can log only the stack. Logging it in a separate log.warn() also gets rid of an extra space character at the beginning of the line. * lib: restore err.errno to logs for symlink errors This info (err.errno) is the only piece of information in the error object that is not redundant to err.stack. * lib: use log.verbose, not log.warn These messages aren't important enough to be `log.warn`s. Log as verbose only; they will also appear in full error output. * Clarify wording to redirect to macOS_Catalina.md (#2588) * build: update due to rename of primary branch * Migrate macOS acid test from master to main (#2686) Follow-on to #2495 * feat: Update function getSDK() to support Windows 11 SDK (#2565) * test: Upgrade GitHub Actions (#2701) * test: Upgrade GitHub Actions * node: 18x --> 18.x * test: Try msvs-version: [2016, 2019, 2022] (#2700) * test: Try msvs-version: [2016, 2019, 2022] * main, not master * Don't npm audit fix --force * fix: re-label (#2689) * chore: release 9.1.0 * lib: enable support for zoslib on z/OS (#2600) Check if zos-base.h is in the directory identified by environment variable ZOSLIB_INCLUDES if set; otherwise search for it from a set of candidates under nodeRootDir. Then pass it as -Dzoslib_include_dir=<path-found> to gyp_main.py for use in common.gypi to set 'includes_dir' when compiling addons. Co-authored-by: Gaby Baghdadi <baghdadi@ca.ibm.com> Co-authored-by: Gaby Baghdadi <baghdadi@ca.ibm.com> * chore: update dependency - nopt@6.0.0 (#2707) No functional changes, just dropping old node versions from engines, linting, and fixing CI. * fix: node.js debugger adds stderr (but exit code is 0) -> shouldn't throw (#2719) * fix: node.js debugger adds stderr (but exit code is 0) -> shouldn't throw * input.py: subprocess.Popen() -> subprocess.run() * feat(gyp): update gyp to v0.13.0 * feat: Add proper support for IBM i Python 3.9 on IBM i now properly returns "os400" for sys.platform instead of claiming to be AIX as it did previously. While the IBM i PASE environment is compatible with AIX, it is a subset and has numerous differences which makes it beneficial to distinguish, however this means that it now needs explicit support here. * Adding tarfile member sanitization to extractall() (#2741) Co-authored-by: TrellixVulnTeam <kasimir.schulz@trellix.com> * chore: release 9.2.0 (#2735) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat: support IBM Open XL C/C++ on z/OS (#2743) * feat: remove support for VS2015 in Node.js >=19 (#2746) * feat(gyp): update gyp to v0.14.0 (#2749) * chore: release 9.3.0 * Add Python 3.11 to the testing https://docs.python.org/3/whatsnew/3.11.html * ci: update python test matrix (#2774) * ci: drop python 3.6 from test matrix * Update .github/workflows/tests.yml Co-authored-by: Christian Clauss <cclauss@me.com> Co-authored-by: Christian Clauss <cclauss@me.com> * fix: increase node 12 support to ^12.13 (#2771) * chore: release 9.3.1 * feat: Upgrade Python linting from flake8 to ruff (#2815) [Ruff](https://beta.ruff.rs/) supports [over 500 lint rules](https://beta.ruff.rs/docs/rules) including bandit, isort, pylint, pyupgrade, and flake8 plus its plugins and is written in Rust for speed. This GitHub Action will provide contributors with intuitive GitHub Annotations. ![image](https://user-images.githubusercontent.com/3709715/223758136-afc386d2-70aa-4eff-953a-2c2d82ceea23.png) The `Required` in the checks below should be: 1. Removed from `flake8-annotation` and added to `ruff-annotation` which replaces it. 2. Removed from `isort` and added to `ruff` which replaces it. * Improved advise on repacing node-sass with sass (#2758) * Improved advise on repacing node-sass with sass * Update README.md * chore: get update-gyp.py to work with Python >= v3.5 (#2826) * chore: get update-gyp.py to work with Python v3.9 * Ruff ignore rule PLC1901 --------- Co-authored-by: Christian Clauss <cclauss@me.com> * doc: Update README.md (#2822) Co-authored-by: Christian Clauss <cclauss@me.com> * update make-fetch-happen to 11.0.3 (#2796) http-cache-semantics 4.1.0 is vulnerable https://www.cve.org/CVERecord?id=CVE-2022-25881 * docs: docs/README.md add advise about deprecated node-sass (#2828) * feat: add support for native windows arm64 build tools Visual Studio 2022 17.4 adds a native C++ compiler for Windows on ARM. This allows arm64 devices to leverage native build tools, leading to a 35% (or more) speed increase. https://devblogs.microsoft.com/visualstudio/arm64-visual-studio-is-officially-here/ Signed-off-by: Dennis Ameling <dennis@dennisameling.com> * fix: extract tarball to temp directory on Windows (#2846) * fix: check for errors while extracting downloaded tarball Signed-off-by: David Sanders <dsanders11@ucsbalum.com> * test: parallel installs Signed-off-by: David Sanders <dsanders11@ucsbalum.com> * fix: extract tarball to temp directory on Windows Signed-off-by: David Sanders <dsanders11@ucsbalum.com> --------- Signed-off-by: David Sanders <dsanders11@ucsbalum.com> * Migration from tap to mocha (#2851) * migrate from tap to mocha After make-fetch-happen update GitHub Actions started failing. Migrating from tap to mocha testing framework for GitHub Action stability. * write custom test reporter for more verbose output Implemented a simple custom mocha test reporter to replace the default one. Made test report more developer friendly. * fix: log statement is for devDir not nodedir (#2840) Signed-off-by: David Sanders <dsanders11@ucsbalum.com> * win,install: only download target_arch node.lib (#2857) Instead of downloading node.lib for all architectures, just download the one that will be needed. Install.js changed to enable downloading just node.lib for node versions that already have tarball downloaded and extracted. Not fetching lib now fails the installation. Increased installVersion because of the changes. Refs: nodejs/node-gyp#2847 * test: remove deprecated Node.js and Python (#2868) * test: remove deprecated node.js and python Removed Node.js v14.x and Python v3.7. Also added Node.js v20.x. * Update .github/workflows/tests.yml Co-authored-by: Christian Clauss <cclauss@me.com> --------- Co-authored-by: Christian Clauss <cclauss@me.com> * chore: release 9.4.0 * Sync deps and engines with npm (#2770) * feat!: update `engines.node` to `^14.17.0 || ^16.13.0 || >=18.0.0` * deps: nopt@^7.0.0 * feat: replace npmlog with proc-log * deps: standard@17.0.0 and fix linting errors * deps: which@3.0.0 - this also promiisifies the build command * deps: glob@8.0.3 * feat: drop rimraf dependency * fix: use fs/promises in favor of fs.promises * lib: find python checks order changed on windows (#2872) These changes favor py launcher over other checks excluding command line or npm configuration and environment variable checks. Also, updated supported python versions list. Fixes: nodejs/node-gyp#2871 * Fix reading msvs version on Windows (#2644) * fix: fix reading msvs version on windows * docs: Update windows installation instructions in README.md (#2882) * Update windows installation instructions in README.md * Fix Python lint error by using an f-string (#2886) * test: increase mocha timeout (#2887) * fix: create Python symlink only during builds, and clean it up after (#2721) * fix: create Python symlink only during builds, and clean it up after Previously in b9ddcd5 this was created during configuration, and the symlink persisted indefinitely. This causes problems with many tools that do not expect a codebase to include symlinks to external absolute paths. This PR largely reverts that commit, and instead writes the path to link to into the config, and then creates the symlink only temporarily during the build process, always deleting it afterwards. * assert install_path == self.output, f"{install_path} != {self.output}" --------- Co-authored-by: Christian Clauss <cclauss@me.com> * docs: README.md Do not hardcode the supported versions of Python (#2880) * Fix incorrect Xcode casing in README (#2896) * test: update expired certs (#2908) * doc: Add note about Python symlinks (PR 2362) to CHANGELOG.md for 9.1.0 (#2783) The PR for this change was merged without a prefixed name, such as "lib:" or "fix:". That means release-please didn't include it in the changelog for v9.1.0. This change did end up affecting users, though. (See issue 2713 and PR 2721). Therefore, I believe it should be noted in the CHANGELOG.md, so users can better understand the behavior they are seeing. * Python lint: ruff --format is now --output-format Fixes the failing `ruff` linting in GitHub Actions. * chore: GitHub Workflows security hardening (#2740) * build: harden tests.yml permissions Signed-off-by: Alex <aleksandrosansan@gmail.com> * build: harden release-please.yml permissions Signed-off-by: Alex <aleksandrosansan@gmail.com> * build: harden visual-studio.yml permissions Signed-off-by: Alex <aleksandrosansan@gmail.com> * Update release-please.yml --------- Signed-off-by: Alex <aleksandrosansan@gmail.com> * chore: empty commit to add changelog entries from #2770 feat!: update engines.node to ^14.17.0 || ^16.13.0 || >=18.0.0 deps: nopt@^7.0.0 feat: replace npmlog with proc-log deps: standard@17.0.0 and fix linting errors deps: which@3.0.0 fix: promisify build command deps: glob@8.0.3 feat: drop rimraf dependency fix: use fs/promises in favor of fs.promises * docs: update applicable GitHub links from master to main (#2843) Signed-off-by: David Sanders <dsanders11@ucsbalum.com> * feat(gyp): update gyp to v0.16.1 (#2923) * feat(gyp): update gyp to v0.15.1 * Add Python 3.12 to tests * Try to fix CI * Try specifying msvs-version * Modify the visual-studio matrix * Fix pythonLocation var * Fix Python tests * Get path * polish * feat(gyp): update gyp to v0.16.0 * feat(gyp): update gyp to v0.16.1 * CI: Don't install Python 'packaging' module (vendored in 'gyp-next' now) * Apply suggestions from code review * Upgrade to actions/checkout@v4 --------- Co-authored-by: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Co-authored-by: Christian Clauss <cclauss@me.com> * chore: add check engines script to CI (#2922) * deps: glob@10.3.10 (#2926) * deps: make-fetch-happen@13.0.0 (#2927) * deps: which@4.0.0 (#2928) * feat!: drop node 14 support (#2929) BREAKING CHANGE: `node-gyp` now supports node `^16.14.0 || >=18.0.0` * feat: convert all internal functions to async/await BREAKING CHANGE: All internal functions have been coverted to return promises and no longer accept callbacks. This is not a breaking change for users but may be breaking to consumers of `node-gyp` if you are requiring internal functions directly. * feat: convert internal classes from util.inherits to classes BREAKING CHANGE: the `Gyp` class exported is now created using ECMAScript classes and therefore might have small differences to classes that were previously created with `util.inherits`. * chore: misc testing fixes (#2930) * chore: misc test fixes * Sort test runs by os first * Use cross-env for test env var * Try sorting matrix params * Make FAST_TEST the default and rename to FULL_TEST * Separate helper functions to not need to export test obj in files * feat!: use .npmignore file to limit which files are published (#2921) * feat!: use package.json files to limit which files are published Fixes: #2372 * Use npmignore instead of package.json#files * Add update-gyp.py to npmignore * Add install to pack test * Use output var for pack dir * Move existing .gitignore entries to .npmignore * Sort git and npm ignores * Update and cleanup workflows * chore: run tests after release please PR * chore: release 10.0.0 (#2920) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore: add parallel test logging * chore: lint fixes * chore: use platform specific timeouts in tests * fix: use local `util` for `findAccessibleSync()` The `findAccessibleSync()` function is in the local `util` module instead of Node.js' builtin `util` module. * chore: release 10.0.1 * Fix wrong changes that were on repo before merge * fix: output path generation for iOS --------- Signed-off-by: Dennis Ameling <dennis@dennisameling.com> Signed-off-by: David Sanders <dsanders11@ucsbalum.com> Signed-off-by: Alex <aleksandrosansan@gmail.com> Co-authored-by: Ujjwal Sharma <ryzokuken@disroot.org> Co-authored-by: Rod Vagg <rod@vagg.org> Co-authored-by: Dario Vladovic <d.vladimyr@gmail.com> Co-authored-by: DeeDeeG <DeeDeeG@users.noreply.github.com> Co-authored-by: Chia Wei Ong <ongchiawei@gmail.com> Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com> Co-authored-by: Christian Clauss <cclauss@me.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> Co-authored-by: Matias Lopez <imatlopez@gmail.com> Co-authored-by: Martin Midtgaard <martin.midtgaard@gmail.com> Co-authored-by: Valera Rozuvan <valera.rozuvan@gmail.com> Co-authored-by: Myles Borins <mylesborins@github.com> Co-authored-by: Karl Horky <karl.horky@gmail.com> Co-authored-by: Jiawen Geng <3759816+gengjiawen@users.noreply.github.com> Co-authored-by: மனோஜ்குமார் பழனிச்சாமி <smartmanoj42857@gmail.com> Co-authored-by: iMrLopez <8272737+iMrLopez@users.noreply.github.com> Co-authored-by: Michaël Zasso <targos@protonmail.com> Co-authored-by: Matias Lopez <imatlopez@users.noreply.github.com> Co-authored-by: Sora Morimoto <sora@morimoto.io> Co-authored-by: gengjiawen <technicalcute@gmail.com> Co-authored-by: Gustavo de León <alfonso.gus.deleon@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Livia Rett <30511433+liviarett@users.noreply.github.com> Co-authored-by: TooTallNate <nathan@tootallnate.net> Co-authored-by: milani <mrtz.milani@googlemail.com> Co-authored-by: Psychless <jbeal24@gmail.com> Co-authored-by: mixu <mikito.takada@gmail.com> Co-authored-by: shtylman <shtylman@gmail.com> Co-authored-by: lloyd <lloyd@hilaiel.com> Co-authored-by: bolgovr <bolgovr@gmail.com> Co-authored-by: justinlatimer <justinlatimer@gmail.com> Co-authored-by: kkaefer <github@kkaefer.com> Co-authored-by: c4milo <camilo.aguilar@gmail.com> Co-authored-by: lperrin <laurent.perrin@gmail.com> Co-authored-by: oransel <oransel@yahoo.com> Co-authored-by: voodootikigod <chris@iterativedesigns.com> Co-authored-by: ehansin <ericc72@hotmail.com> Co-authored-by: xverges <xverges@gmail.com> Co-authored-by: Niggler <nirk.niggler@gmail.com> Co-authored-by: felquis <frgformenton@gmail.com> Co-authored-by: Dane Springmeyer <dane@dbsgeo.com> Co-authored-by: Alex Treppass <alextreppass@gmail.com> Co-authored-by: Luis Reis <luis.m.reis@gmail.com> Co-authored-by: lilo003 <lilo@c37.co> Co-authored-by: Syrian watermelon <AhmadBenmrad@users.noreply.github.com> Co-authored-by: Evan Su <hexacyanide@gmail.com> Co-authored-by: fov42550564 <42550564@qq.com> Co-authored-by: tcbeutler <tcbeutler@gmail.com> Co-authored-by: raztus <raztus@gmail.com> Co-authored-by: vweevers <mail@vincentweevers.nl> Co-authored-by: Andreas Brekken <a@abrkn.com> Co-authored-by: ralphtheninja <ralphtheninja@riseup.net> Co-authored-by: Zeke Sonxx <zeke@zekesonxx.com> Co-authored-by: Дмитрий Цветцих <dmitrycvet@gmail.com> Co-authored-by: Richard Winters <rik@mmogp.com> Co-authored-by: Mark Jeghers <jeghers@users.noreply.github.com> Co-authored-by: Marcin Cieślak <saper@saper.info> Co-authored-by: Dieter De Paepe <dieter.depaepe@gmail.com> Co-authored-by: Operations Research Engineering Software+ <alex@oresoftware.com> Co-authored-by: Flandre Scarlet <i@2333.moe> Co-authored-by: peter--bolier--zero <bolier@xs4all.nl> Co-authored-by: Nick Desaulniers <nickdesaulniers@users.noreply.github.com> Co-authored-by: Nicola Del Gobbo <nicoladelgobbo@gmail.com> Co-authored-by: Abdul Hameed <raza2022@gmail.com> Co-authored-by: xdf <xudafeng@126.com> Co-authored-by: Matt Hirsch <mhirsch@media.mit.edu> Co-authored-by: João Reis <reis@janeasystems.com> Co-authored-by: Bert Verhelst <verhelstbert@gmail.com> Co-authored-by: Mayank <9084735+mayank99@users.noreply.github.com> Co-authored-by: nineninesevenfour <75562299+nineninesevenfour@users.noreply.github.com> Co-authored-by: Cheng Zhao <zcbenz@gmail.com> Co-authored-by: Gar <gar+gh@danger.computer> Co-authored-by: csett86 <csett86@web.de> Co-authored-by: HeatonZ <905342035@qq.com> Co-authored-by: Rich Trott <rtrott@gmail.com> Co-authored-by: owl from hogvarts <47751812+owl-from-hogvarts@users.noreply.github.com> Co-authored-by: nlf <quitlahok@gmail.com> Co-authored-by: Mohamed-Elzohary <48733136+Mohamed-Elzohary@users.noreply.github.com> Co-authored-by: alexcfyung <alexcfyung@hotmail.com> Co-authored-by: Doni Rubiagatra <doni@zero-one-group.com> Co-authored-by: Nick Wang <nickwang14@gmail.com> Co-authored-by: Michael Dawson <mdawson@devrus.com> Co-authored-by: hubbergit <y.ahi@tms-bonn.de> Co-authored-by: Gaby Baghdadi <baghdadi@ca.ibm.com> Co-authored-by: Mr. Doge <42662615+FuPeiJiang@users.noreply.github.com> Co-authored-by: Kevin Adler <kadler@us.ibm.com> Co-authored-by: TrellixVulnTeam <kasimir.schulz@trellix.com> Co-authored-by: Luke Karrys <luke@lukekarrys.com> Co-authored-by: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Co-authored-by: Maksim Beliaev <beliaev.m.s@gmail.com> Co-authored-by: ravindraP20 <72969399+ravindraP20@users.noreply.github.com> Co-authored-by: Dennis Ameling <dennis@dennisameling.com> Co-authored-by: David Sanders <dsanders11@ucsbalum.com> Co-authored-by: Stefan Stojanovic <StefanStojanovic@users.noreply.github.com> Co-authored-by: James Cook <james@trainerroad.com> Co-authored-by: Rareș <6453351+raress96@users.noreply.github.com> Co-authored-by: Tim Perry <1526883+pimterry@users.noreply.github.com> Co-authored-by: Iulian Onofrei <5748627+revolter@users.noreply.github.com> Co-authored-by: Alex <aleksandrosansan@gmail.com> Co-authored-by: Richard Lau <rlau@redhat.com> Co-authored-by: Denis Bogomolov <denis@manwithbear.com>
The fact that
process.config
is mutable has long made itunreliable when it really should just work. Start the process
of deprecating the ability to change it.
Fixes: #7803
Signed-off-by: James M Snell jasnell@gmail.com