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

inspector,cli: restore `--debug` and `--inspect --debug-brk` with deprecation warnings #12949

Merged
merged 0 commits into from May 29, 2017

Conversation

Projects
None yet
10 participants
@refack
Member

refack commented May 10, 2017

spinning-off #12580

status summary

  • current generation of IDEs work with both protocols (using version detection)
  • vendors have been exclusively using the --inspect --debug-brk combo to trigger inspector
  • if we don't restore this alias current IDEs will not work with node v8
  • be "noisy" about this being deprecated, and give vendors a year to adjust

motivation

--debug-brk & --debug don't exist after #12197, leaving a current generation of tools without
a way to start node with inspector activated and breaking on first line.

Add --debug-brk and --debug back in as an undocumented and deprecated option until 7.x is no longer
supported.

Fixes: #12364
Fixes: #12630

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • documentation is changed or added
  • commit message follows commit guidelines
Affected core subsystem(s)

test,inspector,debugger,cli

@refack refack changed the title from New 12580 restore debug brk to inspector,cli: restore `--debug-brk` as alias for `--inspect-brk` May 10, 2017

@refack

This comment has been minimized.

Show comment
Hide comment
@refack

refack May 10, 2017

Member

Current consensus #12630 (comment):

  • We need to keep --inspect --debug-brk working for the time being.
  • For better usability & less confusion--inspect-brk is still a good thing
Member

refack commented May 10, 2017

Current consensus #12630 (comment):

  • We need to keep --inspect --debug-brk working for the time being.
  • For better usability & less confusion--inspect-brk is still a good thing
Show outdated Hide outdated src/node_debug_options.cc
if (option_name == "--inspect") {
enable_inspector = true;
} else if (option_name == "--inspect-brk") {
} else if (option_name == "--inspect-brk" || option_name == "--debug-brk") {

This comment has been minimized.

@jasnell

jasnell May 10, 2017

Member

This would also require a deprecation warning to be emitted at startup when --debug-brk is used. The CTC discussion also centered on adding --debug back as an alias for --inspect, also with a deprecation warning.

Note: The deprecation warning would need to use the process.emitWarning() mechanism. I believe there is a deprecation code already allocated for this.

@jasnell

jasnell May 10, 2017

Member

This would also require a deprecation warning to be emitted at startup when --debug-brk is used. The CTC discussion also centered on adding --debug back as an alias for --inspect, also with a deprecation warning.

Note: The deprecation warning would need to use the process.emitWarning() mechanism. I believe there is a deprecation code already allocated for this.

This comment has been minimized.

@refack

refack May 10, 2017

Member

@jasnell added that to first comment
I believe that @jkrems also requested the --debug-brk alone will fail, and that only the combo --inspect --debug-brk will be valid.

@refack

refack May 10, 2017

Member

@jasnell added that to first comment
I believe that @jkrems also requested the --debug-brk alone will fail, and that only the combo --inspect --debug-brk will be valid.

This comment has been minimized.

@jkrems

jkrems May 10, 2017

Contributor

This is how I made it fail: jkrems@50ecfe4

E.g. track --debug-brk being used and then fail (hard) if it was used w/o --inspect. Because that case would mean someone relatively clearly was trying to start the old protocol.

@jkrems

jkrems May 10, 2017

Contributor

This is how I made it fail: jkrems@50ecfe4

E.g. track --debug-brk being used and then fail (hard) if it was used w/o --inspect. Because that case would mean someone relatively clearly was trying to start the old protocol.

@refack refack changed the title from inspector,cli: restore `--debug-brk` as alias for `--inspect-brk` to inspector,cli: restore `--debug*` as alias for `--inspect*` May 10, 2017

@refack

This comment has been minimized.

Show comment
Hide comment
Member

refack commented May 10, 2017

Show outdated Hide outdated src/node.cc
@@ -3955,6 +3955,12 @@ static void ParseArgs(int* argc,
exit(9);
}
if (debug_options.debug_brk_used() && !debug_options.inspector_enabled()) {
fprintf(stderr,
"%s: Using --debug-brk without --inspect is no longer supported\n", argv[0]);

This comment has been minimized.

@jasnell

jasnell May 10, 2017

Member

This should use the process.emitWarning() mechanism instead. This can be done by setting a flag and later calling process.emitWarning() during bootstrapping.

@jasnell

jasnell May 10, 2017

Member

This should use the process.emitWarning() mechanism instead. This can be done by setting a flag and later calling process.emitWarning() during bootstrapping.

This comment has been minimized.

@jasnell

jasnell May 10, 2017

Member

It should also be a proper deprecation warning... e.g.

process.emitWarning(message, 'DeprecationWarning', 'DEP00NN');

Where DEP00NN is an appropriate deprecation code (see docs/api/deprecations.md)

@jasnell

jasnell May 10, 2017

Member

It should also be a proper deprecation warning... e.g.

process.emitWarning(message, 'DeprecationWarning', 'DEP00NN');

Where DEP00NN is an appropriate deprecation code (see docs/api/deprecations.md)

@jkrems

jkrems approved these changes May 10, 2017

Show outdated Hide outdated src/node_debug_options.h
#endif // HAVE_INSPECTOR
bool wait_connect_;
bool wait_connect_; // --inspect-brk

This comment has been minimized.

@joshgav

joshgav May 10, 2017

Member

If a comment is helpful here I think it could be a bit clearer - wait_connect_ means to break before executing user code (i.e. on first line) and is used with both --debug-brk and --inspect-brk.

@joshgav

joshgav May 10, 2017

Member

If a comment is helpful here I think it could be a bit clearer - wait_connect_ means to break before executing user code (i.e. on first line) and is used with both --debug-brk and --inspect-brk.

@joshgav

This comment has been minimized.

Show comment
Hide comment
@joshgav

joshgav May 10, 2017

Member

I think we should only support --debug-brk with --inspect, not --debug, since that's all that has been requested. The code here does just that, but the original post and title imply that it adds back --debug too, so wanted to be explicit.

I think it would be helpful to print a message and exit on --debug instead of crashing, but that should probably be in a separate PR.

Member

joshgav commented May 10, 2017

I think we should only support --debug-brk with --inspect, not --debug, since that's all that has been requested. The code here does just that, but the original post and title imply that it adds back --debug too, so wanted to be explicit.

I think it would be helpful to print a message and exit on --debug instead of crashing, but that should probably be in a separate PR.

@refack

This comment has been minimized.

Show comment
Hide comment
@refack

refack May 10, 2017

Member

I think we should only support --debug-brk with --inspect, not --debug, since that's all that has been requested. The code here does just that, but the original post and title imply that it adds back --debug too, so wanted to be explicit.

I'll phrase a more generic title, since we want --debug[=port] to be a deprecated aliased to --inspect[=port] #12949 (comment) but keep the single --debug-brk[=port] invalid...

I think it would be helpful to print a message and exit on --debug instead of crashing, but that should probably be in a separate PR.

I'll clean that up, since it should be process.emitWarning(message, 'DeprecationWarning', 'DEP00NN'); anyway.

Member

refack commented May 10, 2017

I think we should only support --debug-brk with --inspect, not --debug, since that's all that has been requested. The code here does just that, but the original post and title imply that it adds back --debug too, so wanted to be explicit.

I'll phrase a more generic title, since we want --debug[=port] to be a deprecated aliased to --inspect[=port] #12949 (comment) but keep the single --debug-brk[=port] invalid...

I think it would be helpful to print a message and exit on --debug instead of crashing, but that should probably be in a separate PR.

I'll clean that up, since it should be process.emitWarning(message, 'DeprecationWarning', 'DEP00NN'); anyway.

@refack refack changed the title from inspector,cli: restore `--debug*` as alias for `--inspect*` to inspector,cli: restore `--debug` and `--inspect --debug-brk` with deprecation warnings May 10, 2017

@joshgav

This comment has been minimized.

Show comment
Hide comment
@joshgav

joshgav May 10, 2017

Member

@refack

we want --debug[=port] to be a deprecated aliased to --inspect[=port]

I'm okay with this if downstream users (or IDEs) need it - do they? As @ChALkeR noted, the behavior of starting the Inspector agent rather than the legacy debugger agent would still be unexpected.

If downstream users don't need it, I think it would be best to print a deprecation message (e.g. "please use --inspect") and exit.

Member

joshgav commented May 10, 2017

@refack

we want --debug[=port] to be a deprecated aliased to --inspect[=port]

I'm okay with this if downstream users (or IDEs) need it - do they? As @ChALkeR noted, the behavior of starting the Inspector agent rather than the legacy debugger agent would still be unexpected.

If downstream users don't need it, I think it would be best to print a deprecation message (e.g. "please use --inspect") and exit.

@refack

This comment has been minimized.

Show comment
Hide comment
@refack

refack May 10, 2017

Member

@jasnell re: #12949 (comment) If I understand you correctly, the wanted result is:

  1. --debug == --inspect + deprecation warning
  2. --inspect --debug-brk = --inspect-brk + deprecation warning (for IDEs backward compatibility)
  3. --debug-brk = invalid
Member

refack commented May 10, 2017

@jasnell re: #12949 (comment) If I understand you correctly, the wanted result is:

  1. --debug == --inspect + deprecation warning
  2. --inspect --debug-brk = --inspect-brk + deprecation warning (for IDEs backward compatibility)
  3. --debug-brk = invalid
@refack

This comment has been minimized.

Show comment
Hide comment
@refack

refack May 10, 2017

Member

@joshgav I don't know of 3rd party requirements for the above (1) either. But @jasnell mentioned it explicitly.

Member

refack commented May 10, 2017

@joshgav I don't know of 3rd party requirements for the above (1) either. But @jasnell mentioned it explicitly.

@jkrems

This comment has been minimized.

Show comment
Hide comment
@jkrems

jkrems May 10, 2017

Contributor

I don't think (1) is a requirement and I'd argue it would be a dangerous change. If I read it correctly, this PR only restores --inspect --debug-brk and that's the only thing that I heard IDEs asking for. --debug is still an invalid flag after this change.

The CTC notes seem to focus on --debug-brk only:

Next steps

  • Никита to review use as alias for potential problems.
  • If/when Никита approves: restore --debug-brk as an alias to --inspect-brk that also prints a deprecation warning.
Contributor

jkrems commented May 10, 2017

I don't think (1) is a requirement and I'd argue it would be a dangerous change. If I read it correctly, this PR only restores --inspect --debug-brk and that's the only thing that I heard IDEs asking for. --debug is still an invalid flag after this change.

The CTC notes seem to focus on --debug-brk only:

Next steps

  • Никита to review use as alias for potential problems.
  • If/when Никита approves: restore --debug-brk as an alias to --inspect-brk that also prints a deprecation warning.
@refack

This comment has been minimized.

Show comment
Hide comment
@refack

refack May 15, 2017

Member

It should also be a proper deprecation warning... e.g.

It's CC side, we don't have a well guarded process.emitWarning.
What would you suggest:

  1. Implement (with test all the noDeprecation throwDeprecation traceDeprecation)
  2. Leak a hint so bootstrap will handle this?
Member

refack commented May 15, 2017

It should also be a proper deprecation warning... e.g.

It's CC side, we don't have a well guarded process.emitWarning.
What would you suggest:

  1. Implement (with test all the noDeprecation throwDeprecation traceDeprecation)
  2. Leak a hint so bootstrap will handle this?
@roblourens

This comment has been minimized.

Show comment
Hide comment
@roblourens

roblourens May 26, 2017

Sorry for the spam, but this will definitely still make it into Node 8, right? It seems like the plan is still to ship next week?

roblourens commented May 26, 2017

Sorry for the spam, but this will definitely still make it into Node 8, right? It seems like the plan is still to ship next week?

@jkrems

This comment has been minimized.

Show comment
Hide comment
@jkrems

jkrems May 26, 2017

Contributor

It's CC side, we don't have a well guarded process.emitWarning.
What would you suggest: [...]

I think @jasnell was suggesting the bootstrap hint:

This can be done by setting a flag and later calling process.emitWarning() during bootstrapping.

@roblourens Thanks for spamming this PR. Yes, this definitely should get into Node 8. It's not semver-major so we can still land it in node 8 even it isn't part of the very first release. But obviously it would be great if we could get it into 8.0.0 to reduce frustration.

Contributor

jkrems commented May 26, 2017

It's CC side, we don't have a well guarded process.emitWarning.
What would you suggest: [...]

I think @jasnell was suggesting the bootstrap hint:

This can be done by setting a flag and later calling process.emitWarning() during bootstrapping.

@roblourens Thanks for spamming this PR. Yes, this definitely should get into Node 8. It's not semver-major so we can still land it in node 8 even it isn't part of the very first release. But obviously it would be great if we could get it into 8.0.0 to reduce frustration.

@roblourens

This comment has been minimized.

Show comment
Hide comment
@roblourens

roblourens May 26, 2017

After the really extensive discussion we had about this, my understanding was that we could fix it for 8.0.0 so that there wouldn't be any version of Node that vscode and other clients can't debug. Even if we don't have the perfect deprecation warning, I think it's really important to get something out to not leave a gap like that.

roblourens commented May 26, 2017

After the really extensive discussion we had about this, my understanding was that we could fix it for 8.0.0 so that there wouldn't be any version of Node that vscode and other clients can't debug. Even if we don't have the perfect deprecation warning, I think it's really important to get something out to not leave a gap like that.

@refack

This comment has been minimized.

Show comment
Hide comment
@refack

refack May 26, 2017

Member

After the really extensive discussion we had about this, my understanding was that we could fix it for 8.0.0 so that there wouldn't be any version of Node that vscode and other clients can't debug. Even if we don't have the perfect deprecation warning, I think it's really important to get something out to not leave a gap like that.

Yep. I'll finish this today.
@roblourens thanks you the ping

Member

refack commented May 26, 2017

After the really extensive discussion we had about this, my understanding was that we could fix it for 8.0.0 so that there wouldn't be any version of Node that vscode and other clients can't debug. Even if we don't have the perfect deprecation warning, I think it's really important to get something out to not leave a gap like that.

Yep. I'll finish this today.
@roblourens thanks you the ping

@roblourens

This comment has been minimized.

Show comment
Hide comment
@roblourens

roblourens May 26, 2017

Thanks! Really appreciate the work you all do to make sure it's done right.

roblourens commented May 26, 2017

Thanks! Really appreciate the work you all do to make sure it's done right.

@refack

This comment has been minimized.

Show comment
Hide comment
@refack

refack May 28, 2017

Member

CI: https://ci.nodejs.org/job/node-test-commit/10211/
Still only 95% ready, but I've pushed it for some early feedback.
/cc @nodejs/diagnostics @jkrems @joshgav @jasnell

Member

refack commented May 28, 2017

CI: https://ci.nodejs.org/job/node-test-commit/10211/
Still only 95% ready, but I've pushed it for some early feedback.
/cc @nodejs/diagnostics @jkrems @joshgav @jasnell

Show outdated Hide outdated lib/internal/bootstrap_node.js
@@ -1,4 +1,4 @@
// Hello, and welcome to hacking node.js!
// Hello, and welcome to hacking node.js!

This comment has been minimized.

@jkrems

jkrems May 28, 2017

Contributor

I can only guess that this is caused by BOM or something like that..?

@jkrems

jkrems May 28, 2017

Contributor

I can only guess that this is caused by BOM or something like that..?

This comment has been minimized.

@refack

refack May 28, 2017

Member

Yeah, I'll get rid of it.

@refack

refack May 28, 2017

Member

Yeah, I'll get rid of it.

@jkrems

This comment has been minimized.

Show comment
Hide comment
@jkrems

jkrems May 28, 2017

Contributor

Latest changes look good (minus build/lint errors and weird first line "changes")!

Contributor

jkrems commented May 28, 2017

Latest changes look good (minus build/lint errors and weird first line "changes")!

@refack

This comment has been minimized.

Show comment
Hide comment

@refack refack self-assigned this May 29, 2017

@refack refack removed the in progress label May 29, 2017

@refack

This comment has been minimized.

Show comment
Hide comment
@refack

refack May 29, 2017

Member

Done. PTAL.
Final state:

  1. --inspect --debug-brk = --inspect-brk + deprecation warning
  2. --debug-brk / --debug = invalid + deprecation warning

There is one caveat: --inspect --debug-brk will emit the deprecation warning only after the debugger attaches (since the break happens before bootstrap.js)

New new CI: https://ci.nodejs.org/job/node-test-commit/10213/

Member

refack commented May 29, 2017

Done. PTAL.
Final state:

  1. --inspect --debug-brk = --inspect-brk + deprecation warning
  2. --debug-brk / --debug = invalid + deprecation warning

There is one caveat: --inspect --debug-brk will emit the deprecation warning only after the debugger attaches (since the break happens before bootstrap.js)

New new CI: https://ci.nodejs.org/job/node-test-commit/10213/

@refack refack referenced this pull request May 29, 2017

Closed

8.0.0 Release Proposal #12220

@jasnell

There are a few things I'd prefer to be different but those could be changed later, I suppose.

Show outdated Hide outdated src/node.cc
// --inspect-brk
if (debug_options.wait_for_connect()) {
READONLY_PROPERTY(process, "_debugWaitConnect", True(env->isolate()));
READONLY_DONT_ENUM_PROPERTY(process,
"_breakFirstLine", True(env->isolate()));

This comment has been minimized.

@jasnell

jasnell May 29, 2017

Member

I would much prefer to hang these off process.binding('config') than add new _ prefixed properties off process.

@jasnell

jasnell May 29, 2017

Member

I would much prefer to hang these off process.binding('config') than add new _ prefixed properties off process.

This comment has been minimized.

@refack

refack May 29, 2017

Member

I just tried but it's kind of a mess because of the need to share node::DebugOptions debug_options
I'll put a TODO, and open a new PR

@refack

refack May 29, 2017

Member

I just tried but it's kind of a mess because of the need to share node::DebugOptions debug_options
I'll put a TODO, and open a new PR

@refack refack closed this May 29, 2017

@refack refack merged commit 16689e3 into nodejs:master May 29, 2017

@refack

This comment has been minimized.

Show comment
Hide comment
@refack

refack May 29, 2017

Member

Landed in 16689e3

Member

refack commented May 29, 2017

Landed in 16689e3

@refack refack deleted the refack:new-12580-restore-debug-brk branch May 29, 2017

jasnell added a commit that referenced this pull request May 29, 2017

inspector: --debug* deprecation and invalidation
PR-URL: #12949
Fixes: #12364
Fixes: #12630
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Jan Krems <jan.krems@gmail.com>

jasnell added a commit to jasnell/node that referenced this pull request May 29, 2017

2017-05-30, Version 8.0.0 (Current)
* **Async Hooks**
  * The `async_hooks` module has landed in core
    [[`4a7233c178`](nodejs@4a7233c]
    [#12892](nodejs#12892).

* **Buffer**
  * Using the `--pending-deprecation` flag will cause Node.js to emit a
    deprecation warning when using `new Buffer(num)` or `Buffer(num)`.
    [[`d2d32ea5a2`](nodejs@d2d32ea]
    [#11968](nodejs#11968).
  * `new Buffer(num)` and `Buffer(num)` will zero-fill new `Buffer` instances
    [[`7eb1b4658e`](nodejs@7eb1b46]
    [#12141](nodejs#12141).
  * Many `Buffer` methods now accept `Uint8Array` as input
    [[`beca3244e2`](nodejs@beca324]
    [#10236](nodejs#10236).

* **Child Process**
  * Argument and kill signal validations have been improved
    [[`97a77288ce`](nodejs@97a7728]
    [#12348](nodejs#12348),
    [[`d75fdd96aa`](nodejs@d75fdd9]
    [#10423](nodejs#10423).
  * Child Process methods accept `Uint8Array` as input
    [[`627ecee9ed`](nodejs@627ecee]
    [#10653](nodejs#10653).

* **Console**
  * Error events emitted when using `console` methods are now supressed.
    [[`f18e08d820`](nodejs@f18e08d]
    [#9744](nodejs#9744).

* **Dependencies**
  * The npm client has been updated to 5.0.0
    [[`3c3b36af0f`](nodejs@3c3b36a]
    [#12936](nodejs#12936).
  * V8 has been updated to 5.8 with forward ABI stability to 6.0
    [[`60d1aac8d2`](nodejs@60d1aac]
    [#12784](nodejs#12784).

* **Domains**
  * Native `Promise` instances are now `Domain` aware
    [[`84dabe8373`](nodejs@84dabe8]
    [#12489](nodejs#12489).

* **Errors**
  * We have started assigning static error codes to errors generated by Node.js.
    This has been done through multiple commits and is still a work in
    progress.

* **File System**
  * The utility class `fs.SyncWriteStream` has been deprecated
    [[`7a55e34ef4`](nodejs@7a55e34]
    [#10467](nodejs#10467).
  * The deprecated `fs.read()` string interface has been removed
    [[`3c2a9361ff`](nodejs@3c2a936]
    [#9683](nodejs#9683).

* **HTTP**
  * Improved support for userland implemented Agents
    [[`90403dd1d0`](nodejs@90403dd]
    [#11567](nodejs#11567).
  * Outgoing Cookie headers are concatenated into a single string
    [[`d3480776c7`](nodejs@d348077]
    [#11259](nodejs#11259).
  * The `httpResponse.writeHeader()` method has been deprecated
    [[`fb71ba4921`](nodejs@fb71ba4]
    [#11355](nodejs#11355).
  * New methods for accessing HTTP headers have been added to `OutgoingMessage`
    [[`3e6f1032a4`](nodejs@3e6f103]
    [#10805](nodejs#10805).

* **Lib**
  * All deprecation messages have been assigned static identifiers
    [[`5de3cf099c`](nodejs@5de3cf0]
    [#10116](nodejs#10116).
  * The legacy `linkedlist` module has been removed
    [[`84a23391f6`](nodejs@84a2339]
    [#12113](nodejs#12113).

* **N-API**
  * Experimental support for the new N-API API has been added
    [[`56e881d0b0`](nodejs@56e881d]
    [#11975](nodejs#11975).

* **Process**
  * Process warning output can be redirected to a file using the
    `--redirect-warnings` command-line argument
    [[`03e89b3ff2`](nodejs@03e89b3]
    [#10116](nodejs#10116).
  * Process warnings may now include additional detail
    [[`dd20e68b0f`](nodejs@dd20e68]
    [#12725](nodejs#12725).

* **REPL**
  * REPL magic mode has been deprecated
    [[`3f27f02da0`](nodejs@3f27f02]
    [#11599](nodejs#11599).

* **Src**
  * `NODE_MODULE_VERSION` has been updated to 57
    (nodejs@ec7cbaf]
    [#12995](nodejs#12995).
  * Add `--pending-deprecation` command-line argument and
    `NODE_PENDING_DEPRECATION` environment variable
    [[`a16b570f8c`](nodejs@a16b570]
    [#11968](nodejs#11968).
  * The `--debug` command-line argument has been deprecated. Note that
    using `--debug` will enable the *new* Inspector-based debug protocol
    as the legacy Debugger protocol previously used by Node.js has been
    removed. [[`010f864426`](nodejs@010f864]
    [#12949](nodejs#12949).
  * Throw when the `-c` and `-e` command-line arguments are used at the same
    time [[`a5f91ab230`](nodejs@a5f91ab]
    [#11689](nodejs#11689).
  * Throw when the `--use-bundled-ca` and `--use-openssl-ca` command-line
    arguments are used at the same time.
    [[`8a7db9d4b5`](nodejs@8a7db9d]
    [#12087](nodejs#12087).

* **Stream**
  * `Stream` now supports `destroy()` and `_destroy()` APIs
    [[`b6e1d22fa6`](nodejs@b6e1d22]
    [#12925](nodejs#12925).
  * `Stream` now supports the `_final()` API
    [[`07c7f198db`](nodejs@07c7f19]
    [#12828](nodejs#12828).

* **TLS**
  * The `rejectUnauthorized` option now defaults to `true`
    [[`348cc80a3c`](nodejs@348cc80]
    [#5923](nodejs#5923).
  * The `tls.createSecurePair()` API now emits a runtime deprecation
    [[`a2ae08999b`](nodejs@a2ae089]
    [#11349](nodejs#11349).
  * A runtime deprecation will now be emitted when `dhparam` is less than
    2048 bits [[`d523eb9c40`](nodejs@d523eb9]
    [#11447](nodejs#11447).

* **URL**
  * The WHATWG URL implementation is now a fully-supported Node.js API
    [[`d080ead0f9`](nodejs@d080ead]
    [#12710](nodejs#12710).

* **Util**
  * `Symbol` keys are now displayed by default when using `util.inspect()`
    [[`5bfd13b81e`](nodejs@5bfd13b]
    [#9726](nodejs#9726).
  * `toJSON` errors will be thrown when formatting `%j`
    [[`455e6f1dd8`](nodejs@455e6f1]
    [#11708](nodejs#11708).
  * Convert `inspect.styles` and `inspect.colors` to prototype-less objects
    [[`aab0d202f8`](nodejs@aab0d20]
    [#11624](nodejs#11624).
  * The new `util.promisify()` API has been added
    [[`99da8e8e02`](nodejs@99da8e8]
    [#12442](nodejs#12442).

* **Zlib**
  * Support `Uint8Array` in Zlib convenience methods
    [[`91383e47fd`](nodejs@91383e4]
    [#12001](nodejs#12001).
  * Zlib errors now use `RangeError` and `TypeError` consistently
    [[`b514bd231e`](nodejs@b514bd2]
    [#11391](nodejs#11391).

jasnell added a commit that referenced this pull request May 30, 2017

2017-05-30, Version 8.0.0 (Current)
* **Async Hooks**
  * The `async_hooks` module has landed in core
    [[`4a7233c178`](4a7233c]
    [#12892](#12892).

* **Buffer**
  * Using the `--pending-deprecation` flag will cause Node.js to emit a
    deprecation warning when using `new Buffer(num)` or `Buffer(num)`.
    [[`d2d32ea5a2`](d2d32ea]
    [#11968](#11968).
  * `new Buffer(num)` and `Buffer(num)` will zero-fill new `Buffer` instances
    [[`7eb1b4658e`](7eb1b46]
    [#12141](#12141).
  * Many `Buffer` methods now accept `Uint8Array` as input
    [[`beca3244e2`](beca324]
    [#10236](#10236).

* **Child Process**
  * Argument and kill signal validations have been improved
    [[`97a77288ce`](97a7728]
    [#12348](#12348),
    [[`d75fdd96aa`](d75fdd9]
    [#10423](#10423).
  * Child Process methods accept `Uint8Array` as input
    [[`627ecee9ed`](627ecee]
    [#10653](#10653).

* **Console**
  * Error events emitted when using `console` methods are now supressed.
    [[`f18e08d820`](f18e08d]
    [#9744](#9744).

* **Dependencies**
  * The npm client has been updated to 5.0.0
    [[`3c3b36af0f`](3c3b36a]
    [#12936](#12936).
  * V8 has been updated to 5.8 with forward ABI stability to 6.0
    [[`60d1aac8d2`](60d1aac]
    [#12784](#12784).

* **Domains**
  * Native `Promise` instances are now `Domain` aware
    [[`84dabe8373`](84dabe8]
    [#12489](#12489).

* **Errors**
  * We have started assigning static error codes to errors generated by Node.js.
    This has been done through multiple commits and is still a work in
    progress.

* **File System**
  * The utility class `fs.SyncWriteStream` has been deprecated
    [[`7a55e34ef4`](7a55e34]
    [#10467](#10467).
  * The deprecated `fs.read()` string interface has been removed
    [[`3c2a9361ff`](3c2a936]
    [#9683](#9683).

* **HTTP**
  * Improved support for userland implemented Agents
    [[`90403dd1d0`](90403dd]
    [#11567](#11567).
  * Outgoing Cookie headers are concatenated into a single string
    [[`d3480776c7`](d348077]
    [#11259](#11259).
  * The `httpResponse.writeHeader()` method has been deprecated
    [[`fb71ba4921`](fb71ba4]
    [#11355](#11355).
  * New methods for accessing HTTP headers have been added to `OutgoingMessage`
    [[`3e6f1032a4`](3e6f103]
    [#10805](#10805).

* **Lib**
  * All deprecation messages have been assigned static identifiers
    [[`5de3cf099c`](5de3cf0]
    [#10116](#10116).
  * The legacy `linkedlist` module has been removed
    [[`84a23391f6`](84a2339]
    [#12113](#12113).

* **N-API**
  * Experimental support for the new N-API API has been added
    [[`56e881d0b0`](56e881d]
    [#11975](#11975).

* **Process**
  * Process warning output can be redirected to a file using the
    `--redirect-warnings` command-line argument
    [[`03e89b3ff2`](03e89b3]
    [#10116](#10116).
  * Process warnings may now include additional detail
    [[`dd20e68b0f`](dd20e68]
    [#12725](#12725).

* **REPL**
  * REPL magic mode has been deprecated
    [[`3f27f02da0`](3f27f02]
    [#11599](#11599).

* **Src**
  * `NODE_MODULE_VERSION` has been updated to 57
    (ec7cbaf]
    [#12995](#12995).
  * Add `--pending-deprecation` command-line argument and
    `NODE_PENDING_DEPRECATION` environment variable
    [[`a16b570f8c`](a16b570]
    [#11968](#11968).
  * The `--debug` command-line argument has been deprecated. Note that
    using `--debug` will enable the *new* Inspector-based debug protocol
    as the legacy Debugger protocol previously used by Node.js has been
    removed. [[`010f864426`](010f864]
    [#12949](#12949).
  * Throw when the `-c` and `-e` command-line arguments are used at the same
    time [[`a5f91ab230`](a5f91ab]
    [#11689](#11689).
  * Throw when the `--use-bundled-ca` and `--use-openssl-ca` command-line
    arguments are used at the same time.
    [[`8a7db9d4b5`](8a7db9d]
    [#12087](#12087).

* **Stream**
  * `Stream` now supports `destroy()` and `_destroy()` APIs
    [[`b6e1d22fa6`](b6e1d22]
    [#12925](#12925).
  * `Stream` now supports the `_final()` API
    [[`07c7f198db`](07c7f19]
    [#12828](#12828).

* **TLS**
  * The `rejectUnauthorized` option now defaults to `true`
    [[`348cc80a3c`](348cc80]
    [#5923](#5923).
  * The `tls.createSecurePair()` API now emits a runtime deprecation
    [[`a2ae08999b`](a2ae089]
    [#11349](#11349).
  * A runtime deprecation will now be emitted when `dhparam` is less than
    2048 bits [[`d523eb9c40`](d523eb9]
    [#11447](#11447).

* **URL**
  * The WHATWG URL implementation is now a fully-supported Node.js API
    [[`d080ead0f9`](d080ead]
    [#12710](#12710).

* **Util**
  * `Symbol` keys are now displayed by default when using `util.inspect()`
    [[`5bfd13b81e`](5bfd13b]
    [#9726](#9726).
  * `toJSON` errors will be thrown when formatting `%j`
    [[`455e6f1dd8`](455e6f1]
    [#11708](#11708).
  * Convert `inspect.styles` and `inspect.colors` to prototype-less objects
    [[`aab0d202f8`](aab0d20]
    [#11624](#11624).
  * The new `util.promisify()` API has been added
    [[`99da8e8e02`](99da8e8]
    [#12442](#12442).

* **Zlib**
  * Support `Uint8Array` in Zlib convenience methods
    [[`91383e47fd`](91383e4]
    [#12001](#12001).
  * Zlib errors now use `RangeError` and `TypeError` consistently
    [[`b514bd231e`](b514bd2]
    [#11391](#11391).

jasnell added a commit that referenced this pull request May 30, 2017

2017-05-30, Version 8.0.0 (Current)
* **Async Hooks**
  * The `async_hooks` module has landed in core
    [[`4a7233c178`](4a7233c)]
    [#12892](#12892).

* **Buffer**
  * Using the `--pending-deprecation` flag will cause Node.js to emit a
    deprecation warning when using `new Buffer(num)` or `Buffer(num)`.
    [[`d2d32ea5a2`](d2d32ea)]
    [#11968](#11968).
  * `new Buffer(num)` and `Buffer(num)` will zero-fill new `Buffer` instances
    [[`7eb1b4658e`](7eb1b46)]
    [#12141](#12141).
  * Many `Buffer` methods now accept `Uint8Array` as input
    [[`beca3244e2`](beca324)]
    [#10236](#10236).

* **Child Process**
  * Argument and kill signal validations have been improved
    [[`97a77288ce`](97a7728)]
    [#12348](#12348),
    [[`d75fdd96aa`](d75fdd9)]
    [#10423](#10423).
  * Child Process methods accept `Uint8Array` as input
    [[`627ecee9ed`](627ecee)]
    [#10653](#10653).

* **Console**
  * Error events emitted when using `console` methods are now supressed.
    [[`f18e08d820`](f18e08d)]
    [#9744](#9744).

* **Dependencies**
  * The npm client has been updated to 5.0.0
    [[`3c3b36af0f`](3c3b36a)]
    [#12936](#12936).
  * V8 has been updated to 5.8 with forward ABI stability to 6.0
    [[`60d1aac8d2`](60d1aac)]
    [#12784](#12784).

* **Domains**
  * Native `Promise` instances are now `Domain` aware
    [[`84dabe8373`](84dabe8)]
    [#12489](#12489).

* **Errors**
  * We have started assigning static error codes to errors generated by Node.js.
    This has been done through multiple commits and is still a work in
    progress.

* **File System**
  * The utility class `fs.SyncWriteStream` has been deprecated
    [[`7a55e34ef4`](7a55e34)]
    [#10467](#10467).
  * The deprecated `fs.read()` string interface has been removed
    [[`3c2a9361ff`](3c2a936)]
    [#9683](#9683).

* **HTTP**
  * Improved support for userland implemented Agents
    [[`90403dd1d0`](90403dd)]
    [#11567](#11567).
  * Outgoing Cookie headers are concatenated into a single string
    [[`d3480776c7`](d348077)]
    [#11259](#11259).
  * The `httpResponse.writeHeader()` method has been deprecated
    [[`fb71ba4921`](fb71ba4)]
    [#11355](#11355).
  * New methods for accessing HTTP headers have been added to `OutgoingMessage`
    [[`3e6f1032a4`](3e6f103)]
    [#10805](#10805).

* **Lib**
  * All deprecation messages have been assigned static identifiers
    [[`5de3cf099c`](5de3cf0)]
    [#10116](#10116).
  * The legacy `linkedlist` module has been removed
    [[`84a23391f6`](84a2339)]
    [#12113](#12113).

* **N-API**
  * Experimental support for the new N-API API has been added
    [[`56e881d0b0`](56e881d)]
    [#11975](#11975).

* **Process**
  * Process warning output can be redirected to a file using the
    `--redirect-warnings` command-line argument
    [[`03e89b3ff2`](03e89b3)]
    [#10116](#10116).
  * Process warnings may now include additional detail
    [[`dd20e68b0f`](dd20e68)]
    [#12725](#12725).

* **REPL**
  * REPL magic mode has been deprecated
    [[`3f27f02da0`](3f27f02)]
    [#11599](#11599).

* **Src**
  * `NODE_MODULE_VERSION` has been updated to 57
    (ec7cbaf)]
    [#12995](#12995).
  * Add `--pending-deprecation` command-line argument and
    `NODE_PENDING_DEPRECATION` environment variable
    [[`a16b570f8c`](a16b570)]
    [#11968](#11968).
  * The `--debug` command-line argument has been deprecated. Note that
    using `--debug` will enable the *new* Inspector-based debug protocol
    as the legacy Debugger protocol previously used by Node.js has been
    removed. [[`010f864426`](010f864)]
    [#12949](#12949).
  * Throw when the `-c` and `-e` command-line arguments are used at the same
    time [[`a5f91ab230`](a5f91ab)]
    [#11689](#11689).
  * Throw when the `--use-bundled-ca` and `--use-openssl-ca` command-line
    arguments are used at the same time.
    [[`8a7db9d4b5`](8a7db9d)]
    [#12087](#12087).

* **Stream**
  * `Stream` now supports `destroy()` and `_destroy()` APIs
    [[`b6e1d22fa6`](b6e1d22)]
    [#12925](#12925).
  * `Stream` now supports the `_final()` API
    [[`07c7f198db`](07c7f19)]
    [#12828](#12828).

* **TLS**
  * The `rejectUnauthorized` option now defaults to `true`
    [[`348cc80a3c`](348cc80)]
    [#5923](#5923).
  * The `tls.createSecurePair()` API now emits a runtime deprecation
    [[`a2ae08999b`](a2ae089)]
    [#11349](#11349).
  * A runtime deprecation will now be emitted when `dhparam` is less than
    2048 bits [[`d523eb9c40`](d523eb9)]
    [#11447](#11447).

* **URL**
  * The WHATWG URL implementation is now a fully-supported Node.js API
    [[`d080ead0f9`](d080ead)]
    [#12710](#12710).

* **Util**
  * `Symbol` keys are now displayed by default when using `util.inspect()`
    [[`5bfd13b81e`](5bfd13b)]
    [#9726](#9726).
  * `toJSON` errors will be thrown when formatting `%j`
    [[`455e6f1dd8`](455e6f1)]
    [#11708](#11708).
  * Convert `inspect.styles` and `inspect.colors` to prototype-less objects
    [[`aab0d202f8`](aab0d20)]
    [#11624](#11624).
  * The new `util.promisify()` API has been added
    [[`99da8e8e02`](99da8e8)]
    [#12442](#12442).

* **Zlib**
  * Support `Uint8Array` in Zlib convenience methods
    [[`91383e47fd`](91383e4)]
    [#12001](#12001).
  * Zlib errors now use `RangeError` and `TypeError` consistently
    [[`b514bd231e`](b514bd2)]
    [#11391](#11391).

cjihrig added a commit to cjihrig/node-1 that referenced this pull request Jun 6, 2017

src: remove process._inspectorEnbale
This commit removes process._inspectorEnbale which was
spelled incorrectly, and is being properly implemented
in a separate PR.

Refs: nodejs#12949
PR-URL: nodejs#13460
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Luca Maraschi <luca.maraschi@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>

jasnell added a commit that referenced this pull request Jun 7, 2017

src: remove process._inspectorEnbale
This commit removes process._inspectorEnbale which was
spelled incorrectly, and is being properly implemented
in a separate PR.

Refs: #12949
PR-URL: #13460
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Luca Maraschi <luca.maraschi@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>

@refack refack removed their assignment Jun 12, 2017

@refack refack referenced this pull request Jun 12, 2017

Closed

Fixed cluster inspect port logic #13619

3 of 3 tasks complete

@gibfahn gibfahn referenced this pull request Jun 15, 2017

Closed

Auditing for 6.11.1 #230

2 of 3 tasks complete
@MylesBorins

This comment has been minimized.

Show comment
Hide comment
@MylesBorins

MylesBorins Jul 17, 2017

Member

Should this be backported to v6.x?

Member

MylesBorins commented Jul 17, 2017

Should this be backported to v6.x?

@refack

This comment has been minimized.

Show comment
Hide comment
@refack

refack Jul 17, 2017

Member

Should this be backported to v6.x?

I'm not sure. Ping @nodejs/diagnostics, @nodejs/release should we / could we replace the:

Warning: This is an experimental feature and could change at any time.

with

(node:13156) [DEP0062] DeprecationWarning: `node --inspect --debug-brk` is deprecated. Please use `node --inspect-brk` instead.
Member

refack commented Jul 17, 2017

Should this be backported to v6.x?

I'm not sure. Ping @nodejs/diagnostics, @nodejs/release should we / could we replace the:

Warning: This is an experimental feature and could change at any time.

with

(node:13156) [DEP0062] DeprecationWarning: `node --inspect --debug-brk` is deprecated. Please use `node --inspect-brk` instead.
@jkrems

This comment has been minimized.

Show comment
Hide comment
@jkrems

jkrems Jul 18, 2017

Contributor
(node:13156) [DEP0062] DeprecationWarning: `node --inspect --debug-brk` is deprecated.
Please use `node --inspect-brk` instead.

Did we port --inspect-brk to 6.x yet? If so, then adding that warning sounds good.

Contributor

jkrems commented Jul 18, 2017

(node:13156) [DEP0062] DeprecationWarning: `node --inspect --debug-brk` is deprecated.
Please use `node --inspect-brk` instead.

Did we port --inspect-brk to 6.x yet? If so, then adding that warning sounds good.

@sam-github

This comment has been minimized.

Show comment
Hide comment
@sam-github

sam-github Jul 21, 2017

Member

Weird that the PR's file changes are empty, you need to explicitly look at 16689e3 to see what changed, but its a largish diff, with no docs (?), and the commit message doesn't say what it does.

@refack What did this PR do?

Add --debug-brk and --debug back in as an undocumented and deprecated option until 7.x is no longer
supported.

Is that still accurate? 7.x is no longer supported, so if this was a temporary measure to make 8.x and 7.x be more compatible, maybe it doesn't apply to 6.x, and can now be reversed on 8.x? Or on 9.x?

Member

sam-github commented Jul 21, 2017

Weird that the PR's file changes are empty, you need to explicitly look at 16689e3 to see what changed, but its a largish diff, with no docs (?), and the commit message doesn't say what it does.

@refack What did this PR do?

Add --debug-brk and --debug back in as an undocumented and deprecated option until 7.x is no longer
supported.

Is that still accurate? 7.x is no longer supported, so if this was a temporary measure to make 8.x and 7.x be more compatible, maybe it doesn't apply to 6.x, and can now be reversed on 8.x? Or on 9.x?

@refack

This comment has been minimized.

Show comment
Hide comment
@refack

refack Jul 21, 2017

Member

The main point was to make --inspect --debug-brk work again and emit a deprecation warning (while also making lone --debug and --debug-brk invalid):

if (process._invalidDebug) {
  process.emitWarning(
    '`node --debug` and `node --debug-brk` are invalid. ' +
    'Please use `node --inspect` or `node --inspect-brk` instead.',
    'DeprecationWarning', 'DEP0062', startup, true);
  process.exit(9);
} else if (process._deprecatedDebugBrk) {
  process.emitWarning(
    '`node --inspect --debug-brk` is deprecated. ' +
    'Please use `node --inspect-brk` instead.',
    'DeprecationWarning', 'DEP0062', startup, true);
}
Add --debug-brk and --debug back in as an undocumented and deprecated option
until 7.x is no longer supported.

Is that still accurate? 7.x is no longer supported, so if this was a temporary measure to make 8.x and 7.x be more compatible, maybe it doesn't apply to 6.x, and can now be reversed on 8.x? Or on 9.x?

I'm not sure it's accurate, well at least it's only part of the motivation. The other part is that 3rd party tooling depend on the --inspect --debug-brk combo, so IMHO we need to wait at least a year (an arbitrary measure of tools' version lifespan).
Also we declared the combo "valid but deprecated" so it needs to stay within the v8.x line.


As for backporting to v6.x, there the use of any --inspect* argument emits an experimental warning. IMHO that is no longer true, and should be removed and probably replaced with a deprecation warning for --debug*. Anyway emitting both for the --inspect --debug-break combo does not make sense.

Member

refack commented Jul 21, 2017

The main point was to make --inspect --debug-brk work again and emit a deprecation warning (while also making lone --debug and --debug-brk invalid):

if (process._invalidDebug) {
  process.emitWarning(
    '`node --debug` and `node --debug-brk` are invalid. ' +
    'Please use `node --inspect` or `node --inspect-brk` instead.',
    'DeprecationWarning', 'DEP0062', startup, true);
  process.exit(9);
} else if (process._deprecatedDebugBrk) {
  process.emitWarning(
    '`node --inspect --debug-brk` is deprecated. ' +
    'Please use `node --inspect-brk` instead.',
    'DeprecationWarning', 'DEP0062', startup, true);
}
Add --debug-brk and --debug back in as an undocumented and deprecated option
until 7.x is no longer supported.

Is that still accurate? 7.x is no longer supported, so if this was a temporary measure to make 8.x and 7.x be more compatible, maybe it doesn't apply to 6.x, and can now be reversed on 8.x? Or on 9.x?

I'm not sure it's accurate, well at least it's only part of the motivation. The other part is that 3rd party tooling depend on the --inspect --debug-brk combo, so IMHO we need to wait at least a year (an arbitrary measure of tools' version lifespan).
Also we declared the combo "valid but deprecated" so it needs to stay within the v8.x line.


As for backporting to v6.x, there the use of any --inspect* argument emits an experimental warning. IMHO that is no longer true, and should be removed and probably replaced with a deprecation warning for --debug*. Anyway emitting both for the --inspect --debug-break combo does not make sense.

@sam-github

This comment has been minimized.

Show comment
Hide comment
@sam-github

sam-github Jul 21, 2017

Member

Thanks @refack . I marked as dont-land-on-v6.x. We could rearrange the warnings, etc., for inspect/debug on 6.x but in the absence of complaints, it just pokes a hornet's nest of questions. Making --debug emit new deprecation messages is semver-major, so it can't happen. Removing experimental warning for inspect could be considered semver-major, too.

Member

sam-github commented Jul 21, 2017

Thanks @refack . I marked as dont-land-on-v6.x. We could rearrange the warnings, etc., for inspect/debug on 6.x but in the absence of complaints, it just pokes a hornet's nest of questions. Making --debug emit new deprecation messages is semver-major, so it can't happen. Removing experimental warning for inspect could be considered semver-major, too.

@refack

This comment has been minimized.

Show comment
Hide comment
@refack

refack Jul 21, 2017

Member

Thanks @refack . I marked as dont-land-on-v6.x. We could rearrange the warnings, etc., for inspect/debug on 6.x but in the absence of complaints, it just pokes a hornet's nest of questions. Making --debug emit new deprecation messages is semver-major, so it can't happen. Removing experimental warning for inspect could be considered semver-major, too.

Sure, makes sense

Member

refack commented Jul 21, 2017

Thanks @refack . I marked as dont-land-on-v6.x. We could rearrange the warnings, etc., for inspect/debug on 6.x but in the absence of complaints, it just pokes a hornet's nest of questions. Making --debug emit new deprecation messages is semver-major, so it can't happen. Removing experimental warning for inspect could be considered semver-major, too.

Sure, makes sense

@gibfahn

This comment has been minimized.

Show comment
Hide comment
@gibfahn

gibfahn Jul 22, 2017

Member

Is that still accurate? 7.x is no longer supported, so if this was a temporary measure to make 8.x and 7.x be more compatible, maybe it doesn't apply to 6.x, and can now be reversed on 8.x? Or on 9.x?

I think the plan was to drop support for --debug-brk in a future release. I'd be fine with it happening in v9.x, @refack are you suggesting we wait till v10.x?

Member

gibfahn commented Jul 22, 2017

Is that still accurate? 7.x is no longer supported, so if this was a temporary measure to make 8.x and 7.x be more compatible, maybe it doesn't apply to 6.x, and can now be reversed on 8.x? Or on 9.x?

I think the plan was to drop support for --debug-brk in a future release. I'd be fine with it happening in v9.x, @refack are you suggesting we wait till v10.x?

@refack

This comment has been minimized.

Show comment
Hide comment
@refack

refack Jul 22, 2017

Member

@refack are you suggesting we wait till v10.x?

Yes.
To be clear: should be in 9, should not be in 10.
I would summon all the 3rd party stakeholders, but I think we can agree on this, and ping them when we do remove it.

Member

refack commented Jul 22, 2017

@refack are you suggesting we wait till v10.x?

Yes.
To be clear: should be in 9, should not be in 10.
I would summon all the 3rd party stakeholders, but I think we can agree on this, and ping them when we do remove it.

@jkrems

This comment has been minimized.

Show comment
Hide comment
@jkrems

jkrems Jul 22, 2017

Contributor

I would summon all the 3rd party stakeholders.

👍 to that. I think we saw that being a bit more conservative with changing this interface is healthy. Given that we have a chance to remove it every few month and (afaict) it's not causing a huge maintenance burden, there's no real pressure to remove it. Let's not forget that the latest LTS still requires all tools to use --inspect --debug-brk, so they couldn't even start using --inspect-brk realistically.

Contributor

jkrems commented Jul 22, 2017

I would summon all the 3rd party stakeholders.

👍 to that. I think we saw that being a bit more conservative with changing this interface is healthy. Given that we have a chance to remove it every few month and (afaict) it's not causing a huge maintenance burden, there's no real pressure to remove it. Let's not forget that the latest LTS still requires all tools to use --inspect --debug-brk, so they couldn't even start using --inspect-brk realistically.

@gibfahn

This comment has been minimized.

Show comment
Hide comment
@gibfahn

gibfahn Jul 23, 2017

Member

Happy to wait till 10.x.

Member

gibfahn commented Jul 23, 2017

Happy to wait till 10.x.

@segrey

This comment has been minimized.

Show comment
Hide comment
@segrey

segrey Jan 24, 2018

For some configurations IDE still uses --inspect --debug-brk combo without version detection: e.g. it's so for remote Node.js interpreters. It allows to target wide version range: node 6 (>= 6.3.0), 7, 8, 9 and node 10 nightly (tested on https://nodejs.org/download/nightly/v10.0.0-nightly201801239870b53810/). There will be problems if support for --inspect --debug-brk is dropped in node 10.x as it was planned.
@refack Is it possible to preserve --inspect --debug-brk in node 10 and future node versions until node 6 maintenance LTS ends (April 2019 according to https://github.com/nodejs/Release)? // cc @ulitink

segrey commented Jan 24, 2018

For some configurations IDE still uses --inspect --debug-brk combo without version detection: e.g. it's so for remote Node.js interpreters. It allows to target wide version range: node 6 (>= 6.3.0), 7, 8, 9 and node 10 nightly (tested on https://nodejs.org/download/nightly/v10.0.0-nightly201801239870b53810/). There will be problems if support for --inspect --debug-brk is dropped in node 10.x as it was planned.
@refack Is it possible to preserve --inspect --debug-brk in node 10 and future node versions until node 6 maintenance LTS ends (April 2019 according to https://github.com/nodejs/Release)? // cc @ulitink

gabrielschulhof added a commit to gabrielschulhof/node that referenced this pull request Mar 12, 2018

2017-05-30, Version 8.0.0 (Current)
* **Async Hooks**
  * The `async_hooks` module has landed in core
    [[`4a7233c178`](nodejs@4a7233c)]
    [#12892](nodejs#12892).

* **Buffer**
  * Using the `--pending-deprecation` flag will cause Node.js to emit a
    deprecation warning when using `new Buffer(num)` or `Buffer(num)`.
    [[`d2d32ea5a2`](nodejs@d2d32ea)]
    [#11968](nodejs#11968).
  * `new Buffer(num)` and `Buffer(num)` will zero-fill new `Buffer` instances
    [[`7eb1b4658e`](nodejs@7eb1b46)]
    [#12141](nodejs#12141).
  * Many `Buffer` methods now accept `Uint8Array` as input
    [[`beca3244e2`](nodejs@beca324)]
    [#10236](nodejs#10236).

* **Child Process**
  * Argument and kill signal validations have been improved
    [[`97a77288ce`](nodejs@97a7728)]
    [#12348](nodejs#12348),
    [[`d75fdd96aa`](nodejs@d75fdd9)]
    [#10423](nodejs#10423).
  * Child Process methods accept `Uint8Array` as input
    [[`627ecee9ed`](nodejs@627ecee)]
    [#10653](nodejs#10653).

* **Console**
  * Error events emitted when using `console` methods are now supressed.
    [[`f18e08d820`](nodejs@f18e08d)]
    [#9744](nodejs#9744).

* **Dependencies**
  * The npm client has been updated to 5.0.0
    [[`3c3b36af0f`](nodejs@3c3b36a)]
    [#12936](nodejs#12936).
  * V8 has been updated to 5.8 with forward ABI stability to 6.0
    [[`60d1aac8d2`](nodejs@60d1aac)]
    [#12784](nodejs#12784).

* **Domains**
  * Native `Promise` instances are now `Domain` aware
    [[`84dabe8373`](nodejs@84dabe8)]
    [#12489](nodejs#12489).

* **Errors**
  * We have started assigning static error codes to errors generated by Node.js.
    This has been done through multiple commits and is still a work in
    progress.

* **File System**
  * The utility class `fs.SyncWriteStream` has been deprecated
    [[`7a55e34ef4`](nodejs@7a55e34)]
    [#10467](nodejs#10467).
  * The deprecated `fs.read()` string interface has been removed
    [[`3c2a9361ff`](nodejs@3c2a936)]
    [#9683](nodejs#9683).

* **HTTP**
  * Improved support for userland implemented Agents
    [[`90403dd1d0`](nodejs@90403dd)]
    [#11567](nodejs#11567).
  * Outgoing Cookie headers are concatenated into a single string
    [[`d3480776c7`](nodejs@d348077)]
    [#11259](nodejs#11259).
  * The `httpResponse.writeHeader()` method has been deprecated
    [[`fb71ba4921`](nodejs@fb71ba4)]
    [#11355](nodejs#11355).
  * New methods for accessing HTTP headers have been added to `OutgoingMessage`
    [[`3e6f1032a4`](nodejs@3e6f103)]
    [#10805](nodejs#10805).

* **Lib**
  * All deprecation messages have been assigned static identifiers
    [[`5de3cf099c`](nodejs@5de3cf0)]
    [#10116](nodejs#10116).
  * The legacy `linkedlist` module has been removed
    [[`84a23391f6`](nodejs@84a2339)]
    [#12113](nodejs#12113).

* **N-API**
  * Experimental support for the new N-API API has been added
    [[`56e881d0b0`](nodejs@56e881d)]
    [#11975](nodejs#11975).

* **Process**
  * Process warning output can be redirected to a file using the
    `--redirect-warnings` command-line argument
    [[`03e89b3ff2`](nodejs@03e89b3)]
    [#10116](nodejs#10116).
  * Process warnings may now include additional detail
    [[`dd20e68b0f`](nodejs@dd20e68)]
    [#12725](nodejs#12725).

* **REPL**
  * REPL magic mode has been deprecated
    [[`3f27f02da0`](nodejs@3f27f02)]
    [#11599](nodejs#11599).

* **Src**
  * `NODE_MODULE_VERSION` has been updated to 57
    (nodejs@ec7cbaf)]
    [#12995](nodejs#12995).
  * Add `--pending-deprecation` command-line argument and
    `NODE_PENDING_DEPRECATION` environment variable
    [[`a16b570f8c`](nodejs@a16b570)]
    [#11968](nodejs#11968).
  * The `--debug` command-line argument has been deprecated. Note that
    using `--debug` will enable the *new* Inspector-based debug protocol
    as the legacy Debugger protocol previously used by Node.js has been
    removed. [[`010f864426`](nodejs@010f864)]
    [#12949](nodejs#12949).
  * Throw when the `-c` and `-e` command-line arguments are used at the same
    time [[`a5f91ab230`](nodejs@a5f91ab)]
    [#11689](nodejs#11689).
  * Throw when the `--use-bundled-ca` and `--use-openssl-ca` command-line
    arguments are used at the same time.
    [[`8a7db9d4b5`](nodejs@8a7db9d)]
    [#12087](nodejs#12087).

* **Stream**
  * `Stream` now supports `destroy()` and `_destroy()` APIs
    [[`b6e1d22fa6`](nodejs@b6e1d22)]
    [#12925](nodejs#12925).
  * `Stream` now supports the `_final()` API
    [[`07c7f198db`](nodejs@07c7f19)]
    [#12828](nodejs#12828).

* **TLS**
  * The `rejectUnauthorized` option now defaults to `true`
    [[`348cc80a3c`](nodejs@348cc80)]
    [#5923](nodejs#5923).
  * The `tls.createSecurePair()` API now emits a runtime deprecation
    [[`a2ae08999b`](nodejs@a2ae089)]
    [#11349](nodejs#11349).
  * A runtime deprecation will now be emitted when `dhparam` is less than
    2048 bits [[`d523eb9c40`](nodejs@d523eb9)]
    [#11447](nodejs#11447).

* **URL**
  * The WHATWG URL implementation is now a fully-supported Node.js API
    [[`d080ead0f9`](nodejs@d080ead)]
    [#12710](nodejs#12710).

* **Util**
  * `Symbol` keys are now displayed by default when using `util.inspect()`
    [[`5bfd13b81e`](nodejs@5bfd13b)]
    [#9726](nodejs#9726).
  * `toJSON` errors will be thrown when formatting `%j`
    [[`455e6f1dd8`](nodejs@455e6f1)]
    [#11708](nodejs#11708).
  * Convert `inspect.styles` and `inspect.colors` to prototype-less objects
    [[`aab0d202f8`](nodejs@aab0d20)]
    [#11624](nodejs#11624).
  * The new `util.promisify()` API has been added
    [[`99da8e8e02`](nodejs@99da8e8)]
    [#12442](nodejs#12442).

* **Zlib**
  * Support `Uint8Array` in Zlib convenience methods
    [[`91383e47fd`](nodejs@91383e4)]
    [#12001](nodejs#12001).
  * Zlib errors now use `RangeError` and `TypeError` consistently
    [[`b514bd231e`](nodejs@b514bd2)]
    [#11391](nodejs#11391).

This applies parts of 43e4efd that are
relevant to N-API.

gabrielschulhof added a commit to gabrielschulhof/node that referenced this pull request Mar 15, 2018

2017-05-30, Version 8.0.0 (Current)
* **Async Hooks**
  * The `async_hooks` module has landed in core
    [[`4a7233c178`](nodejs@4a7233c]
    [#12892](nodejs#12892).

* **Buffer**
  * Using the `--pending-deprecation` flag will cause Node.js to emit a
    deprecation warning when using `new Buffer(num)` or `Buffer(num)`.
    [[`d2d32ea5a2`](nodejs@d2d32ea]
    [#11968](nodejs#11968).
  * `new Buffer(num)` and `Buffer(num)` will zero-fill new `Buffer` instances
    [[`7eb1b4658e`](nodejs@7eb1b46]
    [#12141](nodejs#12141).
  * Many `Buffer` methods now accept `Uint8Array` as input
    [[`beca3244e2`](nodejs@beca324]
    [#10236](nodejs#10236).

* **Child Process**
  * Argument and kill signal validations have been improved
    [[`97a77288ce`](nodejs@97a7728]
    [#12348](nodejs#12348),
    [[`d75fdd96aa`](nodejs@d75fdd9]
    [#10423](nodejs#10423).
  * Child Process methods accept `Uint8Array` as input
    [[`627ecee9ed`](nodejs@627ecee]
    [#10653](nodejs#10653).

* **Console**
  * Error events emitted when using `console` methods are now supressed.
    [[`f18e08d820`](nodejs@f18e08d]
    [#9744](nodejs#9744).

* **Dependencies**
  * The npm client has been updated to 5.0.0
    [[`3c3b36af0f`](nodejs@3c3b36a]
    [#12936](nodejs#12936).
  * V8 has been updated to 5.8 with forward ABI stability to 6.0
    [[`60d1aac8d2`](nodejs@60d1aac]
    [#12784](nodejs#12784).

* **Domains**
  * Native `Promise` instances are now `Domain` aware
    [[`84dabe8373`](nodejs@84dabe8]
    [#12489](nodejs#12489).

* **Errors**
  * We have started assigning static error codes to errors generated by Node.js.
    This has been done through multiple commits and is still a work in
    progress.

* **File System**
  * The utility class `fs.SyncWriteStream` has been deprecated
    [[`7a55e34ef4`](nodejs@7a55e34]
    [#10467](nodejs#10467).
  * The deprecated `fs.read()` string interface has been removed
    [[`3c2a9361ff`](nodejs@3c2a936]
    [#9683](nodejs#9683).

* **HTTP**
  * Improved support for userland implemented Agents
    [[`90403dd1d0`](nodejs@90403dd]
    [#11567](nodejs#11567).
  * Outgoing Cookie headers are concatenated into a single string
    [[`d3480776c7`](nodejs@d348077]
    [#11259](nodejs#11259).
  * The `httpResponse.writeHeader()` method has been deprecated
    [[`fb71ba4921`](nodejs@fb71ba4]
    [#11355](nodejs#11355).
  * New methods for accessing HTTP headers have been added to `OutgoingMessage`
    [[`3e6f1032a4`](nodejs@3e6f103]
    [#10805](nodejs#10805).

* **Lib**
  * All deprecation messages have been assigned static identifiers
    [[`5de3cf099c`](nodejs@5de3cf0]
    [#10116](nodejs#10116).
  * The legacy `linkedlist` module has been removed
    [[`84a23391f6`](nodejs@84a2339]
    [#12113](nodejs#12113).

* **N-API**
  * Experimental support for the new N-API API has been added
    [[`56e881d0b0`](nodejs@56e881d]
    [#11975](nodejs#11975).

* **Process**
  * Process warning output can be redirected to a file using the
    `--redirect-warnings` command-line argument
    [[`03e89b3ff2`](nodejs@03e89b3]
    [#10116](nodejs#10116).
  * Process warnings may now include additional detail
    [[`dd20e68b0f`](nodejs@dd20e68]
    [#12725](nodejs#12725).

* **REPL**
  * REPL magic mode has been deprecated
    [[`3f27f02da0`](nodejs@3f27f02]
    [#11599](nodejs#11599).

* **Src**
  * `NODE_MODULE_VERSION` has been updated to 57
    (nodejs@ec7cbaf]
    [#12995](nodejs#12995).
  * Add `--pending-deprecation` command-line argument and
    `NODE_PENDING_DEPRECATION` environment variable
    [[`a16b570f8c`](nodejs@a16b570]
    [#11968](nodejs#11968).
  * The `--debug` command-line argument has been deprecated. Note that
    using `--debug` will enable the *new* Inspector-based debug protocol
    as the legacy Debugger protocol previously used by Node.js has been
    removed. [[`010f864426`](nodejs@010f864]
    [#12949](nodejs#12949).
  * Throw when the `-c` and `-e` command-line arguments are used at the same
    time [[`a5f91ab230`](nodejs@a5f91ab]
    [#11689](nodejs#11689).
  * Throw when the `--use-bundled-ca` and `--use-openssl-ca` command-line
    arguments are used at the same time.
    [[`8a7db9d4b5`](nodejs@8a7db9d]
    [#12087](nodejs#12087).

* **Stream**
  * `Stream` now supports `destroy()` and `_destroy()` APIs
    [[`b6e1d22fa6`](nodejs@b6e1d22]
    [#12925](nodejs#12925).
  * `Stream` now supports the `_final()` API
    [[`07c7f198db`](nodejs@07c7f19]
    [#12828](nodejs#12828).

* **TLS**
  * The `rejectUnauthorized` option now defaults to `true`
    [[`348cc80a3c`](nodejs@348cc80]
    [#5923](nodejs#5923).
  * The `tls.createSecurePair()` API now emits a runtime deprecation
    [[`a2ae08999b`](nodejs@a2ae089]
    [#11349](nodejs#11349).
  * A runtime deprecation will now be emitted when `dhparam` is less than
    2048 bits [[`d523eb9c40`](nodejs@d523eb9]
    [#11447](nodejs#11447).

* **URL**
  * The WHATWG URL implementation is now a fully-supported Node.js API
    [[`d080ead0f9`](nodejs@d080ead]
    [#12710](nodejs#12710).

* **Util**
  * `Symbol` keys are now displayed by default when using `util.inspect()`
    [[`5bfd13b81e`](nodejs@5bfd13b]
    [#9726](nodejs#9726).
  * `toJSON` errors will be thrown when formatting `%j`
    [[`455e6f1dd8`](nodejs@455e6f1]
    [#11708](nodejs#11708).
  * Convert `inspect.styles` and `inspect.colors` to prototype-less objects
    [[`aab0d202f8`](nodejs@aab0d20]
    [#11624](nodejs#11624).
  * The new `util.promisify()` API has been added
    [[`99da8e8e02`](nodejs@99da8e8]
    [#12442](nodejs#12442).

* **Zlib**
  * Support `Uint8Array` in Zlib convenience methods
    [[`91383e47fd`](nodejs@91383e4]
    [#12001](nodejs#12001).
  * Zlib errors now use `RangeError` and `TypeError` consistently
    [[`b514bd231e`](nodejs@b514bd2]
    [#11391](nodejs#11391).

This applies parts of 43e4efd that are
relevant to N-API.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment