meta: considerations for new core modules · nodejs/node@4ee066e

Original file line numberDiff line numberDiff line change

@@ -263,6 +263,32 @@ multiple commits. Commit metadata and the reason for the revert should be

263263

appended. Commit message rules about line length and subsystem can be ignored.

264264

A Pull Request should be raised and approved like any other change.

265265
266+

### Introducing New Modules

267+
268+

Semver-minor commits that introduce new core modules should be treated with

269+

extra care.

270+
271+

The name of the new core module should not conflict with any existing

272+

module in the ecosystem unless a written agreement with the owner of those

273+

modules is reached to transfer ownership.

274+
275+

If the new module name is free, a Collaborator should register a placeholder

276+

in the module registry as soon as possible, linking to the pull request that

277+

introduces the new core module.

278+
279+

Pull requests introducing new core modules:

280+
281+

* Must be left open for at least one week for review.

282+

* Must be labeled using the `ctc-review` label.

283+

* Must have signoff from at least two CTC members.

284+
285+

New core modules must be landed with a [Stability Index][] of Experimental,

286+

and must remain Experimental until a semver-major release.

287+
288+

For new modules that involve significant effort, non-trivial additions to

289+

Node.js or significant new capabilities, an [Enhancement Proposal][] is

290+

recommended but not required.

291+
266292

### Deprecations

267293
268294

Deprecation refers to the identification of Public APIs that should no longer

@@ -642,3 +668,5 @@ release. This process of making a release will be a collaboration between the

642668

LTS working group and the Release team.

643669
644670

[backporting guide]: doc/guides/backporting-to-release-lines.md

671+

[Stability Index]: https://github.com/nodejs/node/pull/doc/api/documentation.md#stability-index

672+

[Enhancement Proposal]: https://github.com/nodejs/node-eps