From 60f19bc0894eb20f9e525c27b561ef322039382a Mon Sep 17 00:00:00 2001 From: lilianakatrina684-a11y Date: Tue, 31 Mar 2026 06:34:32 -0600 Subject: [PATCH 1/3] doc: fix 'transfered' typo in quic.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/62492 Reviewed-By: Luigi Pinca Reviewed-By: Michaël Zasso --- doc/api/quic.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/quic.md b/doc/api/quic.md index b23a46108b8508..5fc54450bc7b7f 100644 --- a/doc/api/quic.md +++ b/doc/api/quic.md @@ -519,7 +519,7 @@ added: v23.8.0 Sends an unreliable datagram to the remote peer, returning the datagram ID. If the datagram payload is specified as an `ArrayBufferView`, then ownership of -that view will be transfered to the underlying stream. +that view will be transferred to the underlying stream. ### `session.stats` From f92c61fae23743a07f313dead3263af2dafd925e Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Tue, 31 Mar 2026 16:52:36 +0200 Subject: [PATCH 2/3] doc: clarify that features cannot be both experimental and deprecated PR-URL: https://github.com/nodejs/node/pull/62456 Reviewed-By: James M Snell Reviewed-By: Geoffrey Booth Reviewed-By: Jacob Smith Reviewed-By: Matteo Collina Reviewed-By: Joyee Cheung --- doc/contributing/collaborator-guide.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/doc/contributing/collaborator-guide.md b/doc/contributing/collaborator-guide.md index 6f2e400d440181..99b3ec84b3b9e0 100644 --- a/doc/contributing/collaborator-guide.md +++ b/doc/contributing/collaborator-guide.md @@ -387,6 +387,12 @@ undergo deprecation. The exceptions to this rule are: * Changes to errors thrown by dependencies of Node.js, such as V8. * One-time exceptions granted by the TSC. +Experimental and undocumented APIs are not considered stable, therefore are +typically removed without a deprecation cycle. However, if such API has gotten +some non-trivial adoption in the ecosystem, it (or a subset of it) can undergo +deprecation – at which point, changes to that API (or at least, its deprecated +subset) should follow [semantic versioning][] rules. + For more information, see [Deprecations](#deprecations). #### Breaking changes to internal elements @@ -526,8 +532,8 @@ the three Deprecation levels. Documentation-Only Deprecations can land in a minor release. They can not change to a Runtime Deprecation until the next major release. -No API can change to End-of-Life without going through a Runtime Deprecation -cycle. There is no rule that deprecated code must progress to End-of-Life. +No deprecated APIs can change to End-of-Life without going through a Runtime +Deprecation cycle. There is no rule that deprecated code must progress to End-of-Life. Documentation-Only and Runtime Deprecations can remain in place for an unlimited duration. @@ -1059,6 +1065,7 @@ need to be attached anymore, as only important bugfixes will be included. [node-core-utils-issues]: https://github.com/nodejs/node-core-utils/issues [ppc]: https://github.com/orgs/nodejs/teams/platform-ppc [s390]: https://github.com/orgs/nodejs/teams/platform-s390 +[semantic versioning]: https://semver.org/ [smartos]: https://github.com/orgs/nodejs/teams/platform-smartos [unreliable tests]: https://github.com/nodejs/node/issues?q=is%3Aopen+is%3Aissue+label%3A%22CI+%2F+flaky+test%22 [windows]: https://github.com/orgs/nodejs/teams/platform-windows From e9b5214d72eadfc66fd205396f4a6c76fed4f399 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Tue, 31 Mar 2026 08:04:01 -0700 Subject: [PATCH 3/3] doc: deprecate `module.register()` (DEP0205) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/62395 Reviewed-By: Jacob Smith Reviewed-By: Matteo Collina Reviewed-By: Chengzhong Wu Reviewed-By: James M Snell Reviewed-By: Joyee Cheung Reviewed-By: Gerhard Stöbich Reviewed-By: Antoine du Hamel --- doc/api/deprecations.md | 16 ++++++++++++++++ doc/api/module.md | 7 ++++++- test/doctool/test-doc-api-json.mjs | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index 2fb6abbd888b99..0bfe9a3fa3a463 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -4523,6 +4523,20 @@ Type: Runtime Passing a non-extractable [`CryptoKey`][] to [`KeyObject.from()`][] is deprecated and will throw an error in a future version. +### DEP0205: `module.register()` + + + +Type: Documentation-only + +[`module.register()`][] is deprecated. Use [`module.registerHooks()`][] +instead. + [DEP0142]: #dep0142-repl_builtinlibs [NIST SP 800-38D]: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf [RFC 6066]: https://tools.ietf.org/html/rfc6066#section-3 @@ -4627,6 +4641,8 @@ deprecated and will throw an error in a future version. [`message.trailersDistinct`]: http.md#messagetrailersdistinct [`message.trailers`]: http.md#messagetrailers [`module.createRequire()`]: module.md#modulecreaterequirefilename +[`module.register()`]: module.md#moduleregisterspecifier-parenturl-options +[`module.registerHooks()`]: module.md#moduleregisterhooksoptions [`os.networkInterfaces()`]: os.md#osnetworkinterfaces [`os.tmpdir()`]: os.md#ostmpdir [`process.env`]: process.md#processenv diff --git a/doc/api/module.md b/doc/api/module.md index 58092ab1c62a02..465749f28731c0 100644 --- a/doc/api/module.md +++ b/doc/api/module.md @@ -178,7 +178,12 @@ isBuiltin('wss'); // false added: - v20.6.0 - v18.19.0 +deprecated: REPLACEME changes: + - version: REPLACEME + pr-url: https://github.com/nodejs/node/pull/62395 + description: Documentation-only deprecation (DEP0205). Use + `module.registerHooks()` instead. - version: - v23.6.1 - v22.13.1 @@ -193,7 +198,7 @@ changes: description: Add support for WHATWG URL instances. --> -> Stability: 1.1 - Active development +> Stability: 0 - Deprecated: Use [`module.registerHooks()`][] instead. * `specifier` {string|URL} Customization hooks to be registered; this should be the same string that would be passed to `import()`, except that if it is diff --git a/test/doctool/test-doc-api-json.mjs b/test/doctool/test-doc-api-json.mjs index 91b3dea4fc47f3..66302d3605c24b 100644 --- a/test/doctool/test-doc-api-json.mjs +++ b/test/doctool/test-doc-api-json.mjs @@ -159,5 +159,5 @@ for await (const dirent of await fs.opendir(new URL('../../out/doc/api/', import assert.partialDeepStrictEqual(allExpectedKeys, findAllKeys(json)); } -assert.strictEqual(numberOfDeprecatedSections, 44); // Increase this number every time a new API is deprecated. +assert.strictEqual(numberOfDeprecatedSections, 45); // Increase this number every time a new API is deprecated. assert.strictEqual(numberOfRemovedAPIs, 46); // Increase this number every time a section is marked as removed.