-
Notifications
You must be signed in to change notification settings - Fork 29.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
meta: considerations for new core modules #15022
Changes from all commits
9a17c71
101f84c
41242d8
479aeae
fbcd579
00df632
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -263,6 +263,32 @@ multiple commits. Commit metadata and the reason for the revert should be | |
appended. Commit message rules about line length and subsystem can be ignored. | ||
A Pull Request should be raised and approved like any other change. | ||
|
||
### Introducing New Modules | ||
|
||
Semver-minor commits that introduce new core modules should be treated with | ||
extra care. | ||
|
||
The name of the new core module should not conflict with any existing | ||
module in the ecosystem unless a written agreement with the owner of those | ||
modules is reached to transfer ownership. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We need to add a statement like: "if the new module name is free, a collaborator should park it as soon as possible, linking to the pull request that introduces the new module". There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. oh right, good point There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think you still have not added this. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. oy... heh... one sec |
||
|
||
If the new module name is free, a Collaborator should register a placeholder | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should we commit to adding (or allowing for) polyfills to be published for older versions of node under that name? Or is that out of scope for this generic document and would be discussed case-by-case? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd say that's out of scope |
||
in the module registry as soon as possible, linking to the pull request that | ||
introduces the new core module. | ||
|
||
Pull requests introducing new core modules: | ||
|
||
* Must be left open for at least one week for review. | ||
* Must be labeled using the `ctc-review` label. | ||
* Must have signoff from at least two CTC members. | ||
|
||
New core modules must be landed with a [Stability Index][] of Experimental, | ||
and must remain Experimental until a semver-major release. | ||
|
||
For new modules that involve significant effort, non-trivial additions to | ||
Node.js or significant new capabilities, an [Enhancement Proposal][] is | ||
recommended but not required. | ||
|
||
### Deprecations | ||
|
||
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 | |
LTS working group and the Release team. | ||
|
||
[backporting guide]: doc/guides/backporting-to-release-lines.md | ||
[Stability Index]: https://github.com/nodejs/node/pull/doc/api/documentation.md#stability-index | ||
[Enhancement Proposal]: https://github.com/nodejs/node-eps |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would add that they need to land with two CTC (or maybe TSC now) signoff, like any other breaking change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would that be a should or a must?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that's a must. It's serious business: we are adding new API that we will need to maintain to core. Removing those is hard, so the CTC should be notified to weight in.