diff --git a/Makefile b/Makefile
index 7230fc14e0b..7b2cc32a2e0 100644
--- a/Makefile
+++ b/Makefile
@@ -1056,15 +1056,18 @@ lint-md-clean:
$(RM) -r tools/remark-preset-lint-node/node_modules
$(RM) tools/.*mdlintstamp
-.PHONY: lint-md-build
-lint-md-build:
- @if [ ! -d tools/remark-cli/node_modules ]; then \
- echo "Markdown linter: installing remark-cli into tools/"; \
- cd tools/remark-cli && $(call available-node,$(run-npm-install)) fi
- @if [ ! -d tools/remark-preset-lint-node/node_modules ]; then \
- echo "Markdown linter: installing remark-preset-lint-node into tools/"; \
- cd tools/remark-preset-lint-node && $(call available-node,$(run-npm-install)) fi
+tools/remark-cli/node_modules: tools/remark-cli/package.json
+ @echo "Markdown linter: installing remark-cli into tools/"
+ @cd tools/remark-cli && $(call available-node,$(run-npm-install))
+
+tools/remark-preset-lint-node/node_modules: \
+ tools/remark-preset-lint-node/package.json
+ @echo "Markdown linter: installing remark-preset-lint-node into tools/"
+ @cd tools/remark-preset-lint-node && $(call available-node,$(run-npm-install))
+.PHONY: lint-md-build
+lint-md-build: tools/remark-cli/node_modules \
+ tools/remark-preset-lint-node/node_modules
.PHONY: lint-md
ifneq ("","$(wildcard tools/remark-cli/node_modules/)")
diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md
index 0259bd4625c..651e5d1cf98 100644
--- a/doc/api/deprecations.md
+++ b/doc/api/deprecations.md
@@ -162,9 +162,10 @@ explicitly via error event handlers set on the domain instead.
### DEP0013: fs asynchronous function without callback
-Type: Runtime
+Type: End-of-Life
-Calling an asynchronous function without a callback is deprecated.
+Calling an asynchronous function without a callback throws a `TypeError`
+REPLACEME onwards. Refer: [PR 12562](https://github.com/nodejs/node/pull/12562)
### DEP0014: fs.read legacy String interface
@@ -882,7 +883,7 @@ Type: Runtime
Users of `MakeCallback` that add the `domain` property to carry context,
should start using the `async_context` variant of `MakeCallback` or
-`CallbackScope`, or the the high-level `AsyncResource` class.
+`CallbackScope`, or the high-level `AsyncResource` class.
### DEP0098: AsyncHooks Embedder AsyncResource.emit{Before,After} APIs
diff --git a/doc/api/fs.md b/doc/api/fs.md
index e5ffae410a9..f33bbe47851 100644
--- a/doc/api/fs.md
+++ b/doc/api/fs.md
@@ -819,10 +819,14 @@ try {
* `path` {string|Buffer|URL}
@@ -1018,6 +1026,10 @@ See also: chmod(2)
* `path` {string|Buffer|URL}
@@ -1062,10 +1074,14 @@ See also: chown(2)
* `fd` {integer}
@@ -1444,10 +1460,14 @@ a callback.)
* `fd` {integer}
@@ -1472,10 +1492,14 @@ Synchronous fchmod(2). Returns `undefined`.
* `fd` {integer}
@@ -1502,10 +1526,14 @@ Synchronous fchown(2). Returns `undefined`.
* `fd` {integer}
@@ -1528,10 +1556,14 @@ Synchronous fdatasync(2). Returns `undefined`.
* `fd` {integer}
@@ -1557,10 +1589,14 @@ Synchronous fstat(2). Returns an instance of [`fs.Stats`][].
* `fd` {integer}
@@ -1583,10 +1619,14 @@ Synchronous fsync(2). Returns `undefined`.
* `fd` {integer}
@@ -1652,10 +1692,14 @@ Synchronous ftruncate(2). Returns `undefined`.
* `path` {string|Buffer|URL}
@@ -1724,10 +1772,14 @@ Synchronous lchmod(2). Returns `undefined`.
* `path` {string|Buffer|URL}
@@ -1754,6 +1806,10 @@ Synchronous lchown(2). Returns `undefined`.
* `existingPath` {string|Buffer|URL}
@@ -1793,6 +1849,10 @@ Synchronous link(2). Returns `undefined`.
* `path` {string|Buffer|URL}
@@ -1832,6 +1892,10 @@ Synchronous lstat(2). Returns an instance of [`fs.Stats`][].
* `path` {string|Buffer|URL}
@@ -1874,10 +1938,14 @@ See also: mkdir(2)
* `path` {string|Buffer|URL}
@@ -2365,6 +2445,10 @@ Synchronous version of [`fs.read()`][]. Returns the number of `bytesRead`.
* `oldPath` {string|Buffer|URL}
@@ -2557,6 +2645,10 @@ Synchronous rename(2). Returns `undefined`.
* `path` {string|Buffer|URL}
@@ -2598,6 +2690,10 @@ on Windows and an `ENOTDIR` error on POSIX.
* `path` {string|Buffer|URL}
@@ -2694,10 +2790,14 @@ Synchronous symlink(2). Returns `undefined`.
* `path` {string|Buffer|URL}
@@ -2730,6 +2830,10 @@ in the future.
* `path` {string|Buffer|URL}
@@ -2798,6 +2902,10 @@ and `fs.unwatchFile()` when possible.
* `fd` {integer}
@@ -3080,13 +3192,17 @@ the end of the file.
* `fd` {integer}
@@ -3127,13 +3243,17 @@ the end of the file.