Skip to content

Commit f99ce7c

Browse files
committedOct 18, 2021
2021-10-19, Version 17.0.0 (Current)
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. While OpenSSL 3.0 APIs should be mostly compatible with those provided by OpenSSL 1.1.1, we do anticipate some ecosystem impact due to tightened restrictions on the allowed algorithms and key sizes. If you hit an `ERR_OSSL_EVP_UNSUPPORTED` error in your application with Node.js 17, it’s likely that your application or a module you’re using is attempting to use an algorithm or key size which is no longer allowed by default with OpenSSL 3.0. A command-line option, `--openssl-legacy-provider`, has been added to revert to the legacy provider as a temporary workaround for these tightened restrictions. 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] Contributed in #38512, #40478 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] - deps: upgrade npm to 8.1.0 (npm team) [#40463] - (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
1 parent a35b7e0 commit f99ce7c

33 files changed

+323
-50
lines changed
 

‎CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

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

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

2829
<table>
2930
<tr>
31+
<th title="Current"><a href="doc/changelogs/CHANGELOG_V17.md">17</a><sup>Current</sup></th>
3032
<th title="Current"><a href="doc/changelogs/CHANGELOG_V16.md">16</a><sup>Current</sup></th>
3133
<th title="LTS Until 2023-04"><a href="doc/changelogs/CHANGELOG_V14.md">14</a><sup>LTS</sup></th>
3234
<th title="LTS Until 2022-04"><a href="doc/changelogs/CHANGELOG_V12.md">12</a><sup>LTS</sup></th>
3335
</tr>
3436
<tr>
37+
<td valign="top">
38+
<b><a href="doc/changelogs/CHANGELOG_V17.md#17.0.0">17.0.0</a></b><br/>
39+
</td>
3540
<td valign="top">
3641
<b><a href="doc/changelogs/CHANGELOG_V16.md#16.11.1">16.11.1</a></b><br/>
3742
<a href="doc/changelogs/CHANGELOG_V16.md#16.11.0">16.11.0</a><br/>

‎doc/abi_version_registry.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"NODE_MODULE_VERSION": [
3-
{ "modules": 102,"runtime": "node", "variant": "v8_9.5", "versions": "17.0.0-pre" },
3+
{ "modules": 102,"runtime": "node", "variant": "v8_9.5", "versions": "17.0.0" },
44
{ "modules": 101,"runtime": "electron", "variant": "electron", "versions": "17" },
55
{ "modules": 100,"runtime": "node", "variant": "v8_9.4", "versions": "17.0.0-pre" },
66
{ "modules": 99, "runtime": "electron", "variant": "electron", "versions": "16" },

‎doc/api/cli.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -623,7 +623,7 @@ Silence deprecation warnings.
623623

624624
### `--no-extra-info-on-fatal-exception`
625625
<!-- YAML
626-
added: REPLACEME
626+
added: v17.0.0
627627
-->
628628

629629
Hide extra information on fatal exception that causes exit.
@@ -672,7 +672,7 @@ against FIPS-enabled OpenSSL.
672672

673673
### `--openssl-legacy-provider`
674674
<!-- YAML
675-
added: REPLACEME
675+
added: v17.0.0
676676
-->
677677

678678
Enable OpenSSL 3.0 legacy provider. For more information please see

‎doc/api/deprecations.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -2707,7 +2707,7 @@ Use `fs.rm(path, { recursive: true, force: true })`,
27072707
### DEP0148: Folder mappings in `"exports"` (trailing `"/"`)
27082708
<!-- YAML
27092709
changes:
2710-
- version: REPLACEME
2710+
- version: v17.0.0
27112711
pr-url: https://github.com/nodejs/node/pull/40121
27122712
description: End-of-Life.
27132713
- version: v16.0.0
@@ -2795,7 +2795,7 @@ deprecated and should no longer be used.
27952795
### DEP0153: `dns.lookup` and `dnsPromises.lookup` options type coercion
27962796
<!-- YAML
27972797
changes:
2798-
- version: REPLACEME
2798+
- version: v17.0.0
27992799
pr-url: https://github.com/nodejs/node/pull/39793
28002800
description: Runtime deprecation.
28012801
- version: v16.8.0
@@ -2826,7 +2826,7 @@ and `'mgf1HashAlgorithm'`.
28262826
### DEP0155: Trailing slashes in pattern specifier resolutions
28272827
<!-- YAML
28282828
changes:
2829-
- version: REPLACEME
2829+
- version: v17.0.0
28302830
pr-url: https://github.com/nodejs/node/pull/40117
28312831
description: Runtime deprecation.
28322832
- version: v16.10.0
@@ -2843,7 +2843,7 @@ for package `"exports"` and `"imports"` pattern resolutions.
28432843
### DEP0156: `.aborted` property and `'abort'`, `'aborted'` event in `http`
28442844
<!-- YAML
28452845
changes:
2846-
- version: REPLACEME
2846+
- version: v17.0.0
28472847
pr-url: https://github.com/nodejs/node/pull/36670
28482848
description: Documentation-only deprecation.
28492849
-->

‎doc/api/dgram.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ if the socket is not connected.
468468
<!-- YAML
469469
added: v0.1.99
470470
changes:
471-
- version: REPLACEME
471+
- version: v17.0.0
472472
pr-url: https://github.com/nodejs/node/pull/39190
473473
description: The `address` parameter now only accepts a `string`, `null`
474474
or `undefined`.

‎doc/api/dns.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ section if a custom port is used.
172172
<!-- YAML
173173
added: v0.1.90
174174
changes:
175-
- version: REPLACEME
175+
- version: v17.0.0
176176
pr-url: https://github.com/nodejs/node/pull/39987
177177
description: The `verbatim` options defaults to `true` now.
178178
- version: v8.5.0

‎doc/api/esm.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
added: v8.5.0
99
changes:
1010
- version:
11-
- REPLACEME
11+
- v17.0.0
1212
pr-url: https://github.com/nodejs/node/pull/37468
1313
description:
1414
Consolidate loader hooks, removed `getFormat`, `getSource`,

‎doc/api/fs.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ number of bytes read is zero.
395395
396396
#### `filehandle.readableWebStream()`
397397
<!-- YAML
398-
added: REPLACEME
398+
added: v17.0.0
399399
-->
400400
401401
> Stability: 1 - Experimental

‎doc/api/globals.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ added: v0.0.1
383383

384384
## `DOMException`
385385
<!-- YAML
386-
added: REPLACEME
386+
added: v17.0.0
387387
-->
388388

389389
<!-- type=global -->

‎doc/api/http.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ body which has been transmitted are equal or not.
407407
### Event: `'abort'`
408408
<!-- YAML
409409
added: v1.4.1
410-
deprecated: REPLACEME
410+
deprecated: v17.0.0
411411
-->
412412

413413
> Stability: 0 - Deprecated. Listen for the `'close'` event instead.
@@ -648,7 +648,7 @@ in the response to be dropped and the socket to be destroyed.
648648
### `request.aborted`
649649
<!-- YAML
650650
added: v0.11.14
651-
deprecated: REPLACEME
651+
deprecated: v17.0.0
652652
changes:
653653
- version: v11.0.0
654654
pr-url: https://github.com/nodejs/node/pull/20230
@@ -1994,7 +1994,7 @@ may be reused multiple times in case of keep-alive.
19941994
### Event: `'aborted'`
19951995
<!-- YAML
19961996
added: v0.3.8
1997-
deprecated: REPLACEME
1997+
deprecated: v17.0.0
19981998
-->
19991999

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

20172017
> Stability: 0 - Deprecated. Check `message.destroyed` from {stream.Readable}.

‎doc/api/readline.md

+13-13
Original file line numberDiff line numberDiff line change
@@ -536,14 +536,14 @@ line prompts are included in the calculations.
536536

537537
## Promises API
538538
<!-- YAML
539-
added: REPLACEME
539+
added: v17.0.0
540540
-->
541541

542542
> Stability: 1 - Experimental
543543
544544
### Class: `readlinePromises.Interface`
545545
<!-- YAML
546-
added: REPLACEME
546+
added: v17.0.0
547547
-->
548548

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

557557
#### `rl.question(query[, options])`
558558
<!-- YAML
559-
added: REPLACEME
559+
added: v17.0.0
560560
-->
561561

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

603603
### Class: `readlinePromises.Readline`
604604
<!-- YAML
605-
added: REPLACEME
605+
added: v17.0.0
606606
-->
607607

608608
#### `new readlinePromises.Readline(stream[, options])`
609609
<!-- YAML
610-
added: REPLACEME
610+
added: v17.0.0
611611
-->
612612

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

617617
#### `rl.clearLine(dir)`
618618
<!-- YAML
619-
added: REPLACEME
619+
added: v17.0.0
620620
-->
621621

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

634634
#### `rl.clearScreenDown()`
635635
<!-- YAML
636-
added: REPLACEME
636+
added: v17.0.0
637637
-->
638638

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

647647
#### `rl.commit()`
648648
<!-- YAML
649-
added: REPLACEME
649+
added: v17.0.0
650650
-->
651651

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

657657
#### `rl.cursorTo(x[, y])`
658658
<!-- YAML
659-
added: REPLACEME
659+
added: v17.0.0
660660
-->
661661

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

671671
#### `rl.moveCursor(dx, dy)`
672672
<!-- YAML
673-
added: REPLACEME
673+
added: v17.0.0
674674
-->
675675

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

686686
#### `rl.rollback()`
687687
<!-- YAML
688-
added: REPLACEME
688+
added: v17.0.0
689689
-->
690690

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

696696
### `readlinePromises.createInterface(options)`
697697
<!-- YAML
698-
added: REPLACEME
698+
added: v17.0.0
699699
-->
700700

701701
* `options` {Object}
@@ -797,7 +797,7 @@ added: v0.1.104
797797
<!-- YAML
798798
added: v0.1.104
799799
changes:
800-
- version: REPLACEME
800+
- version: v17.0.0
801801
pr-url: https://github.com/nodejs/node/pull/37947
802802
description: The class `readline.Interface` now inherits from `Interface`.
803803
-->

‎doc/api/stream.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -2108,7 +2108,7 @@ Returns whether the stream has been read from or cancelled.
21082108

21092109
### `stream.Readable.toWeb(streamReadable)`
21102110
<!-- YAML
2111-
added: REPLACEME
2111+
added: v17.0.0
21122112
-->
21132113

21142114
> Stability: 1 - Experimental
@@ -2118,7 +2118,7 @@ added: REPLACEME
21182118

21192119
### `stream.Writable.fromWeb(writableStream[, options])`
21202120
<!-- YAML
2121-
added: REPLACEME
2121+
added: v17.0.0
21222122
-->
21232123

21242124
> Stability: 1 - Experimental
@@ -2133,7 +2133,7 @@ added: REPLACEME
21332133

21342134
### `stream.Writable.toWeb(streamWritable)`
21352135
<!-- YAML
2136-
added: REPLACEME
2136+
added: v17.0.0
21372137
-->
21382138

21392139
> Stability: 1 - Experimental
@@ -2171,7 +2171,7 @@ A utility method for creating duplex streams.
21712171

21722172
### `stream.Duplex.fromWeb(pair[, options])`
21732173
<!-- YAML
2174-
added: REPLACEME
2174+
added: v17.0.0
21752175
-->
21762176

21772177
> Stability: 1 - Experimental
@@ -2190,7 +2190,7 @@ added: REPLACEME
21902190

21912191
### `stream.Duplex.toWeb(streamDuplex)`
21922192
<!-- YAML
2193-
added: REPLACEME
2193+
added: v17.0.0
21942194
-->
21952195

21962196
> Stability: 1 - Experimental

‎doc/api/url.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1386,7 +1386,7 @@ forward-slash characters (`/`) are required following the colon in the
13861386
<!-- YAML
13871387
added: v0.1.25
13881388
changes:
1389-
- version: REPLACEME
1389+
- version: v17.0.0
13901390
pr-url: https://github.com/nodejs/node/pull/38631
13911391
description: Now throws an `ERR_INVALID_URL` exception when Punycode
13921392
conversion of a hostname introduces changes that could cause

‎doc/api/vm.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ executed in specific contexts.
5454
<!-- YAML
5555
added: v0.3.1
5656
changes:
57-
- version: REPLACEME
57+
- version: v17.0.0
5858
pr-url: https://github.com/nodejs/node/pull/40249
5959
description: Added support for import assertions to the
6060
`importModuleDynamically` parameter.
@@ -651,7 +651,7 @@ defined in the ECMAScript specification.
651651
### `new vm.SourceTextModule(code[, options])`
652652
<!-- YAML
653653
changes:
654-
- version: REPLACEME
654+
- version: v17.0.0
655655
pr-url: https://github.com/nodejs/node/pull/40249
656656
description: Added support for import assertions to the
657657
`importModuleDynamically` parameter.
@@ -869,7 +869,7 @@ const vm = require('vm');
869869
<!-- YAML
870870
added: v10.10.0
871871
changes:
872-
- version: REPLACEME
872+
- version: v17.0.0
873873
pr-url: https://github.com/nodejs/node/pull/40249
874874
description: Added support for import assertions to the
875875
`importModuleDynamically` parameter.
@@ -1092,7 +1092,7 @@ vm.measureMemory({ mode: 'detailed', execution: 'eager' })
10921092
<!-- YAML
10931093
added: v0.3.1
10941094
changes:
1095-
- version: REPLACEME
1095+
- version: v17.0.0
10961096
pr-url: https://github.com/nodejs/node/pull/40249
10971097
description: Added support for import assertions to the
10981098
`importModuleDynamically` parameter.
@@ -1176,7 +1176,7 @@ console.log(contextObject);
11761176
<!-- YAML
11771177
added: v0.3.1
11781178
changes:
1179-
- version: REPLACEME
1179+
- version: v17.0.0
11801180
pr-url: https://github.com/nodejs/node/pull/40249
11811181
description: Added support for import assertions to the
11821182
`importModuleDynamically` parameter.
@@ -1285,7 +1285,7 @@ console.log(contextObject);
12851285
<!-- YAML
12861286
added: v0.3.1
12871287
changes:
1288-
- version: REPLACEME
1288+
- version: v17.0.0
12891289
pr-url: https://github.com/nodejs/node/pull/40249
12901290
description: Added support for import assertions to the
12911291
`importModuleDynamically` parameter.

0 commit comments

Comments
 (0)