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

fs: runtime deprecation for fs.SyncWriteStream #10467

Closed
wants to merge 1 commit into
base: master
from

Conversation

@jasnell
Member

jasnell commented Dec 27, 2016

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

fs

Description of change

This API was never intended to be made public and was docs-only
deprecated in Node.js 6.x. This upgrades to a runtime deprecation
for Node.js 8.0.0

@targos

targos approved these changes Dec 27, 2016

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Dec 30, 2016

Member

@nodejs/ctc ... any objections to this?

Member

jasnell commented Dec 30, 2016

@nodejs/ctc ... any objections to this?

@ChALkeR

This comment has been minimized.

Show comment
Hide comment
@ChALkeR

ChALkeR Dec 30, 2016

Member

Per #6749 (comment), the most significant user of SyncWriteStream is the debug npm module.

I filed visionmedia/debug#280 («fs.SyncWriteStream is pending removal») there back then, but, judging from the feedback, perhaps it's needed only for rare usage cases. I asked them a question in a comment, waiting for an answer.

I will run a search with newer data to see if there are other significant SyncWriteStream users.

In general, I'm +1 to runtime deprecation of SyncWriteStream in 8.0.

Member

ChALkeR commented Dec 30, 2016

Per #6749 (comment), the most significant user of SyncWriteStream is the debug npm module.

I filed visionmedia/debug#280 («fs.SyncWriteStream is pending removal») there back then, but, judging from the feedback, perhaps it's needed only for rare usage cases. I asked them a question in a comment, waiting for an answer.

I will run a search with newer data to see if there are other significant SyncWriteStream users.

In general, I'm +1 to runtime deprecation of SyncWriteStream in 8.0.

@thefourtheye

This comment has been minimized.

Show comment
Hide comment
@thefourtheye

thefourtheye Jan 2, 2017

Contributor

Please note that this changes the file permission of fs.js, from 100644 to 100755

Contributor

thefourtheye commented Jan 2, 2017

Please note that this changes the file permission of fs.js, from 100644 to 100755

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Jan 3, 2017

Member

grr.. yeah, was having some issues with the file permission config setting when I switched laptops and operating systems. Will get this fixed before landing.

Member

jasnell commented Jan 3, 2017

grr.. yeah, was having some issues with the file permission config setting when I switched laptops and operating systems. Will get this fixed before landing.

@thefourtheye

LGTM if CITGM and CI are happy.

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Jan 3, 2017

Member

filemode edit fixed

Member

jasnell commented Jan 3, 2017

filemode edit fixed

@evanlucas

This comment has been minimized.

Show comment
Hide comment
@evanlucas

evanlucas Jan 3, 2017

Member

-1 if this is being used by debug. That is used by like 80% of the entire ecosystem. Are we exposing something for them to use instead of this?

Member

evanlucas commented Jan 3, 2017

-1 if this is being used by debug. That is used by like 80% of the entire ecosystem. Are we exposing something for them to use instead of this?

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Jan 3, 2017

Member

No, the class was never intended to be made public and was never documented. The docs-only deprecation was added in v6 with the intention of upgrading it to a runtime deprecation. There is nothing to replace it with unless we want to reverse the deprecation and make it a fully supported API

Member

jasnell commented Jan 3, 2017

No, the class was never intended to be made public and was never documented. The docs-only deprecation was added in v6 with the intention of upgrading it to a runtime deprecation. There is nothing to replace it with unless we want to reverse the deprecation and make it a fully supported API

@evanlucas

This comment has been minimized.

Show comment
Hide comment
@evanlucas

evanlucas Jan 3, 2017

Member

Are we really going to add a runtime deprecation for a package that was downloaded 674,116 in the last day? It has 12,372 dependent (public) packages.

I'm -1 on this.

Member

evanlucas commented Jan 3, 2017

Are we really going to add a runtime deprecation for a package that was downloaded 674,116 in the last day? It has 12,372 dependent (public) packages.

I'm -1 on this.

@thefourtheye

This comment has been minimized.

Show comment
Hide comment
@thefourtheye

thefourtheye Jan 3, 2017

Contributor

@evanlucas Good call. FWIW visionmedia/debug#406 removes the usage of SyncWriteStream

Contributor

thefourtheye commented Jan 3, 2017

@evanlucas Good call. FWIW visionmedia/debug#406 removes the usage of SyncWriteStream

@evanlucas

This comment has been minimized.

Show comment
Hide comment
@evanlucas

evanlucas Jan 3, 2017

Member

@thefourtheye I saw that. My concern with that is that it will be done in a major bump (which it should), but that doesn't mean that all of the dependent packages will go through and update to debug@3

Member

evanlucas commented Jan 3, 2017

@thefourtheye I saw that. My concern with that is that it will be done in a major bump (which it should), but that doesn't mean that all of the dependent packages will go through and update to debug@3

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Jan 3, 2017

Member

That is the whole point of runtime deprecations is it not? To strongly encourage developers to move up to the newer version that does not have the problem?

Member

jasnell commented Jan 3, 2017

That is the whole point of runtime deprecations is it not? To strongly encourage developers to move up to the newer version that does not have the problem?

@evanlucas

This comment has been minimized.

Show comment
Hide comment
@evanlucas

evanlucas Jan 3, 2017

Member

That is the whole point of runtime deprecations is it not? To strongly encourage developers to move up to the newer version that does not have the problem?

Sure. That doesn't mean that it works. We even talked about this at NINA. Not everyone will update, just like we saw with Buffer without new. IMO, regardless of whether the API was meant to be made public, it still was made public. Is it a security issue or a severe performance hindrance? If not, I find it very hard to justify breaking the 675k 12k (public) packages that depend on it. What does deprecating this actually buy us?

Member

evanlucas commented Jan 3, 2017

That is the whole point of runtime deprecations is it not? To strongly encourage developers to move up to the newer version that does not have the problem?

Sure. That doesn't mean that it works. We even talked about this at NINA. Not everyone will update, just like we saw with Buffer without new. IMO, regardless of whether the API was meant to be made public, it still was made public. Is it a security issue or a severe performance hindrance? If not, I find it very hard to justify breaking the 675k 12k (public) packages that depend on it. What does deprecating this actually buy us?

@addaleax

This comment has been minimized.

Show comment
Hide comment
@addaleax

addaleax Jan 3, 2017

Member

What does deprecating this actually buy us?

I agree, I don’t really see so far what we are gaining by adding a runtime deprecations or why the original intentions of adding the API have an influence on which changes we make. (I don’t want to repeat everything I said in #7964 (comment), but imho we should always have a reason for adding deprecations that goes beyond “This is the next step in our deprecation policy”.)

breaking the 675k (public) packages that depend on it

That’s downloads/day, it’s “just” 12k packages ;)

Member

addaleax commented Jan 3, 2017

What does deprecating this actually buy us?

I agree, I don’t really see so far what we are gaining by adding a runtime deprecations or why the original intentions of adding the API have an influence on which changes we make. (I don’t want to repeat everything I said in #7964 (comment), but imho we should always have a reason for adding deprecations that goes beyond “This is the next step in our deprecation policy”.)

breaking the 675k (public) packages that depend on it

That’s downloads/day, it’s “just” 12k packages ;)

@ChALkeR

This comment has been minimized.

Show comment
Hide comment
@ChALkeR

ChALkeR Jan 3, 2017

Member

@evanlucas judging from the debug code, that line was hit only in the cases when DEBUG_FD enviroment variable was specified to something other than 1 or 2 and tty_wrap.guessHandleType returned 'FILE' from that specified DEBUG_FD.

Note that specifing any DEBUG_FD enviroment variable now causes a runtime deprecation on the current version of the debug module (2.6.0), which got there in a semver-minor update of debug: visionmedia/debug#405.

DEBUG_FD support is also removed in the next major version of debug.

Member

ChALkeR commented Jan 3, 2017

@evanlucas judging from the debug code, that line was hit only in the cases when DEBUG_FD enviroment variable was specified to something other than 1 or 2 and tty_wrap.guessHandleType returned 'FILE' from that specified DEBUG_FD.

Note that specifing any DEBUG_FD enviroment variable now causes a runtime deprecation on the current version of the debug module (2.6.0), which got there in a semver-minor update of debug: visionmedia/debug#405.

DEBUG_FD support is also removed in the next major version of debug.

@evanlucas

This comment has been minimized.

Show comment
Hide comment
@evanlucas

evanlucas Jan 5, 2017

Member

@ChALkeR that is a fair point.

Seeing as it is about to be removed, can we at least wait to deprecate until after debug@3 has been released?

Member

evanlucas commented Jan 5, 2017

@ChALkeR that is a fair point.

Seeing as it is about to be removed, can we at least wait to deprecate until after debug@3 has been released?

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Jan 5, 2017

Member

Holding off a bit is fine, there's no rush to get this landed. It can even land after 8.x is released if necessary

Member

jasnell commented Jan 5, 2017

Holding off a bit is fine, there's no rush to get this landed. It can even land after 8.x is released if necessary

@jasnell jasnell added the blocked label Jan 7, 2017

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Jan 7, 2017

Member

marking as blocked for the time being.

Member

jasnell commented Jan 7, 2017

marking as blocked for the time being.

@ChALkeR

This comment has been minimized.

Show comment
Hide comment
@ChALkeR

ChALkeR Jan 7, 2017

Member

I find it very hard to justify breaking the 675k 12k (public) packages that depend on it.

This does not «break» those 12k public packages.

This will add a runtime warning to the DEBUG_FD=3 node script.js 3>debug.log usecase of those packages, which already shoots runtime deprecation warnings from the debug side, as of debug 2.6.0: https://github.com/visionmedia/debug/blob/2.6.0/src/node.js#L61-L63.

I don't see why exactly should we wait for debug 3.0 to deprecate this, as the current version of debug already has DEBUG_FD functionality runtime-deprecated.

Member

ChALkeR commented Jan 7, 2017

I find it very hard to justify breaking the 675k 12k (public) packages that depend on it.

This does not «break» those 12k public packages.

This will add a runtime warning to the DEBUG_FD=3 node script.js 3>debug.log usecase of those packages, which already shoots runtime deprecation warnings from the debug side, as of debug 2.6.0: https://github.com/visionmedia/debug/blob/2.6.0/src/node.js#L61-L63.

I don't see why exactly should we wait for debug 3.0 to deprecate this, as the current version of debug already has DEBUG_FD functionality runtime-deprecated.

@evanlucas

This comment has been minimized.

Show comment
Hide comment
@evanlucas

evanlucas Jan 30, 2017

Member

@ChALkeR fair enough. Not sure why I had it set in my mind that it would.

Member

evanlucas commented Jan 30, 2017

@ChALkeR fair enough. Not sure why I had it set in my mind that it would.

@evanlucas

LGTM. Sorry for making such a fuss about it :]

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Jan 30, 2017

Member

@nodejs/ctc ... This has support from five CTC members already (including myself). Are there any objections to getting this landed?

Member

jasnell commented Jan 30, 2017

@nodejs/ctc ... This has support from five CTC members already (including myself). Are there any objections to getting this landed?

@mhdawson

LGTM

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Jan 31, 2017

Member

Rebasing and updating. Will give it another CI run before landing

Member

jasnell commented Jan 31, 2017

Rebasing and updating. Will give it another CI run before landing

@jasnell

This comment has been minimized.

Show comment
Hide comment
Member

jasnell commented Jan 31, 2017

@jasnell

This comment has been minimized.

Show comment
Hide comment
Member

jasnell commented Feb 3, 2017

@bnoordhuis

This comment has been minimized.

Show comment
Hide comment
@bnoordhuis

bnoordhuis Feb 7, 2017

Member

Is or will fs.SyncWriteStream be a maintenance burden? If yes, +1. If no, -1. I expect the answer is 'no'.

Member

bnoordhuis commented Feb 7, 2017

Is or will fs.SyncWriteStream be a maintenance burden? If yes, +1. If no, -1. I expect the answer is 'no'.

@rvagg

This comment has been minimized.

Show comment
Hide comment
@rvagg

rvagg Feb 8, 2017

Member

+1 I think. I'm leaning toward reducing the maintenance burden of APIs that we don't actually support—better to remove it as a possibility rather than accidentally break it for users in an unexpected way down the track. The use seems relatively low (when you consider that it's only used in a particular mode of debug), but I am a little nervous because we seem to go through this deprecate-complaints-panic-revert cycle with each major version these days which suggests we might not be doing it the right way.

Member

rvagg commented Feb 8, 2017

+1 I think. I'm leaning toward reducing the maintenance burden of APIs that we don't actually support—better to remove it as a possibility rather than accidentally break it for users in an unexpected way down the track. The use seems relatively low (when you consider that it's only used in a particular mode of debug), but I am a little nervous because we seem to go through this deprecate-complaints-panic-revert cycle with each major version these days which suggests we might not be doing it the right way.

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Feb 8, 2017

Member

So far the other discovered use has been a deprecated code path in a single module. There's simply no reason for this to remain a public API.

Member

jasnell commented Feb 8, 2017

So far the other discovered use has been a deprecated code path in a single module. There's simply no reason for this to remain a public API.

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Feb 8, 2017

Member

Rebased, new CI: https://ci.nodejs.org/job/node-test-pull-request/6289/

Seeing a quite odd failure on this in local test runs but having a heck of a time tracking it down. Thinking it may have something to do with some weird intersection with --inspect or --debug. /cc @joshgav

Member

jasnell commented Feb 8, 2017

Rebased, new CI: https://ci.nodejs.org/job/node-test-pull-request/6289/

Seeing a quite odd failure on this in local test runs but having a heck of a time tracking it down. Thinking it may have something to do with some weird intersection with --inspect or --debug. /cc @joshgav

fs: runtime deprecation for fs.SyncWriteStream
This API was never intended to be made public and was docs-only
deprecated in Node.js 6.x. This upgrades to a runtime deprecation
for Node.js 8.0.0
@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Feb 8, 2017

Member

Located this issue.. updated, new CI: https://ci.nodejs.org/job/node-test-pull-request/6291/

Member

jasnell commented Feb 8, 2017

Located this issue.. updated, new CI: https://ci.nodejs.org/job/node-test-pull-request/6291/

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Feb 8, 2017

Member

CI is green.
@bnoordhuis is your objection on this firm? @addaleax do you have any thoughts?
The majority opinion appears to be +1 on moving forward but I'd like to make sure we hear from everyone /cc @nodejs/ctc

Member

jasnell commented Feb 8, 2017

CI is green.
@bnoordhuis is your objection on this firm? @addaleax do you have any thoughts?
The majority opinion appears to be +1 on moving forward but I'd like to make sure we hear from everyone /cc @nodejs/ctc

@Trott

This comment has been minimized.

Show comment
Hide comment
@Trott

Trott Feb 8, 2017

Member

The majority opinion appears to be +1 on moving forward but I'd like to make sure we hear from everyone /cc @nodejs/ctc

If either @addaleax or @bnoordhuis objects to this (which it appears they do, contrary to my previous comment which had overlooked @addaleax's apparent objection), it can't land over those objections without the CTC as a whole taking action on it.

For the CTC to take action on it, you'll need 11 approvals (less if there are abstentions in a vote).

On the upside, there's no rush to land this, so if it has to wait (or never lands)...¯\(ツ)

Oh, FTR, I abstain. So now you need only 10 approvals to overcome objections. :-D

Member

Trott commented Feb 8, 2017

The majority opinion appears to be +1 on moving forward but I'd like to make sure we hear from everyone /cc @nodejs/ctc

If either @addaleax or @bnoordhuis objects to this (which it appears they do, contrary to my previous comment which had overlooked @addaleax's apparent objection), it can't land over those objections without the CTC as a whole taking action on it.

For the CTC to take action on it, you'll need 11 approvals (less if there are abstentions in a vote).

On the upside, there's no rush to land this, so if it has to wait (or never lands)...¯\(ツ)

Oh, FTR, I abstain. So now you need only 10 approvals to overcome objections. :-D

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Feb 8, 2017

Member

I don't think that's right. If a vote is called for, then yes, but a vote has not been called for. Specifically, as semver-major, this PR needs only at least two sign-offs from CTC members (which it has) and only requires CTC review if it "has failed to reach consensus amongst the Collaborators who are actively participating in the discussion.". There's nothing in the collaborator guide that says we have to go immediately to a vote. There's also nothing that says it cannot be landed over objections.

That said, I'd really rather not land it over objections which is why I'm reaching out to @addaleax and @bnoordhuis so let's see if we can get things resolved without resorting to a CTC vote.

Update: scratch that, I forgot about the update saying, "...and no Collaborators oppose the PR, it can be landed. Where there is disagreement among CTC members or objections from one or more Collaborators, semver-major pull requests should be put on the CTC meeting agenda. Even so, there's nothing that says we have to have a vote. I'll put this on the next CTC meeting agenda for discussion

Member

jasnell commented Feb 8, 2017

I don't think that's right. If a vote is called for, then yes, but a vote has not been called for. Specifically, as semver-major, this PR needs only at least two sign-offs from CTC members (which it has) and only requires CTC review if it "has failed to reach consensus amongst the Collaborators who are actively participating in the discussion.". There's nothing in the collaborator guide that says we have to go immediately to a vote. There's also nothing that says it cannot be landed over objections.

That said, I'd really rather not land it over objections which is why I'm reaching out to @addaleax and @bnoordhuis so let's see if we can get things resolved without resorting to a CTC vote.

Update: scratch that, I forgot about the update saying, "...and no Collaborators oppose the PR, it can be landed. Where there is disagreement among CTC members or objections from one or more Collaborators, semver-major pull requests should be put on the CTC meeting agenda. Even so, there's nothing that says we have to have a vote. I'll put this on the next CTC meeting agenda for discussion

@jasnell jasnell added ctc-agenda and removed ctc-review blocked labels Feb 8, 2017

@Trott

This comment has been minimized.

Show comment
Hide comment
@Trott

Trott Feb 8, 2017

Member

There's also nothing that says it cannot be landed over objections.

Sorry to have to disagree, but yes there is. (And I see you've found the relevant text yourself and edited your comment, so I'll drop that and move on to...)

Even so, there's nothing that says we have to have a vote.

If any CTC members object, then you may not land this without a vote. See https://github.com/nodejs/node/blob/master/GOVERNANCE.md#consensus-seeking-process.

It's technically true that you don't need to have a vote, but if there are objections from other CTC members, then you only have three options:

  • drop the issue entirely
  • engage with the objectors to convince them to drop their objections through compromise or other negotiation and persuasion
  • vote

Without a vote, the CTC may not act over the explicit objections of any CTC member.

Consensus (in the context of consensus-seeking governance) is not "most people seem in favor, so let's do it" although that's a common assumption people make. Instead, it is "no one is expressing opposition after being given sufficient opportunity to do so."

Member

Trott commented Feb 8, 2017

There's also nothing that says it cannot be landed over objections.

Sorry to have to disagree, but yes there is. (And I see you've found the relevant text yourself and edited your comment, so I'll drop that and move on to...)

Even so, there's nothing that says we have to have a vote.

If any CTC members object, then you may not land this without a vote. See https://github.com/nodejs/node/blob/master/GOVERNANCE.md#consensus-seeking-process.

It's technically true that you don't need to have a vote, but if there are objections from other CTC members, then you only have three options:

  • drop the issue entirely
  • engage with the objectors to convince them to drop their objections through compromise or other negotiation and persuasion
  • vote

Without a vote, the CTC may not act over the explicit objections of any CTC member.

Consensus (in the context of consensus-seeking governance) is not "most people seem in favor, so let's do it" although that's a common assumption people make. Instead, it is "no one is expressing opposition after being given sufficient opportunity to do so."

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Feb 9, 2017

Member

Yes, my apologies, I had forgotten about the part about bringing things to CTC review if there were any objections. Still, there's nothing that requires a vote. I've put this on the agenda for next weeks CTC call.

Member

jasnell commented Feb 9, 2017

Yes, my apologies, I had forgotten about the part about bringing things to CTC review if there were any objections. Still, there's nothing that requires a vote. I've put this on the agenda for next weeks CTC call.

@mikeal

This comment has been minimized.

Show comment
Hide comment
@mikeal

mikeal Feb 9, 2017

Member

Consensus (in the context of consensus-seeking governance) is not "most people seem in favor, so let's do it" although that's a common assumption people make. Instead, it is "no one is expressing opposition after being given sufficient opportunity to do so."

Correct, although I would note that it is only consensus among the committers involved in the discussion. People who fly into the comments and aren't committers are not counted in the consensus.

We have around a hundred committers, if any of them hold their objection it gets bubbled up to the CTC to see if the CTC can reach consensus. If they can't reach consensus a majority wins vote is called.

Member

mikeal commented Feb 9, 2017

Consensus (in the context of consensus-seeking governance) is not "most people seem in favor, so let's do it" although that's a common assumption people make. Instead, it is "no one is expressing opposition after being given sufficient opportunity to do so."

Correct, although I would note that it is only consensus among the committers involved in the discussion. People who fly into the comments and aren't committers are not counted in the consensus.

We have around a hundred committers, if any of them hold their objection it gets bubbled up to the CTC to see if the CTC can reach consensus. If they can't reach consensus a majority wins vote is called.

@bnoordhuis

This comment has been minimized.

Show comment
Hide comment
@bnoordhuis

bnoordhuis Feb 10, 2017

Member

If either @addaleax or @bnoordhuis objects to this

For my part, I don't object strenuously, I just don't see a pressing reason to remove it. If the majority is in favor, I have no problem with that. Put me down for -0.

Member

bnoordhuis commented Feb 10, 2017

If either @addaleax or @bnoordhuis objects to this

For my part, I don't object strenuously, I just don't see a pressing reason to remove it. If the majority is in favor, I have no problem with that. Put me down for -0.

@addaleax

This comment has been minimized.

Show comment
Hide comment
@addaleax

addaleax Feb 10, 2017

Member

+1 to what Ben said. I don’t think I want to formally object to this, given how low its ecosystem usage appears to be…

I do still think “This API was never intended to be made public” is not a valid reason for deprecating anything, and I am not very comfortable with this PR setting a precedent for such actions.

Member

addaleax commented Feb 10, 2017

+1 to what Ben said. I don’t think I want to formally object to this, given how low its ecosystem usage appears to be…

I do still think “This API was never intended to be made public” is not a valid reason for deprecating anything, and I am not very comfortable with this PR setting a precedent for such actions.

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Feb 10, 2017

Member

That's fair. Let's go ahead and open it up as a @nodejs/ctc vote as I wouldn't feel right pushing it through over your reservations without doing so.

Member

jasnell commented Feb 10, 2017

That's fair. Let's go ahead and open it up as a @nodejs/ctc vote as I wouldn't feel right pushing it through over your reservations without doing so.

@mcollina

LGTM

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Feb 22, 2017

Member

So where should I assume we're at on this? It has plenty of sign off to land. The objections raised have been discussed and are not blocking.

Member

jasnell commented Feb 22, 2017

So where should I assume we're at on this? It has plenty of sign off to land. The objections raised have been discussed and are not blocking.

@bnoordhuis

This comment has been minimized.

Show comment
Hide comment
@bnoordhuis

bnoordhuis Feb 22, 2017

Member

It's ready to land, it has enough sign-off and no opposition.

Member

bnoordhuis commented Feb 22, 2017

It's ready to land, it has enough sign-off and no opposition.

@Trott

This comment has been minimized.

Show comment
Hide comment
@Trott

Trott Feb 22, 2017

Member

No objections plus more-than-two CTC signoffs = :shipit:

(Not adding anything Ben didn't already say, but it was an excuse to use the Ship-It Squirrel.)

Member

Trott commented Feb 22, 2017

No objections plus more-than-two CTC signoffs = :shipit:

(Not adding anything Ben didn't already say, but it was an excuse to use the Ship-It Squirrel.)

@Trott

This comment has been minimized.

Show comment
Hide comment
@Trott

Trott Feb 22, 2017

Member

(Although it might not be a terrible idea to give it one more CI run before landing, as the last CI was two weeks ago.)

Member

Trott commented Feb 22, 2017

(Although it might not be a terrible idea to give it one more CI run before landing, as the last CI was two weeks ago.)

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Feb 22, 2017

Member

Does one really need an excuse to use the squirrel?

Member

jasnell commented Feb 22, 2017

Does one really need an excuse to use the squirrel?

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell
Member

jasnell commented Feb 23, 2017

jasnell added a commit that referenced this pull request Feb 23, 2017

fs: runtime deprecation for fs.SyncWriteStream
This API was never intended to be made public and was docs-only
deprecated in Node.js 6.x. This upgrades to a runtime deprecation
for Node.js 8.0.0

PR-URL: #10467
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Feb 23, 2017

Member

Landed in 7a55e34 after green CI

Member

jasnell commented Feb 23, 2017

Landed in 7a55e34 after green CI

@jasnell jasnell closed this Feb 23, 2017

@jasnell jasnell referenced this pull request Apr 4, 2017

Closed

8.0.0 Release Proposal #12220

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).

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