GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — v15.1.0 release proposal by targos · Pull Request #35948 · nodejs/node

Conversation

@targos

@targos targos commented Nov 3, 2020 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

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 [email protected] (Guy Bedford) #35928
  • [1303a1fca8] - deps: update to [email protected] (Guy Bedford) #35901
  • [20accb08fa] - deps: upgrade to [email protected] (Guy Bedford) #35871
  • [52a77db759] - deps: update acorn to v8.0.4 (Michaël Zasso) #35791
  • [e0a1541260] - deps: update to [email protected] (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

  • [7937fbe3bc] - doc: update tables in README files for linting changes (Rich Trott) #35905
  • [c5b94220c5] - doc: temporarily disable list-item-bullet-indent (Nick Schonning) #35647
  • [59b36af8d5] - doc: disable no-undefined-references workarounds (Nick Schonning) #35647
  • [eb55462a75] - doc: adjust table alignment for remark v13 (Nick Schonning) #35647
  • [0ac4a6ab16] - doc: update crypto.createSecretKey history (Ben Turner) #35874
  • [4899998855] - doc: move bnoordhuis to emeritus (Ben Noordhuis) #35865
  • [337bfcf614] - doc: add on statement in the APIs docs (Pooja D.P) #35610
  • [9703219fdb] - doc: fix a typo in CHANGELOG_V15 (Takuya Noguchi) #35804
  • [c14889bcc1] - doc: move ronkorving to emeritus (Rich Trott) #35828
  • [8c2b17926c] - doc: recommend test-doc instead of lint-md (Antoine du Hamel) #35708
  • [0580258449] - doc: fix reference to googletest test fixture (Tobias Nießen) #35813
  • [d291e3abd9] - doc: stabilize packages features (Myles Borins) #35742
  • [5e8d821b4c] - doc: add conditional example for setBreakpoint() (Chris Opperwall) #35823
  • [8074f69f82] - doc: make small improvements to REPL doc (Rich Trott) #35808
  • [4e76a3c106] - doc: update MessagePort documentation for EventTarget inheritance (Anna Henningsen) #35839
  • [3db4354cc8] - doc: use case-sensitive in the example (Pooja D.P) #35624
  • [b07f4a3f7a] - doc: consolidate and clarify breakOnSigInt text (Rich Trott) #35787
  • [c2e6a4b081] - doc: fix _construct example params order (Alejandro Oviedo) #35790
  • [6513a589fe] - doc: add a subsystems header in pull-requests.md (Pooja D.P) #35718
  • [c365867c60] - doc: fix typo in BUILDING.md (raisinten) #35807
  • [6211ffd2f7] - doc: add require statement in the example (Pooja D.P) #35554
  • [7b3743d8dd] - doc: modified memory set statement set size (Pooja D.P) #35517
  • [afbe23d800] - doc: use kbd element in readline doc prose (Rich Trott) #35737
  • [c0a4fac040] - doc: fix a typo in CHANGELOG_V12 (Shubham Parihar) #35786
  • [0e9acf83f7] - doc: fix header level in fs.md (ax1) #35771
  • [f49afb5e10] - doc: remove stability warning in v8 module doc (Rich Trott) #35774
  • [368ae952b2] - doc: mark optional parameters in timers.md (Vse Mozhe Buty) #35764
  • [f6aa7c82c5] - doc: add a example code to API doc property (Pooja D.P) #35738
  • [55b7a6cea3] - doc: document changes for \*/promises alias modules (ExE Boss) #34002
  • [4b7708a316] - doc: update console.error example (Lee, Bonggi) #34964
  • [292b529dfa] - doc: add missing link in Node.js 14 Changelog (Antoine du Hamel) #35782
  • [890b03ecd6] - doc: improve text for breakOnSigint (Rich Trott) #35692
  • [1892532ee8] - doc: this prints replaced with this is printed (Pooja D.P) #35515
  • [6590f8cb4a] - doc: update package.json field definitions (Myles Borins) #35741
  • [f269c6cbe2] - doc: add Installing Node.js header in BUILDING.md (Pooja D.P) #35710
  • [05a888a8c3] - doc,esm: document experimental warning removal (Antoine du Hamel) #35750
  • [092c6c4f8f] - doc,test: update v8 method doc and comment (Rich Trott) #35795

Other commits

  • [76ebae4c05] - benchmark: make the benchmark tool work with Node 10 (Joyee Cheung) #35817
  • [9b549c1691] - benchmark: add startup benchmark for loading public modules (Joyee Cheung) #35816
  • [5d61e3db4b] - test: add missing ref comments to parallel.status (Rich Trott) #35896
  • [231af88001] - test: correct test-worker-eventlooputil (Gerhard Stoebich) #35891
  • [da612dfc20] - test: integrate abort_controller tests from wpt (Daijiro Wachi) #35869
  • [66ad4be2c1] - test: add test to fs/promises setImmediate (tyankatsu) #35852
  • [830b789299] - test: mark test-worker-eventlooputil flaky (Myles Borins) #35886
  • [7691b673dc] - test: mark test-http2-respond-file-error-pipe-offset flaky (Myles Borins) #35883
  • [de3dcd7356] - test: fix reference to WPT testharness.js (Tobias Nießen) #35814
  • [8958af4aa0] - test: add onerror test cases to policy (Daijiro Wachi) #35797
  • [dd3cbb455a] - test: add upstream test cases to encoding (Daijiro Wachi) #35794
  • [76991c039f] - test: add upstream test cases to urlsearchparam (Daijiro Wachi) #35792
  • [110ef8aa50] - test: refactor coverage logic (bcoe) #35767
  • [0c5e8ed651] - test: add additional deprecation warning tests for rmdir recursive (Ian Sutherland) #35683
  • [11eca36e83] - test: add windows and C++ coverage (Benjamin Coe) #35670
  • [fd027cd61a] - tools: bump remark-lint-preset-node to 2.0.0 (Rich Trott) #35905
  • [c09fdba786] - tools: refloat 7 Node.js patches to cpplint.py (Rich Trott) #35866
  • [3955ccd305] - tools: bump cpplint to 1.5.1 (Rich Trott) #35866
  • [a07d1af4ea] - tools: update ESLint to 7.12.1 (cjihrig) #35799
  • [d20b318c58] - tools: update ESLint to 7.12.0 (cjihrig) #35799
  • [31753ec8aa] - tools: add msvc /P output to .gitignore (Jiawen Geng) #35735
  • [afb3e24cb0] - tools: add update-npm script (Myles Borins) #35822
  • [66da122d46] - tools: refloat 7 Node.js patches to cpplint.py (Rich Trott) #35719
  • [042d4dd71c] - tools: bump cpplint to 1.5.0 (Rich Trott) #35719

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

bricss reacted with thumbs up emoji bricss reacted with hooray emoji bricss reacted with heart emoji bricss, MylesBorins, and zenflow reacted with rocket emoji
All reactions
  • 👍 1 reaction
  • 🎉 1 reaction
  • ❤️ 1 reaction
  • 🚀 3 reactions
joyeecheung and others added 30 commits November 3, 2020 17:54
@joyeecheung @targos
src: add --heapsnapshot-near-heap-limit option
a7f37bc
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 <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
@bdougie @targos
deps: V8: backport 4263f8a5e8e0
894419c
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ä <[email protected]>
    Commit-Queue: Gus Caplan <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#70099}

Refs: v8/v8@4263f8a

PR-URL: #35650
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
Benjamin Coe @targos
test: add windows and C++ coverage
11eca36
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 <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
@joyeecheung @targos
v8: implement v8.takeCoverage()
15ffed5
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 <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Ben Coe <[email protected]>
@joyeecheung @targos
v8: implement v8.stopCoverage()
7bfa872
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 <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Ben Coe <[email protected]>
@bnb @targos
build: add license-builder GitHub Action
a9c0924
PR-URL: #35712
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Daijiro Wachi <[email protected]>
@PoojaDurgad @targos
doc: add Installing Node.js header in BUILDING.md
f269c6c
PR-URL: #35710
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
@aduh95 @targos
doc,esm: document experimental warning removal
05a888a
PR-URL: #35750
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Guy Bedford <[email protected]>
@Trott @targos
doc,src,test: revise C++ code for linter update
564aade
PR-URL: #35719
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
@Trott @targos
tools: bump cpplint to 1.5.0
042d4dd
https://github.com/cpplint/cpplint/releases/tag/1.5.0

PR-URL: #35719
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
@Trott @targos
tools: refloat 7 Node.js patches to cpplint.py
66da122
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 <[email protected]>
    Reviewed-By: Anna Henningsen <[email protected]>
    Reviewed-By: Timothy Gu <[email protected]>
    Reviewed-By: Colin Ihrig <[email protected]>
    Reviewed-By: Michael Dawson <[email protected]>
    Reviewed-By: Sakthipriyan Vairamani <[email protected]>
    Reviewed-By: Tobias Nießen <[email protected]>

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 <[email protected]>
    Reviewed-By: James M Snell <[email protected]>

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 <[email protected]>
    Reviewed-By: Anna Henningsen <[email protected]>
    Reviewed-By: Ruben Bridgewater <[email protected]>
    Reviewed-By: James M Snell <[email protected]>

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 <[email protected]>

Refs: 9029981

Cherry-pick 0a25ace
Original commit message:

    tools: move cpplint configuration to .cpplint

    PR-URL: #27098
    Reviewed-By: Joyee Cheung <[email protected]>
    Reviewed-By: Daniel Bevenius <[email protected]>

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 <[email protected]>
    Reviewed-By: David Carlier <[email protected]>
    Reviewed-By: Colin Ihrig <[email protected]>
    Reviewed-By: Richard Lau <[email protected]>
    Reviewed-By: Rich Trott <[email protected]>

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 <[email protected]>
    Reviewed-By: Richard Lau <[email protected]>
    Reviewed-By: James M Snell <[email protected]>
    Reviewed-By: David Carlier <[email protected]>
    Reviewed-By: Rich Trott <[email protected]>
    Reviewed-By: Gus Caplan <[email protected]>
    Reviewed-By: Joyee Cheung <[email protected]>
    Reviewed-By: Ben Noordhuis <[email protected]>
    Reviewed-By: Stephen Belanger <[email protected]>

PR-URL: #35569
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Daijiro Wachi <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>

PR-URL: #35719
Reviewed-By: Antoine du Hamel <[email protected]>
@MylesBorins @targos
doc: update package.json field definitions
6590f8c
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 <[email protected]>
Reviewed-By: Derek Lewis <[email protected]>
Reviewed-By: Daijiro Wachi <[email protected]>
Reviewed-By: Ujjwal Sharma <[email protected]>
@guybedford @targos
deps: update to [email protected]
e0a1541
PR-URL: #35745
Reviewed-By: Jan Krems <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
Reviewed-By: Ujjwal Sharma <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
@yashLadha @targos
stream: fix duplicate logic in stream destroy
88eb619
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 <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Anto Aravinth <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Ricky Zhou <[email protected]>
@PoojaDurgad @targos
doc: this prints replaced with this is printed
1892532
PR-URL: #35515
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Christian Clauss <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
@Trott @targos
doc: improve text for breakOnSigint
890b03e
* 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 <[email protected]>
@aduh95 @targos
doc: add missing link in Node.js 14 Changelog
292b529
Refs: #35525

PR-URL: #35782
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
@iyabong @targos
doc: update console.error example
4b7708a
Signed-off-by: Lee, Bonggi <[email protected]>

PR-URL: #34964
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
@iansu @targos
test: add additional deprecation warning tests for rmdir recursive
0c5e8ed
PR-URL: #35683
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Ben Coe <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
@mmomtchev @targos
http2: remove unsupported %.* specifier
cfe61b8
The debug sprintf doesn't support %.* specifiers

Fixes: #35688

PR-URL: #35694
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Franziska Hinkelmann <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Ricky Zhou <[email protected]>
Reviewed-By: David Carlier <[email protected]>
@daguej @targos
dns: add setLocalAddress to Resolver
548f91a
Fixes: #34818

PR-URL: #34824
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Roman Reiss <[email protected]>
@ExE-Boss @targos
doc: document changes for */promises alias modules
55b7a6c
Fixes: #35740

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

Co-authored-by: Antoine du Hamel <[email protected]>
Co-authored-by: Trivikram Kamat <[email protected]>
Co-authored-by: Rich Trott <[email protected]>

PR-URL: #34002
Reviewed-By: Trivikram Kamat <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Masashi Hirano <[email protected]>
Reviewed-By: Pranshu Srivastava <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Vincent Boivin @targos
http2: add updateSettings to both http2 servers
883ed4b
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 <[email protected]>
Reviewed-By: Denys Otrishko <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Anatoli Papirovski <[email protected]>
Reviewed-By: Yongsheng Zhang <[email protected]>
Reviewed-By: Ricky Zhou <[email protected]>
@mmomtchev @targos
http2: reinject data received before http2 is attached
5833007
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 <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Alba Mendez <[email protected]>
Reviewed-By: Franziska Hinkelmann <[email protected]>
Reviewed-By: Ricky Zhou <[email protected]>
@mmomtchev @targos
http2: fix reinjection check
86ed87b
We reinject when the sockets has already waiting
data, remarked by @mildsunrise

Co-authored-by: Alba Mendez <[email protected]>

PR-URL: #35678
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Alba Mendez <[email protected]>
Reviewed-By: Franziska Hinkelmann <[email protected]>
Reviewed-By: Ricky Zhou <[email protected]>
@PoojaDurgad @targos
doc: add a example code to API doc property
f6aa7c8
example code added to the process.setgroups() API
doc property in process.md

PR-URL: #35738
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
@wjabbour @targos
timers: correct explanation in comment
a41e3eb
PR-URL: #35437
Reviewed-By: Anatoli Papirovski <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
@yashLadha @targos
stream: remove redundant context from comments
70c41a8
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 <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Anto Aravinth <[email protected]>
@vsemozhetbyt @targos
doc: mark optional parameters in timers.md
368ae95
PR-URL: #35764
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
@Trott @targos
doc: remove stability warning in v8 module doc
f49afb5
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 <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Daijiro Wachi <[email protected]>
@MylesBorins

MylesBorins commented Nov 4, 2020

Copy link
Copy Markdown
Contributor

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

EatonZ, vsemozhetbyt, and bricss reacted with heart emoji
All reactions
  • ❤️ 3 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@tniessen

tniessen commented Nov 4, 2020

Copy link
Copy Markdown
Member

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

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

benjamingr and others added 9 commits November 4, 2020 18:39
@benjamingr @targos
events: add a few tests
1cdfaa8
PR-URL: #35806
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
@jasnell @targos
src: remove redundant OpenSSLBuffer
fb71964
Replace the OpenSSLBuffer utility with ByteSource and
remove OpenSSLBuffer.

Signed-off-by: James M Snell <[email protected]>

PR-URL: #35663
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Franziska Hinkelmann <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
@joyeecheung @targos
benchmark: add startup benchmark for loading public modules
9b549c1
Adding a new benchmark for testing the performance of loading
available public modules.

PR-URL: #35816
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
@joyeecheung @targos
benchmark: make the benchmark tool work with Node 10
76ebae4
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 <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Yongsheng Zhang <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Mary Marchini <[email protected]>
@Flarna @targos
test: correct test-worker-eventlooputil
231af88
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 <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
@Trott @targos
test: add missing ref comments to parallel.status
5d61e3d
PR-URL: #35896
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
@mmomtchev @targos
stream: fix regression on duplex end
2868f52
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 <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
@tniessen @targos
crypto: pass empty passphrases to OpenSSL properly
0ebf44b
Fixes: #35898

PR-URL: #35914
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Franziska Hinkelmann <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
@targos
2020-11-04, Version 15.1.0 (Current)
2291e07
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 force-pushed the v15.1.0-proposal branch from a90fdc1 to 2291e07 Compare November 4, 2020 18:08
@targos

targos commented Nov 4, 2020

Copy link
Copy Markdown
Member Author

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

@nodejs/release PTAL

MylesBorins, bricss, and Qard reacted with thumbs up emoji
All reactions
  • 👍 3 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ruyadorno ruyadorno mentioned this pull request Nov 4, 2020
feat: default shell for alpine images nodejs/docker-node#1380
Closed
@nodejs-github-bot

nodejs-github-bot commented Nov 4, 2020 •
edited by targos
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/34065/
V8: https://ci.nodejs.org/job/node-test-commit-v8-linux/3531/
CITGM: https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/2535/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@targos

targos commented Nov 4, 2020

Copy link
Copy Markdown
Member Author

/cc @ljharb

citgm.is-core-module-v2.0.0
...
 not ok 214 diagnostics_channel is a core module
ljharb and Qard reacted with eyes emoji
All reactions
  • 👀 2 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Nov 4, 2020

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/34067/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ljharb

ljharb commented Nov 4, 2020 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

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)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@targos

targos commented Nov 4, 2020

Copy link
Copy Markdown
Member Author

#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.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@targos

targos commented Nov 4, 2020

Copy link
Copy Markdown
Member Author

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

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

cjihrig
cjihrig approved these changes Nov 4, 2020
View reviewed changes
MylesBorins
MylesBorins approved these changes Nov 4, 2020
View reviewed changes

@MylesBorins MylesBorins left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

LGTM

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ljharb

ljharb commented Nov 4, 2020

Copy link
Copy Markdown
Member

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

targos, Qard, ruyadorno, MylesBorins, and charlesrutabanzibwa reacted with thumbs up emoji
All reactions
  • 👍 5 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

targos added a commit that referenced this pull request Nov 4, 2020
@targos
Working on v15.1.1
7776e48
PR-URL: #35948
@targos
targos merged commit 2291e07 into v15.x Nov 4, 2020
targos added a commit that referenced this pull request Nov 4, 2020
@targos
2020-11-04, Version 15.1.0 (Current)
8caa6a9
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
Blog: v15.1.0 release post
5532aeb
Refs: nodejs/node#35948
@targos targos mentioned this pull request Nov 4, 2020
Blog: v15.1.0 release post nodejs/nodejs.org#3495
Merged
targos added a commit to nodejs/nodejs.org that referenced this pull request Nov 4, 2020
@targos
Blog: v15.1.0 release post (#3495)
686cc32
Refs: nodejs/node#35948
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@cjihrig cjihrig cjihrig approved these changes
+1 more reviewer
@MylesBorins MylesBorins MylesBorins approved these changes
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

build Issues and PRs related to Node.js builds or CI infrastructure. doc Issues and PRs related to Node.js documentation. meta Issues and PRs related to the general management of the project.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

19 participants

@targos @nodejs-github-bot @Qard @mcollina @joyeecheung @MylesBorins @vsemozhetbyt @EatonZ @tniessen @ljharb @cjihrig @bdougie @bnb @PoojaDurgad @aduh95 @Trott @guybedford @yashLadha @iyabong
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.