Skip to content

meta: handling of undocumented endpoint #14679

Description

@refack

Recently some undocumented "public" endpoints have been surfaced:
partial list

IMHO we should have explicit policy for handling these endpoints. Specifically, should they be documented or deprecated, and how. A few discussion points come to mind:

  1. semverity - can these endpoints be "doc-only" deprecated immediately (considered semver-patch)
  2. usefulness - should there be a standard process to assess their use (Gzemnid/GitHub search/google/SO/twitter survey)?
  3. "sensitivity" - will documenting/deprecating them generate any harm (doc: add documentation for killed property of ChildProcess instance #14578, cluster: remove deprecated API #13702)

/cc @nodejs/documentation @nodejs/release @nodejs/ctc @nodejs/testing @nodejs/community-committee

Activity

  1. added
    discussIssues opened for discussion and feedback.
    docIssues and PRs related to Node.js documentation.
    metaIssues and PRs related to the general management of the project.
    on Aug 7, 2017
  2. gibfahn commented on Aug 8, 2017

    @gibfahn
    Member

    I guess a key question is how long it's been "in the wild". If something has only been included in a couple of releases (and not documented) then deprecating/removing it ASAP might be better for users than doing a full deprecation cycle.

    Otherwise I don't think it matters whether we meant to expose it or not, given that we treat our code as the definition of our API.

  3. sam-github commented on Aug 10, 2017

    @sam-github
    Contributor

    Given that its javascript, its hard to have every single internal property hidden from the user. I think its OK to have undocumented but user-visible properties.

    If they are useful, though, they should be documented.

    If they aren't useful or we don't want to support them, its not clear whether they have to be documented as a prequel to deprecating them.

    Whether we formally doc and deprecate them or not, removing them is semver-major, though I recall at least once we did it without calling it semver because the property had existed for only a couple patch versions and it was deemed worth deleting before any user code started to depend on it.

  4. sam-github commented on Aug 10, 2017

    @sam-github
    Contributor

    And I agree with @refack, our policy should be documented.

  5. refack commented on Aug 10, 2017

    @refack
    ContributorAuthor

    our policy should be documented.

    I just re-read https://github.com/nodejs/node/blob/master/COLLABORATOR_GUIDE.md#internal-vs-public-api, It's more explicit than I remembered, but it seems like we don't follow it, as we tend to be more strict...

    P.S. all hail inspector Enble

  6. bnoordhuis commented on Sep 21, 2017

    @bnoordhuis
    Member

    @refack Status? Conclusion?

  7. removed
    discussIssues opened for discussion and feedback.
    on Mar 11, 2018
  8. jasnell commented on Aug 11, 2018

    @jasnell
    Member

    Closing at the APIs originally discussed have been dealt with.

  9. refack commented on Aug 11, 2018

    @refack
    ContributorAuthor

    Caveat Emptor

    FTR, quoting from the docs:

    node/COLLABORATOR_GUIDE.md

    Lines 262 to 263 in e039524

    - Any object, property, method, argument, behavior, or event not documented in
    the Node.js documentation is internal.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    docIssues and PRs related to Node.js documentation.metaIssues and PRs related to the general management of the project.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions