-
Notifications
You must be signed in to change notification settings - Fork 30.1k
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
doc: deprecation clarifications #19522
Conversation
COLLABORATOR_GUIDE.md
Outdated
Documentation-only deprecations may trigger a runtime warning when launched | ||
with [`--pending-deprecation`][] flag (or its alternative, | ||
`NODE_PENDING_DEPRECATION=1` environment variable). | ||
Documentation-only deprecations may trigger an opt-in only runtime warning |
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'm not sure "opt-in only" is necessary
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.
an opt-in only runtime warning
-> a runtime warning
COLLABORATOR_GUIDE.md
Outdated
@@ -427,7 +428,9 @@ Node.js uses three Deprecation levels: | |||
deprecated status. | |||
|
|||
* *End-of-life* refers to APIs that have gone through Runtime Deprecation and | |||
are ready to be removed from Node.js entirely. | |||
are no longer subject to the semantic-versioning and support policies used by |
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.
"semantic versioning" without dash
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.
Can we link to these policies here?
COLLABORATOR_GUIDE.md
Outdated
__Deprecation__ refers to the identification of Public APIs that should no | ||
longer be used. | ||
|
||
Once specific bits of code are marked as being Deprecated, they are no longer |
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.
specific bits of code are marked as being Deprecated
-> APIs are deprecated
COLLABORATOR_GUIDE.md
Outdated
longer be used. | ||
|
||
Once specific bits of code are marked as being Deprecated, they are no longer | ||
covered by the typical current or Long Term Support policies. |
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.
Remove typical
or current
. More importantly, what does this mean? Is this all about semver or is it something else?
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.
For instance, a deprecated function in an LTS branch would not fall under the same scrutiny and care as a non-deprecated function in that same branch, meaning we may be more liberal about what changes we allow to be made within those
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.
Can we link to these policies here?
COLLABORATOR_GUIDE.md
Outdated
`NODE_PENDING_DEPRECATION=1` environment variable). | ||
Documentation-only deprecations may trigger an opt-in only runtime warning | ||
when Node.js is launched with the [`--pending-deprecation`][] flag (or its | ||
alternative, `NODE_PENDING_DEPRECATION=1` environment variable). |
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.
(or its alternative, `NODE_PENDING_DEPRECATION=1` environment variable)
-> or if the `NODE_PENDING_DEPRECATION` environment variable is set
.
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.
the value specifically needs to be NODE_PENDING_DEPRECATION=1
COLLABORATOR_GUIDE.md
Outdated
@@ -427,7 +428,9 @@ Node.js uses three Deprecation levels: | |||
deprecated status. | |||
|
|||
* *End-of-life* refers to APIs that have gone through Runtime Deprecation and | |||
are ready to be removed from Node.js entirely. | |||
are no longer subject to the semantic-versioning and support policies used by | |||
the project. Backward-incompatible changes or even complete removal of such |
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.
or even
-> including
COLLABORATOR_GUIDE.md
Outdated
are ready to be removed from Node.js entirely. | ||
are no longer subject to the semantic-versioning and support policies used by | ||
the project. Backward-incompatible changes or even complete removal of such | ||
code may occur at any time. |
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.
code
-> APIs
COLLABORATOR_GUIDE.md
Outdated
Runtime Deprecation cycle. However, there is no requirement that deprecated | ||
code must progress ultimately to *End-of-Life*. It is possible, and at times | ||
preferable, for code that is documentation-only or runtime deprecated to | ||
remain so indefinitely. |
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.
It is possible, and at times preferable, for code that is documentation-only or runtime deprecated to remain so indefinitely.
-> Documentation-only and runtime deprecations may remain indefinitely.
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.
Fine in concept, just making sure this doesn't land without some of the requested changes...
COLLABORATOR_GUIDE.md
Outdated
longer be used. | ||
|
||
Once APIs are Deprecated, they are no longer covered by the current or | ||
[Long Term Support][LTS] policies. |
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.
That's a link to a repository that doesn't seem to have any policies. Honest, I'm not sure what this sentence means. If it's only about the fact that breaking changes can happen with deprecated APIs, then that's covered later in this doc and much more clearly than here. If it's about something else...what is it?
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 you can remove this sentence entirely TBQH.)
COLLABORATOR_GUIDE.md
Outdated
Documentation-only deprecations may trigger a runtime warning when launched | ||
with [`--pending-deprecation`][] flag (or its alternative, | ||
`NODE_PENDING_DEPRECATION=1` environment variable). | ||
Documentation-only deprecations may trigger an runtime warning when Node.js |
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.
an runtime
-> a runtime
COLLABORATOR_GUIDE.md
Outdated
with [`--pending-deprecation`][] flag (or its alternative, | ||
`NODE_PENDING_DEPRECATION=1` environment variable). | ||
Documentation-only deprecations may trigger an runtime warning when Node.js | ||
is launched with the [`--pending-deprecation`][] flag, or the |
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.
launched
-> started
remove comma after flag
COLLABORATOR_GUIDE.md
Outdated
@@ -427,7 +428,9 @@ Node.js uses three Deprecation levels: | |||
deprecated status. | |||
|
|||
* *End-of-life* refers to APIs that have gone through Runtime Deprecation and | |||
are ready to be removed from Node.js entirely. | |||
are no longer subject to the semantic versioning and [support policies](LTS) |
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.
As above, the link here doesn't provide clarity. Can you be specific about some aspect of deprecated APIs that is different than everything else other than the semantic version stuff? If not, let's remove and support policies
.
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.
Thanks for your patience with all the nits!
PR-URL: #19522 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Landed in 7238b92 |
It seems this breaks doc linting: https://ci.nodejs.org/job/node-test-linter/17623/console
|
#19762 :) |
It looks like this was landed without running through CI at all. |
(I'm sure this happens a lot, but since I'm noticing it because I'm looking at this: The commit message also does not conform to guidelines. First word should be an imperative verb, such as |
Mighty spring) |
Hmm... Something must be out of sync locally on my end then because linting passed locally. Will open a fix PR a bit later this evening |
Nevermind! Just saw it was already done 😁 thank you kindly! |
@jasnell I believe there is currently a gotcha where |
PR-URL: #19522 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Clarify some details on the deprecation policy. Specifically:
Clarify that deprecated code is not subject to the typical support (current or LTS) policies
Clarify that deprecation does not automatically mean removal. Code may be docs-deprecated or runtime deprecated indefinitely.
Clarify that End-of-Life does not necessarily mean removal. What it means is that changes are no longer subject to the semver rules, up to and including removal.
Checklist