diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6a0c7c5ec485a6..75893626c92314 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -76,7 +76,8 @@ release.
14.0.0
-12.21.0
+12.22.0
+12.21.0
12.20.2
12.20.1
12.20.0
diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md
index b41ec032904f4f..0d66b2c4af72e8 100644
--- a/doc/api/deprecations.md
+++ b/doc/api/deprecations.md
@@ -2410,6 +2410,9 @@ changes:
- version: v13.0.0
pr-url: https://github.com/nodejs/node/pull/29589
description: This feature has been removed.
+ - version: v12.22.0
+ pr-url: https://github.com/nodejs/node/pull/37603
+ description: Runtime deprecation.
- version: v12.3.0
pr-url: https://github.com/nodejs/node/pull/27498
description: Documentation-only.
diff --git a/doc/api/esm.md b/doc/api/esm.md
index 73c72855b1fb18..fff9257b1bc4f6 100644
--- a/doc/api/esm.md
+++ b/doc/api/esm.md
@@ -7,6 +7,7 @@ added: v8.5.0
changes:
- version:
- v15.3.0
+ - v12.22.0
pr-url: https://github.com/nodejs/node/pull/35781
description: Stabilize modules implementation.
- version:
diff --git a/doc/api/n-api.md b/doc/api/n-api.md
index ad96dcae760c80..01e365ac050183 100644
--- a/doc/api/n-api.md
+++ b/doc/api/n-api.md
@@ -5957,7 +5957,9 @@ This API may only be called from the main thread.
## node_api_get_module_file_name
> Stability: 1 - Experimental
diff --git a/doc/api/v8.md b/doc/api/v8.md
index ac2498a16f6fe9..41e4c7456284ca 100644
--- a/doc/api/v8.md
+++ b/doc/api/v8.md
@@ -226,7 +226,9 @@ setTimeout(() => { v8.setFlagsFromString('--notrace_gc'); }, 60e3);
## `v8.takeCoverage()`
The `v8.takeCoverage()` method allows the user to write the coverage started by
@@ -241,7 +243,9 @@ disk unless [`v8.stopCoverage()`][] is invoked before the process exits.
## `v8.stopCoverage()`
The `v8.stopCoverage()` method allows the user to stop the coverage collection
diff --git a/doc/api/worker_threads.md b/doc/api/worker_threads.md
index 417d4594654705..47d2f7f440997c 100644
--- a/doc/api/worker_threads.md
+++ b/doc/api/worker_threads.md
@@ -1009,7 +1009,9 @@ immediately with an [`ERR_WORKER_NOT_RUNNING`][] error.
### `worker.performance`
An object that can be used to query performance information from a worker
@@ -1017,7 +1019,9 @@ instance. Similar to [`perf_hooks.performance`][].
#### `performance.eventLoopUtilization([utilization1[, utilization2]])`
* `utilization1` {Object} The result of a previous call to
diff --git a/doc/changelogs/CHANGELOG_V12.md b/doc/changelogs/CHANGELOG_V12.md
index dc12d7cd5337b3..e1a062a8584d8c 100644
--- a/doc/changelogs/CHANGELOG_V12.md
+++ b/doc/changelogs/CHANGELOG_V12.md
@@ -11,6 +11,7 @@
|
+12.22.0
12.21.0
12.20.2
12.20.1
@@ -72,6 +73,71 @@
* [io.js](CHANGELOG_IOJS.md)
* [Archive](CHANGELOG_ARCHIVE.md)
+
+## 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)
+* [[`2da24ac302`](https://github.com/nodejs/node/commit/2da24ac302)] - **lib**: add URI handling functions to primordials (Antoine du Hamel) [#37394](https://github.com/nodejs/node/pull/37394)
+* [[`7b0ed4ba92`](https://github.com/nodejs/node/commit/7b0ed4ba92)] - **module**: improve support of data: URLs (Antoine du Hamel) [#37392](https://github.com/nodejs/node/pull/37392)
+* [[`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)
+* [[`364bf03a68`](https://github.com/nodejs/node/commit/364bf03a68)] - **test**: fix races in test-performance-eventlooputil (Gerhard Stoebich) [#36028](https://github.com/nodejs/node/pull/36028)
+* [[`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)
+
## 2021-02-23, Version 12.21.0 'Erbium' (LTS), @richardlau
|