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

v15.1.0 release proposal #35948

Merged
merged 115 commits into from Nov 4, 2020
Merged

v15.1.0 release proposal #35948

merged 115 commits into from Nov 4, 2020

Conversation

targos
Copy link
Member

@targos targos commented Nov 3, 2020

2020-11-04, Version 15.1.0 (Current), @targos

Notable Changes

Diagnostics channel (experimental module)

diagnostics_channel is a new experimental module that provides an API to create named channels to report arbitrary message data for diagnostics purposes.

With diagnostics_channel, Node.js core and module authors can publish contextual data about what they are doing at a given time. This could be the hostname and query string of a mysql query, for example. Just create a named channel with dc.channel(name) and call channel.publish(data) to send the data to any listeners to that channel.

const dc = require('diagnostics_channel');
const channel = dc.channel('mysql.query');

MySQL.prototype.query = function query(queryString, values, callback) {
  // Broadcast query information whenever a query is made
  channel.publish({
    query: queryString,
    host: this.hostname,
  });

  this.doQuery(queryString, values, callback);
};

Channels are like one big global event emitter but are split into separate objects to ensure they get the best performance. If nothing is listening to the channel, the publishing overhead should be as close to zero as possible. Consuming channel data is as easy as using channel.subscribe(listener) to run a function whenever a message is published to that channel.

const dc = require('diagnostics_channel');
const channel = dc.channel('mysql.query');

channel.subscribe(({ query, host }) => {
  console.log(`mysql query to ${host}: ${query}`);
});

The data captured can be used to provide context for what an app is doing at a given time. This can be used for things like augmenting tracing data, tracking network and filesystem activity, logging queries, and many other things. It's also a very useful data source for diagnostics tools to provide a clearer picture of exactly what the application is doing at a given point in the data they are presenting.

Contributed by Stephen Belanger #34895.

New child process 'spawn' event

Instances of ChildProcess now emit a new 'spawn' event once the child process has spawned successfully.

If emitted, the 'spawn' event comes before all other events and before any data is received via stdout or stderr.

The 'spawn' event will fire regardless of whether an error occurs within the spawned process.
For example, if bash some-command spawns successfully, the 'spawn' event will fire, though bash may fail to spawn some-command.
This caveat also applies when using { shell: true }.

Contributed by Matthew Francis Brunetti #35369.

Set the local address for DNS resolution

It is now possible to set the local IP address used by a Resolver instance to send its requests.
This allows programs to specify outbound interfaces when used on multi-homed
systems.

The resolver will use the v4 local address when making requests to IPv4 DNS servers, and the v6 local address when making requests to IPv6 DNS servers.

const { Resolver } = require('dns');

const resolver = new Resolver();

resolver.setLocalAddress('10.1.2.3');
// Equivalent to: resolver.setLocalAddress('10.1.2.3', '::0');

Contributed by Josh Dague #34824.

Control V8 coverage at runtime

The v8 module includes two new methods to control the V8 coverage started by the NODE_V8_COVERAGE environment variable.

With v8.takeCoverage(), it is possible to write a coverage report to disk on demand. This can be done multiple times during the lifetime of the process, and the execution counter will be reset on each call.
When the process is about to exit, one last coverage will still be written to disk, unless v8.stopCoverage() was invoked before.

The v8.stopCoverage() method allows to stop the coverage collection, so that V8 can release the execution counters and optimize code.

Contributed by Joyee Cheung #33807.

Analyze Worker's event loop utilization

Worker instances now have a performance property, with a single eventLoopUtilization method that can be used to gather information about the worker's event loop utilization between the 'online' and 'exit' events.

The method works the same way as perf_hooks eventLoopUtilization().

Contributed by Trevor Norris #35664.

Take a V8 heap snapshot just before running out of memory (experimental)

With the new --heapsnapshot-near-heap-limit=max_count experimental command line flag, it is now possible to automatically generate a heap snapshot when the V8 heap usage is approaching the heap limit. count should be a non-negative integer (in which case Node.js will write no more than max_count snapshots to disk).

When generating snapshots, garbage collection may be triggered and bring the heap usage down, therefore multiple snapshots may be written to disk before the Node.js instance finally runs out of memory. These heap snapshots can be compared to determine what objects are being allocated during the time consecutive snapshots are taken.

Generating V8 snapshots takes time and memory (both memory managed by the V8 heap and native memory outside the V8 heap). The bigger the heap is, the more resources it needs. Node.js will adjust the V8 heap to accommondate the additional V8 heap memory overhead, and try its best to avoid using up all the memory avialable to the process.

$ node --max-old-space-size=100 --heapsnapshot-near-heap-limit=3 index.js
Wrote snapshot to Heap.20200430.100036.49580.0.001.heapsnapshot
Wrote snapshot to Heap.20200430.100037.49580.0.002.heapsnapshot
Wrote snapshot to Heap.20200430.100038.49580.0.003.heapsnapshot

<--- Last few GCs --->

[49580:0x110000000]     4826 ms: Mark-sweep 130.6 (147.8) -> 130.5 (147.8) MB, 27.4 / 0.0 ms  (average mu = 0.126, current mu = 0.034) allocation failure scavenge might not succeed
[49580:0x110000000]     4845 ms: Mark-sweep 130.6 (147.8) -> 130.6 (147.8) MB, 18.8 / 0.0 ms  (average mu = 0.088, current mu = 0.031) allocation failure scavenge might not succeed


<--- JS stacktrace --->

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
....

Contributed by Joyee Cheung #33010.

Commits

Semver-minor commits

  • [8169902b40] - (SEMVER-MINOR) child_process: add ChildProcess 'spawn' event (Matthew Francis Brunetti) #35369
  • [548f91af2c] - (SEMVER-MINOR) dns: add setLocalAddress to Resolver (Josh Dague) #34824
  • [f861733bac] - (SEMVER-MINOR) http: report request start and end with diagnostics_channel (Stephen Belanger) #34895
  • [883ed4b7f1] - (SEMVER-MINOR) http2: add updateSettings to both http2 servers (Vincent Boivin) #35383
  • [b38a43d5d9] - (SEMVER-MINOR) lib: create diagnostics_channel module (Stephen Belanger) #34895
  • [a7f37bc725] - (SEMVER-MINOR) src: add --heapsnapshot-near-heap-limit option (Joyee Cheung) #33010
  • [7bfa872013] - (SEMVER-MINOR) v8: implement v8.stopCoverage() (Joyee Cheung) #33807
  • [15ffed5319] - (SEMVER-MINOR) v8: implement v8.takeCoverage() (Joyee Cheung) #33807
  • [221e28311f] - (SEMVER-MINOR) worker: add eventLoopUtilization() (Trevor Norris) #35664

Semver-patch commits

  • [d95013f399] - assert,repl: enable ecmaVersion 2021 in acorn parser (Michaël Zasso) #35827
  • [b11c7378e3] - build: fix lint-js-fix target (Antoine du Hamel) #35927
  • [a5fa849631] - build: add vcbuilt test-doc target (Antoine du Hamel) #35708
  • [34281cdaba] - build: turn off Codecov comments (bcoe) #35800
  • [a9c09246bb] - build: add license-builder GitHub Action (Tierney Cyren) #35712
  • [4447ff1162] - build,tools: gitHub Actions: use Node.js Fermium (Antoine du Hamel) #35840
  • [273e147017] - build,tools: add lint-js-doc target (Antoine du Hamel) #35708
  • [0ebf44b466] - crypto: pass empty passphrases to OpenSSL properly (Tobias Nießen) #35914
  • [644c416389] - crypto: rename check to createJob (Daniel Bevenius) #35858
  • [79a8fb62e6] - crypto: fixup scrypt regressions (James M Snell) #35821
  • [abd7c9447c] - crypto: fix webcrypto ECDH JWK import (Filip Skokan) #35855
  • [d3f1cde908] - deps: upgrade npm to 7.0.8 (Myles Borins) #35953
  • [55adee0947] - deps: upgrade npm to 7.0.7 (Luigi Pinca) #35908
  • [5cb77f2e79] - deps: upgrade to cjs-module-lexer@1.0.0 (Guy Bedford) #35928
  • [1303a1fca8] - deps: update to cjs-module-lexer@0.5.2 (Guy Bedford) #35901
  • [20accb08fa] - deps: upgrade to cjs-module-lexer@0.5.0 (Guy Bedford) #35871
  • [52a77db759] - deps: update acorn to v8.0.4 (Michaël Zasso) #35791
  • [e0a1541260] - deps: update to cjs-module-lexer@0.4.3 (Guy Bedford) #35745
  • [894419c1f4] - deps: V8: backport 4263f8a5e8e0 (Brian 'bdougie' Douglas) #35650
  • [564aadedac] - doc,src,test: revise C++ code for linter update (Rich Trott) #35719
  • [7c8b5e5e0e] - errors: do not call resolve on URLs with schemes (bcoe) #35903
  • [1cdfaa80f8] - events: add a few tests (Benjamin Gruenbaum) #35806
  • [f08e2c0213] - events: make abort_controller event trusted (Benjamin Gruenbaum) #35811
  • [438d9debfd] - events: make eventTarget.removeAllListeners() return this (Luigi Pinca) #35805
  • [b6b7a3b86a] - http: lazy create IncomingMessage.headers (Robert Nagy) #35281
  • [86ed87b6b7] - http2: fix reinjection check (Momtchil Momtchev) #35678
  • [5833007eb0] - http2: reinject data received before http2 is attached (Momtchil Momtchev) #35678
  • [cfe61b8714] - http2: remove unsupported %.* specifier (Momtchil Momtchev) #35694
  • [d2f574b5be] - lib: let abort_controller target be EventTarget (Daijiro Wachi) #35869
  • [b1e531a70b] - lib: use primordials when calling methods of Error (Antoine du Hamel) #35837
  • [0f5a8c55c2] - module: runtime deprecate subpath folder mappings (Guy Bedford) #35747
  • [d16e2fa69a] - n-api: napi_make_callback emit async init with resource of async_context (legendecas) #32930
  • [0c17dbd201] - n-api: revert change to finalization (Michael Dawson) #35777
  • [fb7196434e] - src: remove redundant OpenSSLBuffer (James M Snell) #35663
  • [c9225789d3] - src: remove ERR prefix in WebCryptoKeyExportStatus (Daniel Bevenius) #35639
  • [4128eefcb3] - src: remove ignore GCC -Wcast-function-type for v8 (Daniel Bevenius) #35768
  • [4b8b5fee6a] - src: use MaybeLocal.ToLocal instead of IsEmpty (Daniel Bevenius) #35716
  • [01d7c46776] - Revert "src: ignore GCC -Wcast-function-type for v8.h" (Daniel Bevenius) #35758
  • [2868f52a5c] - stream: fix regression on duplex end (Momtchil Momtchev) #35941
  • [70c41a830d] - stream: remove redundant context from comments (Yash Ladha) #35728
  • [88eb6191e4] - stream: fix duplicate logic in stream destroy (Yash Ladha) #35727
  • [a41e3ebc3a] - timers: correct explanation in comment (Turner Jabbour) #35437
  • [ee15142fef] - tls: allow reading data into a static buffer (Andrey Pechkurov) #35753
  • [102d7dfe02] - zlib: test BrotliCompress throws invalid arg value (raisinten) #35830

Documentation commits

Other commits

joyeecheung and others added 30 commits November 3, 2020 17:54
This patch adds a --heapsnapshot-near-heap-limit CLI option
that takes heap snapshots when the V8 heap is approaching
the heap size limit. It will try to write the snapshots
to disk before the program crashes due to OOM.

PR-URL: #33010
Refs: #27552
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Original commit message:

    parser: better error message for await+tla

    Bug: v8:9344, v8:6513
    Change-Id: I1854e483515e7da99192367b6764a0ec7c8b41d9
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2411687
    Reviewed-by: Marja Hölttä <marja@chromium.org>
    Commit-Queue: Gus Caplan <snek@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#70099}

Refs: v8/v8@4263f8a

PR-URL: #35650
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Collect Windows and C++ coverage. Configure codecov so that
comments are more concise and are only left when coverage
varies.

PR-URL: #35670
Fixes: #35696
Refs: #35653
Refs: #35646
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Add an v8.takeCoverage() API that allows the user to write the
coverage started by NODE_V8_COVERAGE to disk on demand.
The coverage can be written multiple times during the lifetime
of the process, each time the execution counter will be reset.
When the process is about to exit, one last coverage will
still be written to disk.

Also refactors the internal profiler connection code
so that we use the inspector response id to identify
the profile response instead of using an ad-hoc flag in C++.

PR-URL: #33807
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Ben Coe <bencoe@gmail.com>
Add a v8.stopCoverage() API to stop the coverage collection
started by NODE_V8_COVERAGE - this would be useful in
conjunction with v8.takeCoverage() if the user don't want
to emit the coverage at the process exit but still want
to collect it on demand at some point.

PR-URL: #33807
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Ben Coe <bencoe@gmail.com>
PR-URL: #35712
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
PR-URL: #35710
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
PR-URL: #35750
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Guy Bedford <guybedford@gmail.com>
PR-URL: #35719
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
https://github.com/cpplint/cpplint/releases/tag/1.5.0

PR-URL: #35719
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Cherry-pick 12c8b4d
Original commit message:
    This commit is a suggestion for adding a rule for NULL usages in the
    code base. This will currently report a number of errors which could be
    ignored using // NOLINT (readability/null_usage)

    PR-URL: #17373
    Reviewed-By: Jon Moss <me@jonathanmoss.me>
    Reviewed-By: Anna Henningsen <anna@addaleax.net>
    Reviewed-By: Timothy Gu <timothygu99@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
    Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
    Reviewed-By: Tobias Nießen <tniessen@tnie.de>

Refs: 12c8b4d

Cherry-pick fc81e80
Original commit message:

    Update cpplint.py to check for inline headers when the corresponding
    header is already included.

    PR-URL: #21521
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
    Reviewed-By: James M Snell <jasnell@gmail.com>

Refs: fc81e80

Cherry-pick cbc3dd9
Original commit message:

    src, tools: add check for left leaning pointers

    This commit adds a rule to cpplint to check that pointers in the code
    base lean to the left and not right, and also fixes the violations
    reported.

    PR-URL: #21010
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
    Reviewed-By: Anna Henningsen <anna@addaleax.net>
    Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
    Reviewed-By: James M Snell <jasnell@gmail.com>

Refs: cbc3dd9

Cherry-pick 9029981
Original commit message:

    tools: fix cpplint.py header rules

    THIS COMMIT SHOULD GO WITH THE NEXT. IT WILL FIND NEW LINT.

    PR-URL: #26306
    Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>

Refs: 9029981

Cherry-pick 0a25ace
Original commit message:

    tools: move cpplint configuration to .cpplint

    PR-URL: #27098
    Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
    Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>

Refs: 0a25ace

Cherry-pick afa9a72
Original commit message:

    tools: refloat update link to google styleguide for cpplint

    This commit updates two old links to Google's C++ styleguide which
    currently result in a 404 when accessed.

    PR-URL: #30876
    Reviewed-By: Michaël Zasso <targos@protonmail.com>
    Reviewed-By: David Carlier <devnexen@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Richard Lau <riclau@uk.ibm.com>
    Reviewed-By: Rich Trott <rtrott@gmail.com>

Refs: afa9a72

Cherry-pick e23bf8f
Original commit message:

    tools,src: refloat forbid usage of v8::Persistent

    `v8::Persistent` comes with the surprising catch that it requires
    manual cleanup. `v8::Global` doesn’t, making it easier to use,
    and additionally provides move semantics. New code should always
    use `v8::Global`.

    PR-URL: #31018
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Richard Lau <riclau@uk.ibm.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: David Carlier <devnexen@gmail.com>
    Reviewed-By: Rich Trott <rtrott@gmail.com>
    Reviewed-By: Gus Caplan <me@gus.host>
    Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
    Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>

PR-URL: #35569
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>

PR-URL: #35719
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Only imports has the experimental status right now but technically all
ESM related features are currently experimental. The list also doesn't
appear to be in any specific order so I've grouped the experimental
features together.

PR-URL: #35741
Reviewed-By: Guy Bedford <guybedford@gmail.com>
Reviewed-By: Derek Lewis <DerekNonGeneric@inf.is>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org>
PR-URL: #35745
Reviewed-By: Jan Krems <jan.krems@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Fix duplicate logic in stream destroy as the same logic is being shared
across methods and thus can be encapsulated into a single method.

PR-URL: #35727
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Ricky Zhou <0x19951125@gmail.com>
PR-URL: #35515
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Christian Clauss <cclauss@me.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
* Make the 7 instances of breakOnSigint text blocks consistent.
* Use present tense.
* Use kbd element for keystrokes.
* Minor style edits.

PR-URL: #35692
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Refs: #35525

PR-URL: #35782
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Signed-off-by: Lee, Bonggi <iyabong@gmail.com>

PR-URL: #34964
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
PR-URL: #35683
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Ben Coe <bencoe@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
The debug sprintf doesn't support %.* specifiers

Fixes: #35688

PR-URL: #35694
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Ricky Zhou <0x19951125@gmail.com>
Reviewed-By: David Carlier <devnexen@gmail.com>
Fixes: #34818

PR-URL: #34824
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Fixes: #35740

Refs: #31553
Refs: #32953
Refs: #33991
Refs: #34001
Refs: #34055
Refs: #34962

Co-authored-by: Antoine du Hamel <duhamelantoine1995@gmail.com>
Co-authored-by: Trivikram Kamat <trivikr.dev@gmail.com>
Co-authored-by: Rich Trott <rtrott@gmail.com>

PR-URL: #34002
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Masashi Hirano <shisama07@gmail.com>
Reviewed-By: Pranshu Srivastava <rexagod@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Allow the user to update the server settings
after using http2.createSecureServer() or
after using http2.createServer().

Fixes: #35353

PR-URL: #35383
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Reviewed-By: Ricky Zhou <0x19951125@gmail.com>
Reinject the data already received from the TLS
socket when the HTTP2 client is attached with a
delay

Fixes: #35475

PR-URL: #35678
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Alba Mendez <me@alba.sh>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: Ricky Zhou <0x19951125@gmail.com>
We reinject when the sockets has already waiting
data, remarked by @mildsunrise

Co-authored-by: Alba Mendez <me@alba.sh>

PR-URL: #35678
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Alba Mendez <me@alba.sh>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: Ricky Zhou <0x19951125@gmail.com>
example code added to the process.setgroups() API
doc property in process.md

PR-URL: #35738
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
PR-URL: #35437
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Using the variable name in the comment and justifying the type seems
redundant to me and instead it should defined the entity which it is
acting, like in our case it is acting as a flag to control the flow in
streams.

PR-URL: #35728
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com>
PR-URL: #35764
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Remove note indicating that the APIs can change at any time. This module
migrated from Experimental to Stable 6 years ago (in io.js 1.4.2).

PR-URL: #35774
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
@MylesBorins
Copy link
Member

@vsemozhetbyt I'm escalating that issue to the npm team and will lyk

@tniessen
Copy link
Member

tniessen commented Nov 4, 2020

It would be great if #35914 could be included to fix #35898.

benjamingr and others added 9 commits November 4, 2020 18:39
PR-URL: #35806
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Replace the OpenSSLBuffer utility with ByteSource and
remove OpenSSLBuffer.

Signed-off-by: James M Snell <jasnell@gmail.com>

PR-URL: #35663
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Adding a new benchmark for testing the performance of loading
available public modules.

PR-URL: #35816
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Avoid using class fields in the benchmark tools since they are
not available in Node 10. This can be reverted when Node 10
reaches EOL.

PR-URL: #35817
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Mary Marchini <oss@mmarchini.me>
The active worker check compared the time from sending message till
response arrived from worker with the complete time the worker was
running till it responses to the spin request.

If sending back the message is slow for some reason the test fails.

Adapt the test to compare the time seen inside the worker with the
time read from main thread.

PR-URL: #35891
Fixes: #35844
Refs: #35886
Refs: #35664
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
PR-URL: #35896
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Decide the return status of writeOrBuffer before
calling stream.write which can reset state.length

Add unit test for #35926

Refs: #35926

PR-URL: #35941
Fixes: #35926
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Fixes: #35898

PR-URL: #35914
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Notable changes:

child_process:
  * (SEMVER-MINOR) add ChildProcess 'spawn' event (Matthew Francis Brunetti) #35369
dns:
  * (SEMVER-MINOR) add setLocalAddress to Resolver (Josh Dague) #34824
http:
  * (SEMVER-MINOR) report request start and end with diagnostics_channel (Stephen Belanger) #34895
http2:
  * (SEMVER-MINOR) add updateSettings to both http2 servers (Vincent Boivin) #35383
lib:
  * (SEMVER-MINOR) create diagnostics_channel module (Stephen Belanger) #34895
src:
  * (SEMVER-MINOR) add --heapsnapshot-near-heap-limit option (Joyee Cheung) #33010
v8:
  * (SEMVER-MINOR) implement v8.stopCoverage() (Joyee Cheung) #33807
  * (SEMVER-MINOR) implement v8.takeCoverage() (Joyee Cheung) #33807
worker:
  * (SEMVER-MINOR) add eventLoopUtilization() (Trevor Norris) #35664

PR-URL: #35948
@targos
Copy link
Member Author

targos commented Nov 4, 2020

I made an update based on the new commits on master.

@nodejs/release PTAL

@targos
Copy link
Member Author

targos commented Nov 4, 2020

/cc @ljharb

citgm.is-core-module-v2.0.0
...
 not ok 214 diagnostics_channel is a core module

@nodejs-github-bot
Copy link
Collaborator

@ljharb
Copy link
Member

ljharb commented Nov 4, 2020

Thanks; give me an hour and I’ll have is-core-module updated to recognize that module (thanks @Qard for inspect-js/is-core-module#1)

@targos
Copy link
Member Author

targos commented Nov 4, 2020

#35816 introduced an issue with a benchmark test for builds --without-intl. It is being fixed #35968 but I would like to land the release anyway as the issue does not impact runtime and everything else is ready for promotion.

@targos
Copy link
Member Author

targos commented Nov 4, 2020

@nodejs/release can I have at least one review?

Copy link
Member

@MylesBorins MylesBorins left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ljharb
Copy link
Member

ljharb commented Nov 4, 2020

v2.1.0 of is-core-module has been published; CIGTM tests should pass on rerun.

targos added a commit that referenced this pull request Nov 4, 2020
@targos targos merged commit 2291e07 into v15.x Nov 4, 2020
targos added a commit that referenced this pull request Nov 4, 2020
Notable changes:

child_process:
  * (SEMVER-MINOR) add ChildProcess 'spawn' event (Matthew Francis Brunetti) #35369
dns:
  * (SEMVER-MINOR) add setLocalAddress to Resolver (Josh Dague) #34824
http:
  * (SEMVER-MINOR) report request start and end with diagnostics_channel (Stephen Belanger) #34895
http2:
  * (SEMVER-MINOR) add updateSettings to both http2 servers (Vincent Boivin) #35383
lib:
  * (SEMVER-MINOR) create diagnostics_channel module (Stephen Belanger) #34895
src:
  * (SEMVER-MINOR) add --heapsnapshot-near-heap-limit option (Joyee Cheung) #33010
v8:
  * (SEMVER-MINOR) implement v8.stopCoverage() (Joyee Cheung) #33807
  * (SEMVER-MINOR) implement v8.takeCoverage() (Joyee Cheung) #33807
worker:
  * (SEMVER-MINOR) add eventLoopUtilization() (Trevor Norris) #35664

PR-URL: #35948
@targos targos deleted the v15.1.0-proposal branch November 4, 2020 20:56
targos added a commit to nodejs/nodejs.org that referenced this pull request Nov 4, 2020
targos added a commit to nodejs/nodejs.org that referenced this pull request Nov 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI. doc Issues and PRs related to the documentations. meta Issues and PRs related to the general management of the project.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet