Skip to content

doc: clarify that features cannot be both experimental and deprecated#62456

Open
aduh95 wants to merge 2 commits intonodejs:mainfrom
aduh95:experimental-to-deprecated
Open

doc: clarify that features cannot be both experimental and deprecated#62456
aduh95 wants to merge 2 commits intonodejs:mainfrom
aduh95:experimental-to-deprecated

Conversation

@aduh95
Copy link
Copy Markdown
Contributor

@aduh95 aduh95 commented Mar 27, 2026

As discussed in the TSC meeting. The rationale is that either an experimental feature can be called experimental only if breaking changes (incl removal) would not break the ecosystem; if removing an experimental feature must go through a deprecation cycle, it is de facto no-longer experimental.

@nodejs-github-bot
Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/userland-migrations

@nodejs-github-bot nodejs-github-bot added the doc Issues and PRs related to the documentations. label Mar 27, 2026
@JakobJingleheimer
Copy link
Copy Markdown
Member

Shouldn't there be some way to provide advanced warning?

@aduh95
Copy link
Copy Markdown
Contributor Author

aduh95 commented Mar 27, 2026

Shouldn't there be some way to provide advanced warning?

wdym? Do you have a scenario in mind?

* An improved alternative API is available.
* Breaking changes to the API are expected in a future major release.

Deprecated features are subject to [semantic versioning][] rules.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is the case for the undocumented features being deprecated.

>
> Experimental features leave the experimental status typically either by
> graduating to stable, or are removed without a deprecation cycle.
> graduating to stable, by being deprecated, or are removed without a deprecation cycle.
Copy link
Copy Markdown
Member

@joyeecheung joyeecheung Mar 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clarifying question: does this mean #62395 (comment) can land because it's doing exactly the newly added exit condition? That is the transition of stability index can be:

  1. 1 -> 2: stable
  2. 1 -> 0: deprecated
  3. 1 -> (black hole?): removed

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've tried to clarify in 44572ae, PTAL

@JakobJingleheimer
Copy link
Copy Markdown
Member

module.register() (#62395). Isn't that what precipitated this?

@joyeecheung
Copy link
Copy Markdown
Member

Changes in doc/api/documentation.md LGTM but I think changes in doc/api/deprecations.md is a separate claim - we don't necessarily follow it for undocumented features, or I think in terms of the relationship between deprecations and semver it's always evaluated on a case-by-case basis depending on potential breakage, doesn't feel right to blanket claim it's always tied to semver...can you move that to a separate PR?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

doc Issues and PRs related to the documentations.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants