Skip to content

Commit

Permalink
2021-10-19, Version 17.0.0 (Current)
Browse files Browse the repository at this point in the history
Notable Changes:

Deprecations and Removals:

- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup`
  options
  (Antoine du Hamel) [#39793]
- doc: deprecate (doc-only) http abort related
  (dr-js) [#36670]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
  (Guy Bedford) [#40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
  (Guy Bedford) [#40117]

OpenSSL 3.0:

Node.js now includes OpenSSL 3.0, specifically https://github.com/quictls/openssl
which provides QUIC support. For details about all the features in
OpenSSL 3.0 please see https://www.openssl.org/blog/blog/2021/09/07/OpenSSL3.Final.
(Daniel Bevenius) [#38512]

V8 9.5:

The V8 JavaScript engine is updated to V8 9.5. This release comes with
additional supported types for the `Intl.DisplayNames` API and Extended
`timeZoneName` options in the `Intl.DateTimeFormat` API. You can read
more details in the V8 9.5 release post https://v8.dev/blog/v8-release-95.
(Michaël Zasso) [#40178]

Readline Promise API:

The `readline` module provides an interface for reading data from a
Readable stream (such as `process.stdin`) one line at a time.
(Antoine du Hamel) [#37947]

Other Notable Changes:

- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
  (treysis) [#39987]
- (SEMVER-MAJOR) errors: print Node.js version on fatal exceptions that
  cause exit
  (Divlo) [#38332]
- (SEMVER-MINOR) fs: add FileHandle.prototype.readableWebStream()
  (James M Snell) [#39331]
- (SEMVER-MAJOR) lib: add structuredClone() global
  (Ethan Arrowood) [#39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
  (Khaidi Chu) [#39176]
- (SEMVER-MAJOR) stream: finished should error on errored stream
  (Robert Nagy) [#39235]

Semver-Major Commits:

- (SEMVER-MAJOR) build: compile with C++17 (MSVC)
  (Richard Lau) [#38807]
- (SEMVER-MAJOR) build: compile with --gnu++17
  (Richard Lau) [#38807]
- (SEMVER-MAJOR) deps: update V8 to 9.5.172.19
  (Michaël Zasso) [#40178]
- (SEMVER-MAJOR) deps,test,src,doc,tools: update to OpenSSL 3.0
  (Daniel Bevenius) [#38512]
- (SEMVER-MAJOR) dgram: tighten `address` validation in `socket.send`
  (Voltrex) [#39190]
- (SEMVER-MAJOR) dns: runtime deprecate type coercion of `dns.lookup` options
  (Antoine du Hamel) [#39793]
- (SEMVER-MAJOR) dns: default to verbatim=true in dns.lookup()
  (treysis) [#39987]
- (SEMVER-MAJOR) doc: update minimum supported FreeBSD to 12.2
  (Michaël Zasso) [#40179]
- (SEMVER-MAJOR) errors: disp ver on fatal except that causes exit
  (Divlo) [#38332]
- (SEMVER-MAJOR) fs: fix rmsync error swallowing
  (Nitzan Uziely) [#38684]
- (SEMVER-MAJOR) fs: aggregate errors in fsPromises to avoid error swallowing
  (Nitzan Uziely) [#38259]
- (SEMVER-MAJOR) lib: add structuredClone() global
  (Ethan Arrowood) [#39759]
- (SEMVER-MAJOR) lib: expose `DOMException` as global
  (Khaidi Chu) [#39176]
- (SEMVER-MAJOR) module: subpath folder mappings EOL
  (Guy Bedford) [#40121]
- (SEMVER-MAJOR) module: runtime deprecate trailing slash patterns
  (Guy Bedford) [#40117]
- (SEMVER-MAJOR) readline: validate `AbortSignal`s and remove unused event listeners
  (Antoine du Hamel) [#37947]
- (SEMVER-MAJOR) readline: introduce promise-based API
  (Antoine du Hamel) [#37947]
- (SEMVER-MAJOR) readline: refactor `Interface` to ES2015 class
  (Antoine du Hamel) [#37947]
- (SEMVER-MAJOR) src: allow CAP\_NET\_BIND\_SERVICE in SafeGetenv
  (Daniel Bevenius) [#37727]
- (SEMVER-MAJOR) src: return Maybe from a couple of functions
  (Darshan Sen) [#39603]
- (SEMVER-MAJOR) src: allow custom PageAllocator in NodePlatform
  (Shelley Vohr) [#38362]
- (SEMVER-MAJOR) stream: fix highwatermark threshold and add the missing error
  (Rongjian Zhang) [#38700]
- (SEMVER-MAJOR) stream: don't emit 'data' after 'error' or 'close'
  (Robert Nagy) [#39639]
- (SEMVER-MAJOR) stream: do not emit `end` on readable error
  (Szymon Marczak) [#39607]
- (SEMVER-MAJOR) stream: forward errored to callback
  (Robert Nagy) [#39364]
- (SEMVER-MAJOR) stream: destroy readable on read error
  (Robert Nagy) [#39342]
- (SEMVER-MAJOR) stream: validate abort signal
  (Robert Nagy) [#39346]
- (SEMVER-MAJOR) stream: unify stream utils
  (Robert Nagy) [#39294]
- (SEMVER-MAJOR) stream: throw on premature close in Readable\
  (Darshan Sen) [#39117]
- (SEMVER-MAJOR) stream: finished should error on errored stream
  (Robert Nagy) [#39235]
- (SEMVER-MAJOR) stream: error Duplex write/read if not writable/readable
  (Robert Nagy) [#34385]
- (SEMVER-MAJOR) stream: bypass legacy destroy for pipeline and async iteration
  (Robert Nagy) [#38505]
- (SEMVER-MAJOR) url: throw invalid this on detached accessors
  (James M Snell) [#39752]
- (SEMVER-MAJOR) url: forbid certain confusable changes from being introduced by toASCII
  (Timothy Gu) [#38631]

PR-URL: #40119
  • Loading branch information
BethGriggs committed Oct 16, 2021
1 parent a278117 commit 0442e86
Show file tree
Hide file tree
Showing 33 changed files with 304 additions and 49 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

Select a Node.js version below to view the changelog history:

* [Node.js 17](doc/changelogs/CHANGELOG\_V17.md) **Current**
* [Node.js 16](doc/changelogs/CHANGELOG\_V16.md) **Current**
* [Node.js 15](doc/changelogs/CHANGELOG\_V15.md) End-of-Life
* [Node.js 14](doc/changelogs/CHANGELOG\_V14.md) **Long Term Support**
Expand All @@ -27,11 +28,15 @@ release.

<table>
<tr>
<th title="Current"><a href="doc/changelogs/CHANGELOG_V17.md">17</a><sup>Current</sup></th>
<th title="Current"><a href="doc/changelogs/CHANGELOG_V16.md">16</a><sup>Current</sup></th>
<th title="LTS Until 2023-04"><a href="doc/changelogs/CHANGELOG_V14.md">14</a><sup>LTS</sup></th>
<th title="LTS Until 2022-04"><a href="doc/changelogs/CHANGELOG_V12.md">12</a><sup>LTS</sup></th>
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V17.md#17.0.0">17.0.0</a></b><br/>
</td>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V16.md#16.11.1">16.11.1</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V16.md#16.11.0">16.11.0</a><br/>
Expand Down
2 changes: 1 addition & 1 deletion doc/abi_version_registry.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"NODE_MODULE_VERSION": [
{ "modules": 102,"runtime": "node", "variant": "v8_9.5", "versions": "17.0.0-pre" },
{ "modules": 102,"runtime": "node", "variant": "v8_9.5", "versions": "17.0.0" },
{ "modules": 101,"runtime": "electron", "variant": "electron", "versions": "17" },
{ "modules": 100,"runtime": "node", "variant": "v8_9.4", "versions": "17.0.0-pre" },
{ "modules": 99, "runtime": "electron", "variant": "electron", "versions": "16" },
Expand Down
2 changes: 1 addition & 1 deletion doc/api/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -623,7 +623,7 @@ Silence deprecation warnings.

### `--no-extra-info-on-fatal-exception`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

Hide extra information on fatal exception that causes exit.
Expand Down
8 changes: 4 additions & 4 deletions doc/api/deprecations.md
Original file line number Diff line number Diff line change
Expand Up @@ -2707,7 +2707,7 @@ Use `fs.rm(path, { recursive: true, force: true })`,
### DEP0148: Folder mappings in `"exports"` (trailing `"/"`)
<!-- YAML
changes:
- version: REPLACEME
- version: v17.0.0
pr-url: https://github.com/nodejs/node/pull/40121
description: End-of-Life.
- version: v16.0.0
Expand Down Expand Up @@ -2795,7 +2795,7 @@ deprecated and should no longer be used.
### DEP0153: `dns.lookup` and `dnsPromises.lookup` options type coercion
<!-- YAML
changes:
- version: REPLACEME
- version: v17.0.0
pr-url: https://github.com/nodejs/node/pull/39793
description: Runtime deprecation.
- version: v16.8.0
Expand Down Expand Up @@ -2826,7 +2826,7 @@ and `'mgf1HashAlgorithm'`.
### DEP0155: Trailing slashes in pattern specifier resolutions
<!-- YAML
changes:
- version: REPLACEME
- version: v17.0.0
pr-url: https://github.com/nodejs/node/pull/40117
description: Runtime deprecation.
- version: v16.10.0
Expand All @@ -2843,7 +2843,7 @@ for package `"exports"` and `"imports"` pattern resolutions.
### DEP0156: `.aborted` property and `'abort'`, `'aborted'` event in `http`
<!-- YAML
changes:
- version: REPLACEME
- version: v17.0.0
pr-url: https://github.com/nodejs/node/pull/36670
description: Documentation-only deprecation.
-->
Expand Down
2 changes: 1 addition & 1 deletion doc/api/dgram.md
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ if the socket is not connected.
<!-- YAML
added: v0.1.99
changes:
- version: REPLACEME
- version: v17.0.0
pr-url: https://github.com/nodejs/node/pull/39190
description: The `address` parameter now only accepts a `string`, `null`
or `undefined`.
Expand Down
2 changes: 1 addition & 1 deletion doc/api/dns.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ section if a custom port is used.
<!-- YAML
added: v0.1.90
changes:
- version: REPLACEME
- version: v17.0.0
pr-url: https://github.com/nodejs/node/pull/39987
description: The `verbatim` options defaults to `true` now.
- version: v8.5.0
Expand Down
2 changes: 1 addition & 1 deletion doc/api/esm.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
added: v8.5.0
changes:
- version:
- REPLACEME
- v17.0.0
pr-url: https://github.com/nodejs/node/pull/37468
description:
Consolidate loader hooks, removed `getFormat`, `getSource`,
Expand Down
2 changes: 1 addition & 1 deletion doc/api/fs.md
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ number of bytes read is zero.
#### `filehandle.readableWebStream()`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->
> Stability: 1 - Experimental
Expand Down
2 changes: 1 addition & 1 deletion doc/api/globals.md
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ added: v0.0.1

## `DOMException`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

<!-- type=global -->
Expand Down
8 changes: 4 additions & 4 deletions doc/api/http.md
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,7 @@ body which has been transmitted are equal or not.
### Event: `'abort'`
<!-- YAML
added: v1.4.1
deprecated: REPLACEME
deprecated: v17.0.0
-->

> Stability: 0 - Deprecated. Listen for the `'close'` event instead.
Expand Down Expand Up @@ -648,7 +648,7 @@ in the response to be dropped and the socket to be destroyed.
### `request.aborted`
<!-- YAML
added: v0.11.14
deprecated: REPLACEME
deprecated: v17.0.0
changes:
- version: v11.0.0
pr-url: https://github.com/nodejs/node/pull/20230
Expand Down Expand Up @@ -1994,7 +1994,7 @@ may be reused multiple times in case of keep-alive.
### Event: `'aborted'`
<!-- YAML
added: v0.3.8
deprecated: REPLACEME
deprecated: v17.0.0
-->

> Stability: 0 - Deprecated. Listen for `'close'` event instead.
Expand All @@ -2011,7 +2011,7 @@ Indicates that the underlying connection was closed.
### `message.aborted`
<!-- YAML
added: v10.1.0
deprecated: REPLACEME
deprecated: v17.0.0
-->

> Stability: 0 - Deprecated. Check `message.destroyed` from {stream.Readable}.
Expand Down
26 changes: 13 additions & 13 deletions doc/api/readline.md
Original file line number Diff line number Diff line change
Expand Up @@ -536,14 +536,14 @@ line prompts are included in the calculations.

## Promises API
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

> Stability: 1 - Experimental
### Class: `readlinePromises.Interface`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

* Extends: {readline.InterfaceConstructor}
Expand All @@ -556,7 +556,7 @@ and is read from, the `input` stream.

#### `rl.question(query[, options])`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

* `query` {string} A statement or query to write to `output`, prepended to the
Expand Down Expand Up @@ -602,12 +602,12 @@ setTimeout(() => ac.abort(), 10000);

### Class: `readlinePromises.Readline`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

#### `new readlinePromises.Readline(stream[, options])`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

* `stream` {stream.Writable} A [TTY][] stream.
Expand All @@ -616,7 +616,7 @@ added: REPLACEME

#### `rl.clearLine(dir)`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

* `dir` {integer}
Expand All @@ -633,7 +633,7 @@ was passed to the constructor.

#### `rl.clearScreenDown()`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

* Returns: this
Expand All @@ -646,7 +646,7 @@ was passed to the constructor.

#### `rl.commit()`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

* Returns: {Promise}
Expand All @@ -656,7 +656,7 @@ The `rl.commit()` method sends all the pending actions to the associated

#### `rl.cursorTo(x[, y])`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

* `x` {integer}
Expand All @@ -670,7 +670,7 @@ was passed to the constructor.

#### `rl.moveCursor(dx, dy)`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

* `dx` {integer}
Expand All @@ -685,7 +685,7 @@ was passed to the constructor.

#### `rl.rollback()`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

* Returns: this
Expand All @@ -695,7 +695,7 @@ sending it to the associated `stream`.

### `readlinePromises.createInterface(options)`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

* `options` {Object}
Expand Down Expand Up @@ -797,7 +797,7 @@ added: v0.1.104
<!-- YAML
added: v0.1.104
changes:
- version: REPLACEME
- version: v17.0.0
pr-url: https://github.com/nodejs/node/pull/37947
description: The class `readline.Interface` now inherits from `Interface`.
-->
Expand Down
10 changes: 5 additions & 5 deletions doc/api/stream.md
Original file line number Diff line number Diff line change
Expand Up @@ -2108,7 +2108,7 @@ Returns whether the stream has been read from or cancelled.

### `stream.Readable.toWeb(streamReadable)`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

> Stability: 1 - Experimental
Expand All @@ -2118,7 +2118,7 @@ added: REPLACEME

### `stream.Writable.fromWeb(writableStream[, options])`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

> Stability: 1 - Experimental
Expand All @@ -2133,7 +2133,7 @@ added: REPLACEME

### `stream.Writable.toWeb(streamWritable)`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

> Stability: 1 - Experimental
Expand Down Expand Up @@ -2171,7 +2171,7 @@ A utility method for creating duplex streams.

### `stream.Duplex.fromWeb(pair[, options])`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

> Stability: 1 - Experimental
Expand All @@ -2190,7 +2190,7 @@ added: REPLACEME

### `stream.Duplex.toWeb(streamDuplex)`
<!-- YAML
added: REPLACEME
added: v17.0.0
-->

> Stability: 1 - Experimental
Expand Down
2 changes: 1 addition & 1 deletion doc/api/url.md
Original file line number Diff line number Diff line change
Expand Up @@ -1386,7 +1386,7 @@ forward-slash characters (`/`) are required following the colon in the
<!-- YAML
added: v0.1.25
changes:
- version: REPLACEME
- version: v17.0.0
pr-url: https://github.com/nodejs/node/pull/38631
description: Now throws an `ERR_INVALID_URL` exception when Punycode
conversion of a hostname introduces changes that could cause
Expand Down
12 changes: 6 additions & 6 deletions doc/api/vm.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ executed in specific contexts.
<!-- YAML
added: v0.3.1
changes:
- version: REPLACEME
- version: v17.0.0
pr-url: https://github.com/nodejs/node/pull/40249
description: Added support for import assertions to the
`importModuleDynamically` parameter.
Expand Down Expand Up @@ -651,7 +651,7 @@ defined in the ECMAScript specification.
### `new vm.SourceTextModule(code[, options])`
<!-- YAML
changes:
- version: REPLACEME
- version: v17.0.0
pr-url: https://github.com/nodejs/node/pull/40249
description: Added support for import assertions to the
`importModuleDynamically` parameter.
Expand Down Expand Up @@ -869,7 +869,7 @@ const vm = require('vm');
<!-- YAML
added: v10.10.0
changes:
- version: REPLACEME
- version: v17.0.0
pr-url: https://github.com/nodejs/node/pull/40249
description: Added support for import assertions to the
`importModuleDynamically` parameter.
Expand Down Expand Up @@ -1092,7 +1092,7 @@ vm.measureMemory({ mode: 'detailed', execution: 'eager' })
<!-- YAML
added: v0.3.1
changes:
- version: REPLACEME
- version: v17.0.0
pr-url: https://github.com/nodejs/node/pull/40249
description: Added support for import assertions to the
`importModuleDynamically` parameter.
Expand Down Expand Up @@ -1176,7 +1176,7 @@ console.log(contextObject);
<!-- YAML
added: v0.3.1
changes:
- version: REPLACEME
- version: v17.0.0
pr-url: https://github.com/nodejs/node/pull/40249
description: Added support for import assertions to the
`importModuleDynamically` parameter.
Expand Down Expand Up @@ -1285,7 +1285,7 @@ console.log(contextObject);
<!-- YAML
added: v0.3.1
changes:
- version: REPLACEME
- version: v17.0.0
pr-url: https://github.com/nodejs/node/pull/40249
description: Added support for import assertions to the
`importModuleDynamically` parameter.
Expand Down
Loading

0 comments on commit 0442e86

Please sign in to comment.