Skip to content

Commit

Permalink
2020-04-21, Version 14.0.0 (Current)
Browse files Browse the repository at this point in the history
Deprecations:

- (SEMVER-MAJOR) crypto: move pbkdf2 without digest to EOL
  (James M Snell) [#31166](#31166)
- (SEMVER-MAJOR) fs: deprecate closing FileHandle on garbage collection
  (James M Snell) [#28396](#28396)
- (SEMVER-MAJOR) http: move OutboundMessage.prototype.flush to EOL
  (James M Snell) [#31164](#31164)
- (SEMVER-MAJOR) lib: move GLOBAL and root aliases to EOL
  (James M Snell) [#31167](#31167)
- (SEMVER-MAJOR) os: move tmpDir() to EOL
  (James M Snell)[#31169](#31169)
- (SEMVER-MAJOR) src: remove deprecated wasm type check
  (Clemens Backes) [#32116](#32116)
- (SEMVER-MAJOR) stream: move \_writableState.buffer to EOL
  (James M Snell) [#31165](#31165)
- (SEMVER-MINOR) doc: deprecate process.mainModule
  (Antoine du HAMEL) [#32232](#32232)
- (SEMVER-MINOR) doc: deprecate process.umask() with no arguments
  (Colin Ihrig) [#32499](#32499)

ECMAScript Modules - Experimental Warning Removal:

- module: remove experimental modules warning
  (Guy Bedford) [#31974](#31974)

In Node.js 13 we removed the need to include the --experimental-modules
flag, but when running EcmaScript Modules in Node.js, this would still
result in a warning ExperimentalWarning: The ESM module loader is
experimental.

As of Node.js 14 there is no longer this warning when using ESM in
Node.js. However, the ESM implementation in Node.js remains
experimental. As per our stability index: “The feature is not subject
to Semantic Versioning rules. Non-backward compatible changes or
removal may occur in any future release.” Users should be cautious when
using the feature in production environments.

Please keep in mind that the implementation of ESM in Node.js differs
from the developer experience you might be familiar with. Most
transpilation workflows support features such as optional file
extensions or JSON modules that the Node.js ESM implementation does not
support. It is highly likely that modules from transpiled environments
will require a certain degree of refactoring to work in Node.js. It is
worth mentioning that many of our design decisions were made with two
primary goals. Spec compliance and Web Compatibility. It is our belief
that the current implementation offers a future proof model to
authoring ESM modules that paves the path to Universal JavaScript.
Please read more in our documentation.

The ESM implementation in Node.js is still experimental but we do believe
that we are getting very close to being able to call ESM in Node.js
“stable”. Removing the warning is a huge step in that direction.

New V8 ArrayBuffer API:

* **src**: migrate to new V8 ArrayBuffer API
  (Thang Tran) [#30782](#30782)

Multiple ArrayBuffers pointing to the same base address are no longer
allowed by V8. This may impact native addons.

Toolchain and Compiler Upgrades:

- (SEMVER-MAJOR) build: update macos deployment target to 10.13 for 14.x
  (AshCripps)[#32454](#32454)
- (SEMVER-MAJOR) doc: update cross compiler machine for Linux armv7
  (Richard Lau) [#32812](#32812)
- (SEMVER-MAJOR) doc: update Centos/RHEL releases use devtoolset-8
  (Richard Lau) [#32812](#32812)
- (SEMVER-MAJOR) doc: remove SmartOS from official binaries
  (Richard Lau) [#32812](#32812)
- (SEMVER-MAJOR) win: block running on EOL Windows versions
  (João Reis) [#31954](#31954)

It is expected that there will be an ABI mismatch on ARM between the
Node.js binary and native addons. Native addons are only broken if they
interact with `std::shared_ptr`. This is expected to be fixed in a
later version of Node.js 14.
- [#30786](#30786)

Update to V8 8.1:

- (SEMVER-MAJOR) deps: update V8 to 8.1.307.20
  (Matheus Marchini) [#32116](#32116)

Other Notable Changes:

- cli, report: move --report-on-fatalerror to stable
  (Colin Ihrig) [#32496](#32496)
- deps: upgrade to libuv 1.37.0
  (Colin Ihrig) [#32866](#32866)
- fs: add fs/promises alias module
  (Gus Caplan) [#31553](#31553)

PR-URL: #32181
  • Loading branch information
BethGriggs committed Apr 21, 2020
1 parent 1a1ce93 commit 73aa216
Show file tree
Hide file tree
Showing 31 changed files with 380 additions and 49 deletions.
7 changes: 6 additions & 1 deletion 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 14](doc/changelogs/CHANGELOG_V14.md) **Current**
* [Node.js 13](doc/changelogs/CHANGELOG_V13.md) **Current**
* [Node.js 12](doc/changelogs/CHANGELOG_V12.md) **Long Term Support**
* [Node.js 11](doc/changelogs/CHANGELOG_V11.md) End-of-Life
Expand All @@ -23,12 +24,16 @@ release.
<!--lint disable maximum-line-length-->
<table>
<tr>
<th title="Current"><a href="doc/changelogs/CHANGELOG_V14.md">14</a><sup>Current</sup></th>
<th title="Current"><a href="doc/changelogs/CHANGELOG_V13.md">13</a><sup>Current</sup></th>
<th title="LTS Until 2022-04"><a href="doc/changelogs/CHANGELOG_V12.md">12</a><sup>LTS</sup></th>
<th title="LTS Until 2021-04"><a href="doc/changelogs/CHANGELOG_V10.md">10</a><sup>LTS</sup></th>
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V14.md#14.0.0">14.0.0</a></b><br/>
</td>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V13.md#13.12.0">13.12.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V13.md#13.11.0">13.11.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V13.md#13.10.1">13.10.1</a><br/>
Expand All @@ -47,7 +52,7 @@ release.
</td>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V12.md#12.16.2">12.16.2</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.16.1">12.16.1</a><<br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.16.1">12.16.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.16.0">12.16.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.15.0">12.15.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.14.1">12.14.1</a><br/>
Expand Down
8 changes: 4 additions & 4 deletions doc/api/assert.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ An alias of [`assert.ok()`][].
<!-- YAML
added: v0.1.21
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/30766
description: NaN is now treated as being identical in case both sides are
NaN.
Expand Down Expand Up @@ -597,7 +597,7 @@ assert.doesNotThrow(
<!-- YAML
added: v0.1.21
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/30766
description: NaN is now treated as being identical in case both sides are
NaN.
Expand Down Expand Up @@ -818,7 +818,7 @@ instance of an [`Error`][] then it will be thrown instead of the
<!-- YAML
added: v0.1.21
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/30766
description: NaN is now treated as being identical in case both sides are
NaN.
Expand Down Expand Up @@ -944,7 +944,7 @@ instead of the [`AssertionError`][].
<!-- YAML
added: v0.1.21
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/30766
description: NaN is now treated as being identical in case both sides are
NaN.
Expand Down
2 changes: 1 addition & 1 deletion doc/api/child_process.md
Original file line number Diff line number Diff line change
Expand Up @@ -1027,7 +1027,7 @@ See [Advanced Serialization][] for more details.
<!-- YAML
added: v7.1.0
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/30165
description: The object no longer accidentally exposes native C++ bindings.
-->
Expand Down
4 changes: 2 additions & 2 deletions doc/api/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,7 @@ disappear in a non-semver-major release.
<!-- YAML
added: v11.6.0
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/32520
description: Change maximum default size of HTTP headers from 8KB to 16KB.
-->
Expand Down Expand Up @@ -648,7 +648,7 @@ Name of the file to which the report will be written.
<!-- YAML
added: v11.8.0
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/32496
description: This option is no longer considered experimental.
- version: v12.0.0
Expand Down
4 changes: 2 additions & 2 deletions doc/api/crypto.md
Original file line number Diff line number Diff line change
Expand Up @@ -2329,7 +2329,7 @@ console.log(hashes); // ['DSA', 'DSA-SHA', 'DSA-SHA1', ...]
<!-- YAML
added: v0.5.5
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/30578
description: The `iterations` parameter is now restricted to positive
values. Earlier releases treated other values as one.
Expand Down Expand Up @@ -2408,7 +2408,7 @@ negative performance implications for some applications; see the
<!-- YAML
added: v0.9.3
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/30578
description: The `iterations` parameter is now restricted to positive
values. Earlier releases treated other values as one.
Expand Down
20 changes: 10 additions & 10 deletions doc/api/deprecations.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ However, the deprecation identifier will not be modified.
### DEP0001: `http.OutgoingMessage.prototype.flush`
<!-- YAML
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/31164
description: End-of-Life.
- version:
Expand Down Expand Up @@ -85,7 +85,7 @@ The `_linklist` module is deprecated. Please use a userland alternative.
### DEP0003: `_writableState.buffer`
<!-- YAML
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/31165
description: End-of-Life
- version:
Expand Down Expand Up @@ -239,7 +239,7 @@ to the `constants` property exposed by the relevant module. For instance,
### DEP0009: `crypto.pbkdf2` without digest
<!-- YAML
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/31166
description: End-of-Life (for `digest === null`)
- version: v11.0.0
Expand Down Expand Up @@ -407,7 +407,7 @@ The [`fs.readSync()`][] legacy `String` interface is deprecated. Use the
### DEP0016: `GLOBAL`/`root`
<!-- YAML
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/31167
description: End-of-Life
- version: v6.12.0
Expand Down Expand Up @@ -522,7 +522,7 @@ The `Server.listenFD()` method was deprecated and removed. Please use
### DEP0022: `os.tmpDir()`
<!-- YAML
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/31169
description: End-of-Life.
- version: v7.0.0
Expand Down Expand Up @@ -2590,7 +2590,7 @@ To maintain existing behaviour `response.finished` should be replaced with
### DEP0137: Closing fs.FileHandle on garbage collection
<!-- YAML
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/28396
description: Runtime deprecation.
-->
Expand Down Expand Up @@ -2621,7 +2621,7 @@ async function openAndClose() {
### DEP0138: `process.mainModule`
<!-- YAML
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/32232
description: Documentation-only deprecation.
-->
Expand All @@ -2635,11 +2635,11 @@ modules is unsupported.
It is deprecated in favor of [`require.main`][], because it serves the same
purpose and is only available on CommonJS environment.
<a id="DEP0XXX"></a>
### DEP0XXX: `process.umask()` with no arguments
<a id="DEP0139"></a>
### DEP0139: `process.umask()` with no arguments
<!-- YAML
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/32499
description: Documentation-only deprecation.
-->
Expand Down
2 changes: 1 addition & 1 deletion doc/api/dns.md
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ is not set to `true`, it returns a `Promise` for an `Object` with `address` and
### Supported getaddrinfo flags
<!-- YAML
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/32183
description: Added support for the `dns.ALL` flag.
-->
Expand Down
2 changes: 1 addition & 1 deletion doc/api/embedding.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# C++ Embedder API

<!--introduced_in=REPLACEME-->
<!--introduced_in=v14.0.0-->

Node.js provides a number of C++ APIs that can be used to execute JavaScript
in a Node.js environment from other C++ software.
Expand Down
2 changes: 1 addition & 1 deletion doc/api/errors.md
Original file line number Diff line number Diff line change
Expand Up @@ -2307,7 +2307,7 @@ The `repl` module was unable to parse data from the REPL history file.
### `ERR_SOCKET_CANNOT_SEND`
<!-- YAML
added: v9.0.0
removed: REPLACEME
removed: v14.0.0
-->

Data could be sent on a socket.
Expand Down
30 changes: 15 additions & 15 deletions doc/api/fs.md
Original file line number Diff line number Diff line change
Expand Up @@ -3071,9 +3071,9 @@ this API: [`fs.read()`][].

## `fs.readSync(fd, buffer, [options])`
<!-- YAML
added: REPLACEME
added: v14.0.0
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/32460
description: Options object can be passed in
to make offset, length and position optional
Expand All @@ -3097,7 +3097,7 @@ this API: [`fs.read()`][].

## `fs.readv(fd, buffers[, position], callback)`
<!-- YAML
added: REPLACEME
added: v14.0.0
-->

* `fd` {integer}
Expand All @@ -3120,7 +3120,7 @@ The callback will be given three arguments: `err`, `bytesRead`, and

## `fs.readvSync(fd, buffers[, position])`
<!-- YAML
added: REPLACEME
added: v14.0.0
-->

* `fd` {integer}
Expand Down Expand Up @@ -3997,7 +3997,7 @@ This happens when:
<!-- YAML
added: v0.0.2
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/31030
description: The `buffer` parameter won't coerce unsupported input to
strings anymore.
Expand Down Expand Up @@ -4058,7 +4058,7 @@ the end of the file.
<!-- YAML
added: v0.11.5
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/31030
description: The `string` parameter won't coerce unsupported input to
strings anymore.
Expand Down Expand Up @@ -4117,7 +4117,7 @@ details.
<!-- YAML
added: v0.1.29
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/31030
description: The `data` parameter won't coerce unsupported input to
strings anymore.
Expand Down Expand Up @@ -4207,7 +4207,7 @@ to contain only `', World'`.
<!-- YAML
added: v0.1.29
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/31030
description: The `data` parameter won't coerce unsupported input to
strings anymore.
Expand Down Expand Up @@ -4239,7 +4239,7 @@ this API: [`fs.writeFile()`][].
<!-- YAML
added: v0.1.21
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/31030
description: The `buffer` parameter won't coerce unsupported input to
strings anymore.
Expand Down Expand Up @@ -4269,7 +4269,7 @@ this API: [`fs.write(fd, buffer...)`][].
<!-- YAML
added: v0.11.5
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/31030
description: The `string` parameter won't coerce unsupported input to
strings anymore.
Expand Down Expand Up @@ -4509,7 +4509,7 @@ of the file.

#### `filehandle.readv(buffers[, position])`
<!-- YAML
added: REPLACEME
added: v14.0.0
-->

* `buffers` {ArrayBufferView[]}
Expand Down Expand Up @@ -4641,7 +4641,7 @@ This function does not work on AIX versions before 7.1, it will resolve the
<!-- YAML
added: v10.0.0
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/31030
description: The `buffer` parameter won't coerce unsupported input to
buffers anymore.
Expand Down Expand Up @@ -4678,7 +4678,7 @@ the end of the file.
<!-- YAML
added: v10.0.0
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/31030
description: The `string` parameter won't coerce unsupported input to
strings anymore.
Expand Down Expand Up @@ -4714,7 +4714,7 @@ the end of the file.
<!-- YAML
added: v10.0.0
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/31030
description: The `data` parameter won't coerce unsupported input to
strings anymore.
Expand Down Expand Up @@ -5319,7 +5319,7 @@ The `atime` and `mtime` arguments follow these rules:
<!-- YAML
added: v10.0.0
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/31030
description: The `data` parameter won't coerce unsupported input to
strings anymore.
Expand Down
2 changes: 1 addition & 1 deletion doc/api/perf_hooks.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ to mark specific significant moments in the Performance Timeline.
<!-- YAML
added: v8.5.0
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/32651
description: Make `startMark` and `endMark` parameters optional.
-->
Expand Down
6 changes: 3 additions & 3 deletions doc/api/process.md
Original file line number Diff line number Diff line change
Expand Up @@ -665,7 +665,7 @@ $ bash -c 'exec -a customArgv0 ./node'
<!-- YAML
added: v7.1.0
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/30165
description: The object no longer accidentally exposes native C++ bindings.
-->
Expand Down Expand Up @@ -1499,7 +1499,7 @@ debugger. See [Signal Events][].
## `process.mainModule`
<!-- YAML
added: v0.1.17
deprecated: REPLACEME
deprecated: v14.0.0
-->

> Stability: 0 - Deprecated: Use [`require.main`][] instead.
Expand Down Expand Up @@ -2427,7 +2427,7 @@ flag's behavior.
<!-- YAML
added: v0.1.19
changes:
- version: REPLACEME
- version: v14.0.0
pr-url: https://github.com/nodejs/node/pull/32499
description: Calling `process.umask()` with no arguments is deprecated.
Expand Down
Loading

0 comments on commit 73aa216

Please sign in to comment.