Skip to content
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: changed util.inspect signature #23216

Closed
wants to merge 6 commits into from
Closed

Conversation

siddhant1
Copy link
Contributor

@siddhant1 siddhant1 commented Oct 2, 2018

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • documentation is changed or added
  • commit message follows commit guidelines

@nodejs-github-bot nodejs-github-bot added doc Issues and PRs related to the documentations. util Issues and PRs related to the built-in util module. labels Oct 2, 2018
doc/api/util.md Outdated
@@ -356,7 +356,7 @@ stream.on('data', (data) => {
stream.write('With ES6');
```

## util.inspect(object[, options])
Copy link
Member

Choose a reason for hiding this comment

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

This does not seem to be completely correct. You want to add the legacy signature which is:

## util.inspect(object[, showHidden[, depth[, colors]]])

The options signature is not compatible with it since it's not possible to combine the legacy one and the new one. So a separate entry would be required in this case. However, I am not fond of actually documenting it. It uses boolean arguments and those are difficult to grasp without actively looking into the documentation.

Copy link
Contributor Author

@siddhant1 siddhant1 Oct 2, 2018

Choose a reason for hiding this comment

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

Somebody rose an issue on this one , are you sure you don't want it documented

Copy link
Member

Choose a reason for hiding this comment

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

However, I am not fond of actually documenting it. It uses boolean arguments and those are difficult to grasp without actively looking into the documentation.

If the signature is "difficult to grasp without actively looking into the documentation", that would seem to argue for documenting it. I'd certainly be in favor of applying a doc-only deprecation to that signature (if it's not already deprecated) though.

Copy link
Member

Choose a reason for hiding this comment

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

(Specifically: If someone comes across util.inspect() being used this way, they should be able to find the signature in the documentation. The deprecation would be to discourage its further use this way. But people should still be able to use the docs to help them figure out code that already exists.)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Can you tell me the correct signature so I can make another pr on this one?

Copy link
Member

Choose a reason for hiding this comment

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

I believe there's needs to be two separate signatures, one for when there is an options object and one for when there are the other arguments.

Copy link
Contributor

Choose a reason for hiding this comment

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

So I'm guessing the answer to @siddhant1's question is:

## util.inspect(object[, showHidden[, depth[, colors]]])

AND

## util.inspect(object[, options])

Is that right @Trott, @refack?

@vsemozhetbyt
Copy link
Contributor

Refs: #23205

@siddhant1
Copy link
Contributor Author

Should I add a legacy or deprecated patch to the legacy one?

@refack
Copy link
Contributor

refack commented Oct 2, 2018

Should I add a legacy or deprecated patch to the legacy one?

IMHO it should be documented as having two signatures. I thought I saw an example of such polymorphism in our docs, but I can't find it at the moment.

P.S. I found a not-so-good example https://nodejs.org/api/fs.html#fs_fs_readfilesync_path_options
But IMHO util.inspect should be documented as having two distinct signatures.

@siddhant1
Copy link
Contributor Author

Okay I will take a look at previously documented API's and work on this one.

@siddhant1
Copy link
Contributor Author

Thanks for the help dude! , I am just starting out and I am glad to see such a healthy community.

doc/api/util.md Outdated
@@ -356,7 +357,9 @@ stream.on('data', (data) => {
stream.write('With ES6');
```

## util.inspect(object[, options])

## util.inspect(object[,options]
Copy link
Contributor

@vsemozhetbyt vsemozhetbyt Oct 2, 2018

Choose a reason for hiding this comment

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

Missing space after the comma and missing closing parenthesis) Should be the same line:

## util.inspect(object[, options])

doc/api/util.md Outdated
## util.inspect(object[, options])

## util.inspect(object[,options]
## util.inspect(object, [showHidden], [depth], [colors])
Copy link
Contributor

Choose a reason for hiding this comment

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

We usually enclose commas and spaces inside brackets for optional parameters:

## util.inspect(object[, showHidden][, depth][, colors])

Copy link
Contributor

Choose a reason for hiding this comment

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

Or this one if optionality is incremental:

## util.inspect(object[, showHidden[, depth[, colors]]])

doc/api/util.md Outdated
@@ -435,6 +438,7 @@ changes:
function, it is used as a [compare function][].
* Returns: {string} The representation of passed object


Copy link
Contributor

Choose a reason for hiding this comment

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

This empty line seems redundant)

doc/api/util.md Outdated
@@ -356,7 +357,9 @@ stream.on('data', (data) => {
stream.write('With ES6');
```

## util.inspect(object[, options])

## util.inspect(object[, options])
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit: two spaces after the ## produce unneeded diff.

doc/api/util.md Outdated
## util.inspect(object[, options])

## util.inspect(object[, options])
## util.inspect(object[, showHidden][, depth][, colors])
Copy link
Contributor

Choose a reason for hiding this comment

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

So should not this be ## util.inspect(object[, showHidden[, depth[, colors]]])?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I am doing all these changes and squashing the commits into one

@siddhant1
Copy link
Contributor Author

@vsemozhetbyt can you check them now!

@vsemozhetbyt
Copy link
Contributor

vsemozhetbyt commented Oct 7, 2018

Thank you. Some extra empty lines can be deleted on landing.

CI-lite: https://ci.nodejs.org/job/node-test-pull-request-lite-pipeline/1154/ (green)

@vsemozhetbyt
Copy link
Contributor

Dear reviewers, PTAL.

@vsemozhetbyt vsemozhetbyt added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Oct 8, 2018
@vsemozhetbyt
Copy link
Contributor

Landed in 5e63cf2
Thank you!

vsemozhetbyt pushed a commit that referenced this pull request Oct 8, 2018
PR-URL: #23216
Fixes: #23205
Reviewed-By: Vse Mozhet Byt <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos pushed a commit that referenced this pull request Oct 10, 2018
PR-URL: #23216
Fixes: #23205
Reviewed-By: Vse Mozhet Byt <[email protected]>
Reviewed-By: James M Snell <[email protected]>
jasnell pushed a commit that referenced this pull request Oct 17, 2018
PR-URL: #23216
Fixes: #23205
Reviewed-By: Vse Mozhet Byt <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. doc Issues and PRs related to the documentations. util Issues and PRs related to the built-in util module.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants