Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v14.8.0 proposal #34704

Merged
merged 79 commits into from
Aug 11, 2020
Merged

v14.8.0 proposal #34704

merged 79 commits into from
Aug 11, 2020

Conversation

codebytere
Copy link
Member

@codebytere codebytere commented Aug 10, 2020

2020-08-11, Version 14.8.0 (Current), @codebytere

Notable Changes

  • [16aa927216] - (SEMVER-MINOR) async_hooks: add AsyncResource.bind utility (James M Snell) #34574
  • [dc49561e8d] - deps: update to uvwasi 0.0.10 (Colin Ihrig) #34623
  • [6cd1c41604] - doc: add Ricky Zhou to collaborators (rickyes) #34676
  • [f0a41b2530] - doc: add release key for Ruy Adorno (Ruy Adorno) #34628
  • [10dd7a0eda] - doc: add DerekNonGeneric to collaborators (Derek Lewis) #34602
  • [62bb2e757f] - (SEMVER-MINOR) module: unflag Top-Level Await (Myles Borins) #34558
  • [8cc9e5eb52] - (SEMVER-MINOR) n-api: support type-tagging objects (Gabriel Schulhof) #28237
  • [e89ec46ba9] - (SEMVER-MINOR) n-api,src: provide asynchronous cleanup hooks (Anna Henningsen) #34572

Commits

  • [650248922b] - async_hooks: avoid GC tracking of AsyncResource in ALS (Gerhard Stoebich) #34653
  • [0a51aa8fdb] - async_hooks: avoid unneeded AsyncResource creation (Gerhard Stoebich) #34616
  • [0af9bee4c3] - async_hooks: improve property descriptors in als.bind (Gerhard Stoebich) #34620
  • [16aa927216] - (SEMVER-MINOR) async_hooks: add AsyncResource.bind utility (James M Snell) #34574
  • [e45c68af27] - async_hooks: don't read resource if ALS is disabled (Gerhard Stoebich) #34617
  • [e9aebc3a8f] - async_hooks: fix id assignment in fast-path promise hook (Andrey Pechkurov) #34548
  • [5aed83c77f] - async_hooks: fix resource stack for deep stacks (Anna Henningsen) #34573
  • [9af62641c6] - async_hooks: execute destroy hooks earlier (Gerhard Stoebich) #34342
  • [14656e1703] - async_hooks: don't reuse resource in HttpAgent when queued (Andrey Pechkurov) #34439
  • [c4457d873f] - benchmark: always throw the same Error instance (Anna Henningsen) #34523
  • [6a129d0cf5] - build: do not run auto-start-ci on forks (Evan Lucas) #34650
  • [2cd299b217] - build: run CI on release branches (Shelley Vohr) #34649
  • [9ed9ccc5b3] - build: enable build for node-v8 push (gengjiawen) #34634
  • [10f29e7550] - build: increase startCI verbosity and fix job name (Mary Marchini) #34635
  • [befbaf384e] - build: don't run auto-start-ci on push (Mary Marchini) #34588
  • [4af5dbd3bf] - build: fix auto-start-ci script path (Mary Marchini) #34588
  • [70cf3cbdfa] - build: auto start Jenkins CI via PR labels (Mary Marchini) #34089
  • [70e9eceeee] - build: toolchain.gypi and node_gyp.py cleanup (iandrc) #34268
  • [465968c5f8] - console: document the behavior of console.assert() (iandrc) #34501
  • [a7b4318df9] - crypto: add OP flag constants added in OpenSSL v1.1.1 (Mateusz Krawczuk) #33929
  • [dc49561e8d] - deps: update to uvwasi 0.0.10 (Colin Ihrig) #34623
  • [8b1ec43da4] - doc: use _Static method_ instead of _Class Method_ (Rich Trott) #34659
  • [a1b9d7f42e] - doc: tidy some addons.md text (Rich Trott) #34654
  • [b78278b922] - doc: use _Class Method_ in async_hooks.md (Rich Trott) #34626
  • [6cd1c41604] - doc: add Ricky Zhou to collaborators (rickyes) #34676
  • [d8e0deaa7c] - doc: edit process.title note for brevity and clarity (Rich Trott) #34627
  • [dd6bf20e8f] - doc: update fs.watch() availability for IBM i (iandrc) #34611
  • [f260bdd57b] - doc: fix typo in path.md (aetheryx) #34550
  • [f0a41b2530] - doc: add release key for Ruy Adorno (Ruy Adorno) #34628
  • [3f55dcd723] - doc: clarify process.title inconsistencies (Corey Butler) #34557
  • [6cd9ea82f6] - doc: document the connection event for HTTP2 & TLS servers (Tim Perry) #34531
  • [0a9389bb1a] - doc: mention null special-case for napi\_typeof (Renée Kooi) #34577
  • [10dd7a0eda] - doc: add DerekNonGeneric to collaborators (Derek Lewis) #34602
  • [d7eaf3a027] - doc: revise N-API versions matrix text (Rich Trott) #34566
  • [e2bea73b03] - doc: clarify N-API version 1 (Michael Dawson) #34344
  • [be23e23361] - doc: use consistent spelling for "falsy" (Rich Trott) #34545
  • [f393ae9296] - doc: simplify and clarify console.assert() documentation (Rich Trott) #34544
  • [b69ff2ff60] - doc: use consistent capitalization for addons (Rich Trott) #34536
  • [212d17fa06] - doc: add mmarchini pronouns (Mary Marchini) #34586
  • [7a28c3d543] - doc: update mmarchini contact info (Mary Marchini) #34586
  • [c8104f3d10] - doc: update .mailmap for mmarchini (Mary Marchini) #34586
  • [692a735881] - doc: use sentence-case for headers in SECURITY.md (Rich Trott) #34525
  • [44e6c010b4] - esm: fix hook mistypes and links to types (Derek Lewis) #34240
  • [7322e58d11] - http: reset headers timeout on headers complete (Robert Nagy) #34578
  • [36fd3daae6] - http: provide keep-alive timeout response header (Robert Nagy) #34561
  • [d0efaf2fe3] - lib: use non-symbols in isURLInstance check (Shelley Vohr) #34622
  • [335cb0d1d1] - lib: absorb path error cases (Gireesh Punathil) #34519
  • [521e620533] - meta: uncomment all codeowners (Mary Marchini) #34670
  • [650adeca22] - meta: enable http2 team for CODEOWNERS (Rich Trott) #34534
  • [35ef9907aa] - module: handle Top-Level Await non-fulfills better (Anna Henningsen) #34640
  • [62bb2e757f] - (SEMVER-MINOR) module: unflag Top-Level Await (Myles Borins) #34558
  • [fbd411d28a] - n-api: fix use-after-free with napi_remove_async_cleanup_hook (Anna Henningsen) #34662
  • [8cc9e5eb52] - (SEMVER-MINOR) n-api: support type-tagging objects (Gabriel Schulhof) #28237
  • [2703fe498e] - n-api: simplify bigint-from-word creation (Gabriel Schulhof) #34554
  • [e89ec46ba9] - (SEMVER-MINOR) n-api,src: provide asynchronous cleanup hooks (Anna Henningsen) #34572
  • [b1890e0866] - net: don't return the stream object from onStreamRead (Robey Pointer) #34375
  • [35fdfb44a2] - policy: increase tests via permutation matrix (Bradley Meck) #34404
  • [ddd339ff45] - repl: use _Node.js_ in user-facing REPL text (Rich Trott) #34644
  • [276e2980e2] - repl: use _REPL_ in user-facing text (Rich Trott) #34643
  • [465c262ac6] - repl: improve static import error message in repl (Myles Borins) #33588
  • [12cb0fb8a0] - repl: give repl entries unique names (Bradley Meck) #34372
  • [2dbd15a075] - src: fix linter failures (Anna Henningsen) #34582
  • [2761f349ec] - src: spin shutdown loop while immediates are pending (Anna Henningsen) #34662
  • [39ca48c840] - src: fix size underflow in CallbackQueue (Anna Henningsen) #34662
  • [c1abc8d3e5] - src: fix unused namespace member in node_util (Andrey Pechkurov) #34565
  • [e146686972] - test: fix wrong method call (gengjiawen) #34629
  • [ca89c375f7] - test: add debugging for callbacks in test-https-foafssl.js (Rich Trott) #34603
  • [2133b18bee] - test: add debugging for test-https-foafssl.js (Rich Trott) #34603
  • [b9fb0c63b3] - test: convert most N-API tests from C++ to C (Gabriel Schulhof) #34615
  • [54a4c6a39c] - test: replace flaky pummel regression tests (Anna Henningsen) #34530
  • [bd55236788] - test: change Fixes: to Refs: (Rich Trott) #34568
  • [a340587cfd] - test: fix flaky http-parser-timeout-reset (Robert Nagy) #34609
  • [9c442f9786] - test: remove unneeded flag check in test-vm-memleak (Rich Trott) #34528
  • [05100e1eec] - tools: fix C++ import checker argument expansion (Anna Henningsen) #34582
  • [bf6c8aaae3] - tools: update ESLint to 7.6.0 (Colin Ihrig) #34589
  • [0b1616c2f0] - tools: add meta.fixable to fixable lint rules (Colin Ihrig) #34589
  • [f46649bc5b] - util: print External address from inspect (unknown) #34398
  • [2fa24c0ccc] - wasi: add __wasi_fd_filestat_set_times() test (Colin Ihrig) #34623

rosaxxny and others added 28 commits August 4, 2020 11:26
Fixes: #28250

PR-URL: #34398
Backport-PR-URL: #34583
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Gus Caplan <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Add a description and an example of console.assert() call with
no arguments. If called like this, the method should output:
"Assertion failed".

Fixes: #34500
Refs: https://nodejs.org/dist/latest-v14.x/docs/api/console.html#console_console_assert_value_message
Refs: https://console.spec.whatwg.org/#assert

PR-URL: #34501
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Ruben Bridgewater <[email protected]>
Reviewed-By: Anto Aravinth <[email protected]>
Reviewed-By: Zeyu Yang <[email protected]>
Our doc style guide calls for sentence-case in headers.

PR-URL: #34525
Reviewed-By: Ruben Bridgewater <[email protected]>
Reviewed-By: Stewart X Addison <[email protected]>
Removed `linux_use_gold_flag`, `linux_use_bundled_gold` and `linux_use_bundled_binutils` flags from
`tools/v8_gypfiles/toolchain.gypi` and `/tools/gyp_node.py`.

Fixes: #34256

PR-URL: #34268
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #34439
Fixes: #34401
Refs: #27581
Reviewed-By: Vladimir de Turckheim <[email protected]>
Reviewed-By: Gerhard Stöbich <[email protected]>
The `common` module checks that necessary flags are being used, so a
check in the test itself is no longer necessary.

PR-URL: #34528
Reviewed-By: Ruben Bridgewater <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Macro `CHECK_MAYBE_EMPTY_WITH_PREAMBLE()` does the work of checking
the `TryCatch` and returning `napi_pending_exception` so this change
reuses it for `napi_create_bigint_words()`.

Signed-off-by: Gabriel Schulhof <[email protected]>
PR-URL: #34554
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Add an Action that will find every PR with the `request-ci` label and
will start a Jenkins CI for each of these Pull Requests. The scheduler
event is used to circumvent GitHub Actions limitations on Pull Requests
from forks (where secrets are not accessible and the GITHUB_TOKEN is
read-only).

If the Action fails to start a CI, it will add a `request-ci-failed`
label and will leave a comment with the error message from NCU.

Fixes: nodejs/github-bot#234

PR-URL: #34089
Reviewed-By: Christian Clauss <[email protected]>
PR-URL: #34586
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #34586
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #34586
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: James M Snell <[email protected]>
`napi_instanceof()` is insufficient for reliably establishing the data
type to which a pointer stored with `napi_wrap()` or
`napi_create_external()` inside a JavaScript object points. Thus, we
need a way to "mark" an object with a value that, when later retrieved,
can unambiguously tell us whether it is safe to cast the pointer stored
inside it to a certain structure.

Such a check must survive loading/unloading/multiple instances of an
addon, so we use UUIDs chosen *a priori*.

Fixes: #28164
Co-authored-by: Anna Henningsen <[email protected]>
PR-URL: #28237
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Signed-off-by: Gabriel Schulhof <[email protected]>
Sometimes _addon_ is capitalized and sometimes not. Capitalizing it
seems peculiar and hard to justify. Standardize on treating it like
other common nouns.

PR-URL: #34536
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
Reviewed-By: Daijiro Wachi <[email protected]>
PR-URL: #34544
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
We use "falsy" in multiple places in our docs, but only use "false-y" in
one place in url.md. Replace it with "falsy".

PR-URL: #34545
Reviewed-By: Anto Aravinth <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Pranshu Srivastava <[email protected]>
Reviewed-By: Ron Korving <[email protected]>
Reviewed-By: Yuta Hiroto <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
PR-URL: #34588
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
PR-URL: #34588
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Prior to this commit, the custom loader hooks were:
* missing the Node.js API ref docs types
* missing the function signature from their sections
* linking directly to the specification (not customary)
* had an inconsistent non-nullable JSDoc promise return
* had JSDoc object properties that weren't alpha-sorted
* designated set of non-nullable types when single was fine

Notes:
    https://www.typescriptlang.org/play/index.html?strictNullChecks=true&useJavaScript=true#code/PQKhCgAIUgBAHAhgJ0QW0gbwM4BdkCWAdgOYC+k28ApgMYEBmB1yUMCK6WmbkftAeyIATArgJDsALkgBCAILJUATwA8eQqQB8AGl58kyakVwBVAEoAZGbIAUG4iUgAfSAFcR1JkWrCAlHrQkGQUgibUAB64vByoGJgAYh604kIUwl6IbgA2uObU2ALZAG7UMUa4bshE2FgACsgCaATY1KqY7sjZMg6kwVpkbMDgkfACyLiQiNjKRLSQDMmpRJBGhSXU9jT0TCw6kGG4kbj7GQxZufnrpX5YUAeSkx2GxmZWkAC8kEQ52cGfD3CUQA3PdGJBbABZRC4AAWADpUCImrZblpIAAGeEAVluHWAwEgAGUmtRAaJlvD7nwCZAEuNKKTIAzENk-lQ6IxmMhsKcBIy0GTaG48E1INkBCQCPMGAy1kVio4qXwaYT5NkAO6IZS1CpVFaIFYCABGACs6JMBAxIHCybLkPEqt1IOp8I4BsqVXrqncVSqnTIXiYLJZIAB+al+77UDWQENbTm7ZD7INvSx+eGwozWqSRv0+WPxjk7bkZrNeQIqsigviDPjgqEwhFI4Qo26qTE4vGQWnyIgCW3IcliCRET2qyAAdVhxgOrOyjkgAAMzhc8gUFdQl-tbVNkCQ3IKTLVaIbIMayWgBKJdsJ4ZAAJIrOEtSO00+tSBiADktUQwlEPpDQHGch2KVk3DtBk0BhWhYUXMIKVHVlIFGcZcGwcdVmoSofVXHJ12uTZiy5PZfSjeFKMOY5Kz9RCR0kGQAG1KPhaiojYoQkMkfZv2AwcAFp6OWb8AF1aOCPwa2Ce5aQAES8FgbX5AA5a9qHhU1antKY2WZQdKG2UieU9b0Vnwy4Nw2BMSzI9iTkgCzCM3KTwDIIA
    https://closure-compiler.appspot.com/home#code%3D%252F%252F%2520%253D%253DClosureCompiler%253D%253D%250A%252F%252F%2520%2540compilation_level%2520ADVANCED_OPTIMIZATIONS%250A%252F%252F%2520%2540warning_level%2520VERBOSE%250A%252F%252F%2520%2540jscomp_error%2520strictCheckTypes%250A%252F%252F%2520%2540language_out%2520ECMASCRIPT_NEXT%250A%252F%252F%2520%2540checks_only%250A%252F%252F%2520%253D%253D%252FClosureCompiler%253D%253D%250A%250A%252F**%250A%2520*%2520%2540param%2520%257Bstring%257D%2520specifier%250A%2520*%2520%2540param%2520%257B%257B%250A%2520*%2520%2520%2520conditions%253A%2520!Array%253Cstring%253E%252C%250A%2520*%2520%2520%2520parentURL%253A%2520!(string%2520%257C%2520undefined)%252C%250A%2520*%2520%257D%257D%2520context%250A%2520*%2520%2540param%2520%257BFunction%257D%2520defaultResolve%250A%2520*%2520%2540returns%2520%257BPromise%253C%257B%2520url%253A%2520string%2520%257D%253E%257D%250A%2520*%252F%250Aexport%2520async%2520function%2520resolve(specifier%252C%2520context%252C%2520defaultResolve)%2520%257B%250A%2520%2520const%2520%257B%2520parentURL%2520%253D%2520null%2520%257D%2520%253D%2520context%253B%250A%2520%2520if%2520(Math.random()%2520%253E%25200.5)%2520%257B%2520%252F%252F%2520Some%2520condition.%250A%2520%2520%2520%2520%252F%252F%2520For%2520some%2520or%2520all%2520specifiers%252C%2520do%2520some%2520custom%2520logic%2520for%2520resolving.%250A%2520%2520%2520%2520%252F%252F%2520Always%2520return%2520an%2520object%2520of%2520the%2520form%2520%257Burl%253A%2520%253Cstring%253E%257D.%250A%2520%2520%2520%2520return%2520%257B%250A%2520%2520%2520%2520%2520%2520url%253A%2520parentURL%2520%253F%250A%2520%2520%2520%2520%2520%2520%2520%2520new%2520URL(specifier%252C%2520parentURL).href%2520%253A%250A%2520%2520%2520%2520%2520%2520%2520%2520new%2520URL(specifier).href%252C%250A%2520%2520%2520%2520%257D%253B%250A%2520%2520%257D%250A%2520%2520if%2520(Math.random()%2520%253C%25200.5)%2520%257B%2520%252F%252F%2520Another%2520condition.%250A%2520%2520%2520%2520%252F%252F%2520When%2520calling%2520%2560defaultResolve%2560%252C%2520the%2520arguments%2520can%2520be%2520modified.%2520In%2520this%250A%2520%2520%2520%2520%252F%252F%2520case%2520it's%2520adding%2520another%2520value%2520for%2520matching%2520conditional%2520exports.%250A%2520%2520%2520%2520return%2520defaultResolve(specifier%252C%2520%257B%250A%2520%2520%2520%2520%2520%2520...context%252C%250A%2520%2520%2520%2520%2520%2520conditions%253A%2520%255B...context.conditions%252C%2520'another-condition'%255D%252C%250A%2520%2520%2520%2520%257D)%253B%250A%2520%2520%257D%250A%2520%2520%252F%252F%2520Defer%2520to%2520Node.js%2520for%2520all%2520other%2520specifiers.%250A%2520%2520return%2520defaultResolve(specifier%252C%2520context%252C%2520defaultResolve)%253B%250A%257D

PR-URL: #34240
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Guy Bedford <[email protected]>
Stack trace capturing currently accounts for 40 % of the benchmark
running time. Always throwing the same exception object removes
that overhead and lets the benchmark be more focused on what it is
supposed to measure.

Refs: #34512 (comment)

PR-URL: #34523
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Andrey Pechkurov <[email protected]>
Reviewed-By: Ruben Bridgewater <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Gerhard Stöbich <[email protected]>
Absorb low level libuv failure in
the process initialization phase

Fixes: #33759
Refs: #33759 (comment)
PR-URL: #34519
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Zeyu Yang <[email protected]>
Reviewed-By: Harshitha K P <[email protected]>
Refs: nodejs/node-addon-api#760

Clarify which version of 8.x in which N-API version 1
matches the shape in later versions like 10.x

Signed-off-by: Michael Dawson <[email protected]>

PR-URL: #34344
Reviewed-By: Gus Caplan <[email protected]>
Reviewed-By: Gabriel Schulhof <[email protected]>
PR-URL: #34565
Reviewed-By: Zeyu Yang <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: James M Snell <[email protected]>
In http 1.1 persistent connection protocol there is a
timing race where the client sends the request and then
the server kills the connection (due to inactivity)
before receiving the client's request.

By providing a keep-alive header it is possible to provide
the client a hint of when idle timeout would occur and
avoid the race.

Fixes: #34560

PR-URL: #34561
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Zeyu Yang <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
Reviewed-By: Pranshu Srivastava <[email protected]>
Revise text for clarity, brevity, and conformance with our style guide.

PR-URL: #34566
Reviewed-By: Gus Caplan <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: James M Snell <[email protected]>
headers timeout should not occur *after* headers have been
received.

Fixes: #34576

PR-URL: #34578
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Fedor Indutny <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Pranshu Srivastava <[email protected]>
Fixes: #34369

PR-URL: #34602
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
The documentation said `napi_typeof` is similar to the `typeof`
operator, but the `typeof null` detects `'object'` while
`napi_typeof(a_null_value)` detects `napi_null`.

PR-URL: #34577
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Gabriel Schulhof <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: David Carlier <[email protected]>
Use a microtask to call destroy hooks in case there are a lot queued
as immediate may be scheduled late in case of long running
promise chains.

Queuing a mircrotasks in GC context is not allowed therefore an
interrupt is triggered to do this in JS context as fast as possible.

fixes: #34328
refs: #33896

PR-URL: #34342
Fixes: #34328
Refs: #33896
Reviewed-By: Gus Caplan <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: James M Snell <[email protected]>
@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/tsc

@nodejs-github-bot nodejs-github-bot added the doc Issues and PRs related to the documentations. label Aug 10, 2020
addaleax and others added 11 commits August 10, 2020 21:21
Sometimes addons need to perform cleanup actions, for example
closing libuv handles or waiting for requests to finish, that
cannot be performed synchronously.

Add C++ API and N-API functions that allow providing such
asynchronous cleanup hooks.

Fixes: #34567

PR-URL: #34572
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Gabriel Schulhof <[email protected]>
Manually destroy the AsyncResource created by AsyncLocalStore.run() to
avoid unneeded GC tracking in case a destroy hooks is present.

PR-URL: #34653
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Fixes: #34657
Refs: #34572

PR-URL: #34662
Reviewed-By: Gabriel Schulhof <[email protected]>
Reviewed-By: James M Snell <[email protected]>
We use _Class Method_ rather than _static_ in documentation headers in
buffer.md and crypto.md.  We use _static_ in one place in
async_hooks.md. Change to _Class Method_ for consistency.

PR-URL: #34626
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Gerhard Stöbich <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Fix linter failures when running the linter on all source files.

PR-URL: #34582
Refs: #34565
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: David Carlier <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Makefile assumes that it can pass a list of files to the import
checker, whereas the import checker expects a single argument
that is interpreted as a blob.

Fix that mismatch by accepting multiple arguments in the import
checker.

Refs: #34565

PR-URL: #34582
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: David Carlier <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #34654
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #34622
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Our docs describe static methods as Class Methods which seems
idiosyncratic for JavaScript. Align with MDN which calls them static
methods.

Refs: https://developer.mozilla.org/en-US/docs/MDN/Contribute/Structures/API_references/What_does_an_API_reference_need

JSON format for our docs will still use the key name `classMethods` for
this. I would like to change it to `staticMethods` but I don't know if
that will break things for consumers. So, leaving it alone. It's a
machine-consumable label more than a human-readable so I can live with
that.

PR-URL: #34659
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Gerhard Stöbich <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
A recent feature was added to github-bot to ping codeowners defined on
the CODEOWNERS file even if the team doesn't have write permission to
the repository. That means we can enable codeowners everywhere in the
repository.

Ref: nodejs/github-bot#265
Fix: #33984

PR-URL: #34670
Fixes: #33984
Refs: nodejs/github-bot#265
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Denys Otrishko <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Notable changes:

async_hooks:
  * (SEMVER-MINOR) add AsyncResource.bind utility (James M Snell) #34574
doc:
  * add Ricky Zhou to collaborators (rickyes) #34676
  * add release key for Ruy Adorno (Ruy Adorno) #34628
  * add DerekNonGeneric to collaborators (Derek Lewis) #34602
module:
  * (SEMVER-MINOR) unflag Top-Level Await (Myles Borins) #34558
n-api:
  * (SEMVER-MINOR) support type-tagging objects (Gabriel Schulhof) #28237
n-api,src:
  * (SEMVER-MINOR) provide asynchronous cleanup hooks (Anna Henningsen) #34572

PR-URL: #34704
@nodejs-github-bot
Copy link
Collaborator

nodejs-github-bot commented Aug 11, 2020

@nodejs nodejs deleted a comment from nodejs-github-bot Aug 11, 2020
@codebytere codebytere merged commit b45ea94 into v14.x Aug 11, 2020
codebytere added a commit that referenced this pull request Aug 11, 2020
@addaleax addaleax deleted the v14.8.0-proposal branch August 11, 2020 16:41
@addaleax
Copy link
Member

#34461 and #34482 both look ready to me, btw

Was there any particular reason for not including these? I can just land these on v14.x-staging, but I don’t want to go over the releasers’ heads there

codebytere added a commit that referenced this pull request Aug 11, 2020
Notable changes:

async_hooks:
  * (SEMVER-MINOR) add AsyncResource.bind utility (James M Snell) #34574
doc:
  * add Ricky Zhou to collaborators (rickyes) #34676
  * add release key for Ruy Adorno (Ruy Adorno) #34628
  * add DerekNonGeneric to collaborators (Derek Lewis) #34602
module:
  * (SEMVER-MINOR) unflag Top-Level Await (Myles Borins) #34558
n-api:
  * (SEMVER-MINOR) support type-tagging objects (Gabriel Schulhof) #28237
n-api,src:
  * (SEMVER-MINOR) provide asynchronous cleanup hooks (Anna Henningsen) #34572

PR-URL: #34704
@codebytere
Copy link
Member Author

Apologies - it was mostly timing and concern about getting the release out on time, not for any more intentional reason!

codebytere added a commit to nodejs/nodejs.org that referenced this pull request Aug 11, 2020
codebytere added a commit to nodejs/nodejs.org that referenced this pull request Aug 11, 2020
@targos targos added release Issues and PRs related to Node.js releases. and removed doc Issues and PRs related to the documentations. meta Issues and PRs related to the general management of the project. wasi Issues and PRs related to the WebAssembly System Interface. labels Jun 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release Issues and PRs related to Node.js releases.
Projects
None yet
Development

Successfully merging this pull request may close these issues.