Skip to content

Commit

Permalink
2021-03-30, Version 12.22.0 'Erbium' (LTS)
Browse files Browse the repository at this point in the history
Notable changes

The legacy HTTP parser is runtime deprecated:
- The legacy HTTP parser, selected by the `--http-parser=legacy` command line
option, is deprecated with the pending End-of-Life of Node.js 10.x (where it
is the only HTTP parser implementation provided) at the end of April 2021. It
will now warn on use but otherwise continue to function and may be removed in
a future Node.js 12.x release.
- The default HTTP parser based on llhttp is not affected. By default it is
stricter than the now deprecated legacy HTTP parser. If interoperability with
HTTP implementations that send invalid HTTP headers is required, the HTTP
parser can be started in a less secure mode with the `--insecure-http-parser`
command line option.

ES Modules:
- ES Modules are now considered stable.

node-api:
- Updated to node-api version 8 and added an experimental API to allow
retrieval of the add-on file name.

New API's to control code coverage data collection:
- `v8.stopCoverage()` and `v8.takeCoverage()` have been added.

New API to monitor event loop utilization by Worker threads
- `worker.performance.eventLoopUtilization()` has been added.

PR-URL: #37797
  • Loading branch information
richardlau committed Mar 19, 2021
1 parent 93dd799 commit e91a165
Show file tree
Hide file tree
Showing 9 changed files with 76 additions and 12 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Expand Up @@ -28,7 +28,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V12.md#12.21.0">12.21.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V12.md#12.22.0">12.22.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.21.0">12.21.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.20.2">12.20.2</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.20.1">12.20.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.20.0">12.20.0</a><br/>
Expand Down
2 changes: 1 addition & 1 deletion doc/api/cli.md
Expand Up @@ -384,7 +384,7 @@ Specify the file name of the heap profile generated by `--heap-prof`.
<!-- YAML
added: v11.4.0
changes:
- version: REPLACEME
- version: v12.22.0
pr-url: https://github.com/nodejs/node/pull/37603
description: The legacy HTTP parser will emit a deprecation warning.
-->
Expand Down
2 changes: 1 addition & 1 deletion doc/api/deprecations.md
Expand Up @@ -2469,7 +2469,7 @@ Module.createRequireFromPath() is deprecated. Please use [`module.createRequire(
### DEP0131: Legacy HTTP parser
<!-- YAML
changes:
- version: REPLACEME
- version: v12.22.0
pr-url: https://github.com/nodejs/node/pull/37603
description: Runtime deprecation.
- version: v12.3.0
Expand Down
2 changes: 1 addition & 1 deletion doc/api/esm.md
Expand Up @@ -6,7 +6,7 @@
added: v8.5.0
changes:
- version:
- REPLACEME
- v12.22.0
pr-url: https://github.com/nodejs/node/pull/35781
description: Stabilize modules implementation.
- version:
Expand Down
2 changes: 1 addition & 1 deletion doc/api/n-api.md
Expand Up @@ -5790,7 +5790,7 @@ This API may only be called from the main thread.
## node_api_get_module_file_name

<!-- YAML
added: REPLACEME
added: v12.22.0
-->

> Stability: 1 - Experimental
Expand Down
4 changes: 2 additions & 2 deletions doc/api/v8.md
Expand Up @@ -217,7 +217,7 @@ setTimeout(() => { v8.setFlagsFromString('--notrace_gc'); }, 60e3);
## `v8.takeCoverage()`

<!-- YAML
added: REPLACEME
added: v12.22.0
-->

The `v8.takeCoverage()` method allows the user to write the coverage started by
Expand All @@ -232,7 +232,7 @@ disk, unless [`v8.stopCoverage()`][] is invoked before the process exits.
## `v8.stopCoverage()`

<!-- YAML
added: REPLACEME
added: v12.22.0
-->

The `v8.stopCoverage()` method allows the user to stop the coverage collection
Expand Down
4 changes: 2 additions & 2 deletions doc/api/worker_threads.md
Expand Up @@ -769,15 +769,15 @@ immediately with an [`ERR_WORKER_NOT_RUNNING`][] error.

### `worker.performance`
<!-- YAML
added: REPLACEME
added: v12.22.0
-->

An object that can be used to query performance information from a worker
instance. Similar to [`perf_hooks.performance`][].

#### `performance.eventLoopUtilization([utilization1[, utilization2]])`
<!-- YAML
added: REPLACEME
added: v12.22.0
-->

* `utilization1` {Object} The result of a previous call to
Expand Down
63 changes: 63 additions & 0 deletions doc/changelogs/CHANGELOG_V12.md
Expand Up @@ -11,6 +11,7 @@
</tr>
<tr>
<td valign="top">
<a href="#12.22.0">12.22.0</a><br/>
<a href="#12.21.0">12.21.0</a><br/>
<a href="#12.20.2">12.20.2</a><br/>
<a href="#12.20.1">12.20.1</a><br/>
Expand Down Expand Up @@ -69,6 +70,68 @@
* [io.js](CHANGELOG_IOJS.md)
* [Archive](CHANGELOG_ARCHIVE.md)

<a id="12.22.0"></a>
## 2021-03-30, Version 12.22.0 'Erbium' (LTS), @richardlau

### Notable changes

#### The legacy HTTP parser is runtime deprecated

The legacy HTTP parser, selected by the `--http-parser=legacy` command line
option, is deprecated with the pending End-of-Life of Node.js 10.x (where it
is the only HTTP parser implementation provided) at the end of April 2021. It
will now warn on use but otherwise continue to function and may be removed in
a future Node.js 12.x release.

The default HTTP parser based on llhttp is not affected. By default it is
stricter than the now deprecated legacy HTTP parser. If interoperability with
HTTP implementations that send invalid HTTP headers is required, the HTTP
parser can be started in a less secure mode with the
[`--insecure-http-parser`](https://nodejs.org/docs/latest-v12.x/api/cli.html#cli_insecure_http_parser)
command line option.

Contributed by Beth Griggs [#37603](https://github.com/nodejs/node/pull/37603).

#### ES Modules

ES Modules are now considered stable.

Contributed by Guy Bedford [#35781](https://github.com/nodejs/node/pull/35781)

#### node-api

Updated to node-api version 8 and added an experimental API to allow retrieval of the add-on file name.

Contributed by Gabriel Schulhof [#37652](https://github.com/nodejs/node/pull/37652) and [#37195](https://github.com/nodejs/node/pull/37195).

#### New API's to control code coverage data collection

`v8.stopCoverage()` and `v8.takeCoverage()` have been added.

Contributed by Joyee Cheung [#33807](https://github.com/nodejs/node/pull/33807).

#### New API to monitor event loop utilization by Worker threads

`worker.performance.eventLoopUtilization()` has been added.

Contributed by Trevor Norris [#35664](https://github.com/nodejs/node/pull/35664).

### Commits

* [[`1872625990`](https://github.com/nodejs/node/commit/1872625990)] - **(SEMVER-MINOR)** **deps**: update to cjs-module-lexer@1.1.0 (Guy Bedford) [#37712](https://github.com/nodejs/node/pull/37712)
* [[`dfa04d9035`](https://github.com/nodejs/node/commit/dfa04d9035)] - **deps**: V8: cherry-pick beebee4f80ff (Peter Marshall) [#37293](https://github.com/nodejs/node/pull/37293)
* [[`bf8733fe22`](https://github.com/nodejs/node/commit/bf8733fe22)] - **doc**: mark modules implementation as stable (Guy Bedford) [#35781](https://github.com/nodejs/node/pull/35781)
* [[`0a35d49f56`](https://github.com/nodejs/node/commit/0a35d49f56)] - ***Revert*** "**embedding**: make Stop() stop Workers" (Anna Henningsen) [#32623](https://github.com/nodejs/node/pull/32623)
* [[`a0b610450a`](https://github.com/nodejs/node/commit/a0b610450a)] - **(SEMVER-MINOR)** **http**: runtime deprecate legacy HTTP parser (Beth Griggs) [#37603](https://github.com/nodejs/node/pull/37603)
* [[`93dd799a86`](https://github.com/nodejs/node/commit/93dd799a86)] - **(SEMVER-MINOR)** **node-api**: define version 8 (Gabriel Schulhof) [#37652](https://github.com/nodejs/node/pull/37652)
* [[`f5692093d3`](https://github.com/nodejs/node/commit/f5692093d3)] - **(SEMVER-MINOR)** **node-api**: allow retrieval of add-on file name (Gabriel Schulhof) [#37195](https://github.com/nodejs/node/pull/37195)
* [[`6cef0e3678`](https://github.com/nodejs/node/commit/6cef0e3678)] - **src,test**: add regression test for nested Worker termination (Anna Henningsen) [#32623](https://github.com/nodejs/node/pull/32623)
* [[`d7a4ccdf09`](https://github.com/nodejs/node/commit/d7a4ccdf09)] - **test**: correct test-worker-eventlooputil (Gerhard Stoebich) [#35891](https://github.com/nodejs/node/pull/35891)
* [[`0f6d44500c`](https://github.com/nodejs/node/commit/0f6d44500c)] - **test**: add cpu-profiler-crash test (Santiago Gimeno) [#37293](https://github.com/nodejs/node/pull/37293)
* [[`86f34ee18c`](https://github.com/nodejs/node/commit/86f34ee18c)] - **(SEMVER-MINOR)** **v8**: implement v8.stopCoverage() (Joyee Cheung) [#33807](https://github.com/nodejs/node/pull/33807)
* [[`8ddea3f16d`](https://github.com/nodejs/node/commit/8ddea3f16d)] - **(SEMVER-MINOR)** **v8**: implement v8.takeCoverage() (Joyee Cheung) [#33807](https://github.com/nodejs/node/pull/33807)
* [[`eec7542781`](https://github.com/nodejs/node/commit/eec7542781)] - **(SEMVER-MINOR)** **worker**: add eventLoopUtilization() (Trevor Norris) [#35664](https://github.com/nodejs/node/pull/35664)

<a id="12.21.0"></a>
## 2021-02-23, Version 12.21.0 'Erbium' (LTS), @richardlau

Expand Down
6 changes: 3 additions & 3 deletions src/node_version.h
Expand Up @@ -23,13 +23,13 @@
#define SRC_NODE_VERSION_H_

#define NODE_MAJOR_VERSION 12
#define NODE_MINOR_VERSION 21
#define NODE_PATCH_VERSION 1
#define NODE_MINOR_VERSION 22
#define NODE_PATCH_VERSION 0

#define NODE_VERSION_IS_LTS 1
#define NODE_VERSION_LTS_CODENAME "Erbium"

#define NODE_VERSION_IS_RELEASE 0
#define NODE_VERSION_IS_RELEASE 1

#ifndef NODE_STRINGIFY
#define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)
Expand Down

0 comments on commit e91a165

Please sign in to comment.