Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dns: make dns.setServers support customized port #13723

Closed

Conversation

XadillaX
Copy link
Contributor

@XadillaX XadillaX commented Jun 16, 2017

Make dns.setServers parameter may be strings contain IP and port which
split by :.

eg.

dns.setServers([ "103.238.225.181:666" ]);

And dns.getServers will return IP with port if that server is not use
default port.

Refs: #7903

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

dns

Make `dns.setServers` parameter may be strings contain IP and port which
split by `:`.

eg.

```
dns.setServers([ "103.238.225.181:666" ]);
```

And `dns.getServers` will return IP with port if that server is not use
default port.

Refs: nodejs#7903
@nodejs-github-bot nodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. cares Issues and PRs related to the c-ares dependency or the cares_wrap binding. dns Issues and PRs related to the dns subsystem. labels Jun 16, 2017
@addaleax addaleax added wip Issues and PRs that are still a work in progress. semver-minor PRs that contain new features and should be released in the next minor version. labels Jun 16, 2017
@XadillaX XadillaX changed the title [WIP]dns: make dns.setServers support customized port dns: make dns.setServers support customized port Jun 16, 2017
@XadillaX
Copy link
Contributor Author

@addaleax I think we can remove in progress label now.

@addaleax addaleax removed the wip Issues and PRs that are still a work in progress. label Jun 16, 2017
@silverwind
Copy link
Contributor

Maybe it's better to have the port as a separate argument so the user doesn't have to fiddle with the [host]:port syntax of IPv6. Also, it'd be more in line with other APIs that take ports and hosts, which also separate them.

@silverwind
Copy link
Contributor

silverwind commented Jun 16, 2017

E.g.:

dns.setServers([
  {address: '1.2.3.4', port: 5353},
  {address: '::1234:5678', port: 5353},
  '2.3.4.5'
]);

So the method could both take a object or a string. It also has the benefit that we could extend these objects with future per-server options if necessary.

@XadillaX
Copy link
Contributor Author

XadillaX commented Jun 16, 2017

@silverwind [host]:port is valid in the previous versions of Node.js, but the port be ignored before. I'm only making it's valid and available now.

You mean let the function support host / [host]:port and { host: ..., port: ... } all these three situations?

Copy link
Contributor

@refack refack left a comment

Choose a reason for hiding this comment

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

Got a little carried away with style suggestion... 🙄

doc/api/dns.md Outdated
@@ -59,8 +59,20 @@ the [Implementation considerations section][] for more information.
added: v0.11.3
-->

Returns an array of IP address strings that are being used for name
resolution.
Returns an array of IP address and port strings that are being used for name
Copy link
Contributor

Choose a reason for hiding this comment

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

🚲 🎪 Suggestion:

Returns an array of IP address strings, formatted according to [rfc3986][],
that are currently configured for DNS resolution. A string will include a port section
if a custom port is used.
...

[rfc3986]: https://tools.ietf.org/html/rfc3986#section-3.2.2

doc/api/dns.md Outdated
@@ -484,10 +496,20 @@ added: v0.11.3
-->
- `servers` {string[]}
Copy link
Contributor

Choose a reason for hiding this comment

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

- `servers` {string[]} array of [rfc3986][] formatted addresses

doc/api/dns.md Outdated
@@ -484,10 +496,20 @@ added: v0.11.3
-->
- `servers` {string[]}

Sets the IP addresses of the servers to be used when resolving. The `servers`
argument is an array of IPv4 or IPv6 addresses.
Sets the IP addresses and port of the servers to be used when resolving. The
Copy link
Contributor

Choose a reason for hiding this comment

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

Sets the IP address and port of servers to be used when performing DNS
resolution. If the port is the IANA default DNS port (53) it can be omitted.

lib/dns.js Outdated
if (!val[1] || val[1] === 53) return val[0];

const ipVersion = isIP(val[0]);
return ipVersion === 6 ? `[${val[0]}]:${val[1]}` : `${val[0]}:${val[1]}`;
Copy link
Contributor

Choose a reason for hiding this comment

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

Personal preference nit:

const host= 6 ? `[${val[0]}]` : val[0];
return ${host}:${val[1]};

lib/dns.js Outdated
if (ipVersion !== 0)
return newSet.push([ipVersion, match[1]]);
if (ipVersion !== 0) {
const portMatch = serv.match(addrSplitRE) || [];
Copy link
Contributor

Choose a reason for hiding this comment

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

personal style nit:

const addrSplitRE = /(^.+?)(?::(\d+))?$/;
const port = parseInt(serv.replace(addrSplitRE, '$2')) || 53;
return newSet.push([ipVersion, match[1], port);

lib/dns.js Outdated
if (ipVersion !== 0) {
const portMatch = serv.match(addrSplitRE) || [];
return newSet.push([ipVersion, match[1], parseInt(portMatch[1] || 53)]);
}
}

const s = serv.split(addrSplitRE)[0];
Copy link
Contributor

Choose a reason for hiding this comment

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

const [, s, p] = serv.match(addrSplitRE);

@refack
Copy link
Contributor

refack commented Jun 16, 2017

🤔 If I understand correctly dns.setServers([ "103.238.225.181:666" ]); used to work but ignored the port? Now it will use the port?
Need to consider semver level, and run CITGM when PR converges.

@XadillaX
Copy link
Contributor Author

@refack Yes you understood right. Refer here https://nodejs.org/docs/v8.0.0/api/dns.html#dns_dns_setservers_servers.

If a port is specified on the address, it will be removed.

And the addrSplitRE in the source code used to ignore the port.

@silverwind
Copy link
Contributor

silverwind commented Jun 16, 2017

[host]:port is valid in the previous versions of Node.js

Hmm, right the docs even mention "If a port is specified on the address, it will be removed.", so I guess we're stuck with the syntax. And no, I wouldn't support three cases. Strictly speaking, this should be semver-major, but if CITGM turns out okay (which I expect), than minor is okay.

refack
refack previously approved these changes Jun 16, 2017
Copy link
Contributor

@refack refack left a comment

Choose a reason for hiding this comment

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

Code 💯
LGTM % semver discussion

@refack
Copy link
Contributor

refack commented Jun 16, 2017

@addaleax addaleax mentioned this pull request Jun 17, 2017
14 tasks
@XadillaX
Copy link
Contributor Author

I think after this PR is landed, we can start the test for dns.resolveAny.

@refack
Copy link
Contributor

refack commented Jun 19, 2017

🤔 If I understand correctly dns.setServers([ "103.238.225.181:666" ]) used to work but ignored the port? Now it will use the port?
Need to consider semver level, and run CITGM when PR converges.

CITGM: https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/880/

@addaleax @nodejs/ctc PTAL at semver level

lib/dns.js Outdated
return cares.getServers();
const ret = cares.getServers();
return ret.map((val) => {
if (!val[1] || val[1] === 53) return val[0];
Copy link
Contributor

Choose a reason for hiding this comment

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

I just noticed this, IMHO we should format IPv6 with [], so need to move the const host up:
e.g.

return ret.map(([host, port]) => {
  if (isIP(host) === 6) host = `[${host}]`;
  return (!port || port === 53) host : `${host}:${port}`;
}

But that will make this semver-major (since till now IPv6 would be represented without [])

Copy link
Contributor

@refack refack Jun 19, 2017

Choose a reason for hiding this comment

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

Fix this in a future PR.
Ref: #13795

@refack refack dismissed their stale review June 19, 2017 02:46

Need to think about semver-level, and IPv6 string format

@XadillaX
Copy link
Contributor Author

@refack how about adding a parameter to indicate whether using customized port or not

Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

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

LGTM as semver-minor

@refack
Copy link
Contributor

refack commented Jun 19, 2017

@refack how about adding a parameter to indicate whether using customized port or not

CITGM is clean.
Let's land this as is. And open a semver-major PR to fix the formatting.

doc/api/dns.md Outdated
```js
[
'4.4.4.4',
'[2001:4860:4860::8888]',
Copy link
Contributor

Choose a reason for hiding this comment

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

Need to remove [] for this line.
Ref: #13795

Copy link
Contributor

Choose a reason for hiding this comment

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

This still needs to be changed, since currently the output will be without the []

Copy link
Contributor

Choose a reason for hiding this comment

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

> dns.setServers(['192.168.1.1', '2001:4860:4860::8888'])
undefined
> dns.getServers()
[ '192.168.1.1', '2001:4860:4860::8888' ]

lib/dns.js Outdated
return cares.getServers();
const ret = cares.getServers();
return ret.map((val) => {
if (!val[1] || val[1] === 53) return val[0];
Copy link
Contributor

@refack refack Jun 19, 2017

Choose a reason for hiding this comment

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

Fix this in a future PR.
Ref: #13795

@XadillaX
Copy link
Contributor Author

Let's land this as is. And open a semver-major PR to fix the formatting.

Land this as SEMVER-MINOR? And what formatting for SEMVER-MAJOR?

@refack
Copy link
Contributor

refack commented Jun 20, 2017

Landed in 330349f
(fixed a nit in the doc /s/eg./For example:/, and the language on the commit message body)

@refack refack closed this Jun 20, 2017
@refack
Copy link
Contributor

refack commented Jun 20, 2017

Extra sanity on master: https://ci.nodejs.org/job/node-test-commit-linuxone/6777/

@XadillaX XadillaX mentioned this pull request Jun 21, 2017
addaleax pushed a commit that referenced this pull request Jun 21, 2017
allow `dns.setServers` parameter to contain port

e.g.

```
dns.setServers([ '103.238.225.181:666' ]);
```

And `dns.getServers` will return IP with port if not the default port.

PR-URL: #13723
Refs: #7903
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
addaleax added a commit that referenced this pull request Jun 21, 2017
Notable changes:

* **Async Hooks**
  * Multiple improvements to Promise support in `async_hooks` have been made.

* **Build**
  * The compiler version requirement to build Node with GCC has been raised to
    GCC 4.9.4.
    [[`23d41f3118`](2abaa86ba8)]
    [#13466](#13466)

* **DNS**
  * The server used for DNS queries can now use a custom port.
    [[`2bb6614904`](8506acc1b5)]
    [#13723](#13723)

* **V8**
  * The V8 engine has been upgraded to version 5.9, which has a significantly
    changed performance profile.
    [#13515](#13515)

PR-URL: #13744
addaleax pushed a commit that referenced this pull request Jun 24, 2017
allow `dns.setServers` parameter to contain port

e.g.

```
dns.setServers([ '103.238.225.181:666' ]);
```

And `dns.getServers` will return IP with port if not the default port.

PR-URL: #13723
Refs: #7903
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
addaleax added a commit that referenced this pull request Jun 24, 2017
Notable changes:

* **Async Hooks**
  * Multiple improvements to Promise support in `async_hooks` have been made.

* **Build**
  * The compiler version requirement to build Node with GCC has been raised to
    GCC 4.9.4.
    [[`23d41f3118`](2abaa86ba8)]
    [#13466](#13466)

* **DNS**
  * The server used for DNS queries can now use a custom port.
    [[`2bb6614904`](8506acc1b5)]
    [#13723](#13723)
  * Support for `dns.resolveAny()` has been added.
    [[`30bc9dc20f`](30bc9dc20f)]
    [#13137](#13137)

* **V8**
  * The V8 engine has been upgraded to version 5.9, which has a significantly
    changed performance profile.
    [#13515](#13515)

PR-URL: #13744
rvagg pushed a commit that referenced this pull request Jun 29, 2017
allow `dns.setServers` parameter to contain port

e.g.

```
dns.setServers([ '103.238.225.181:666' ]);
```

And `dns.getServers` will return IP with port if not the default port.

PR-URL: #13723
Refs: #7903
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
addaleax added a commit that referenced this pull request Jun 29, 2017
Notable changes:

* **Async Hooks**
  * Multiple improvements to Promise support in `async_hooks` have been made.

* **Build**
  * The compiler version requirement to build Node with GCC has been raised to
    GCC 4.9.4.
    [[`23d41f3118`](2abaa86ba8)]
    [#13466](#13466)

* **DNS**
  * The server used for DNS queries can now use a custom port.
    [[`2bb6614904`](8506acc1b5)]
    [#13723](#13723)
  * Support for `dns.resolveAny()` has been added.
    [[`30bc9dc20f`](30bc9dc20f)]
    [#13137](#13137)

* **V8**
  * The V8 engine has been upgraded to version 5.9, which has a significantly
    changed performance profile.
    [#13515](#13515)

PR-URL: #13744
addaleax added a commit that referenced this pull request Jun 29, 2017
Notable changes:

* **Async Hooks**
  * Multiple improvements to Promise support in `async_hooks` have been made.

* **Build**
  * The compiler version requirement to build Node with GCC has been raised to
    GCC 4.9.4.
    [[`23d41f3118`](2abaa86ba8)]
    [#13466](#13466)

* **DNS**
  * The server used for DNS queries can now use a custom port.
    [[`2bb6614904`](8506acc1b5)]
    [#13723](#13723)
  * Support for `dns.resolveAny()` has been added.
    [[`30bc9dc20f`](30bc9dc20f)]
    [#13137](#13137)

* **V8**
  * The V8 engine has been upgraded to version 5.9, which has a significantly
    changed performance profile.
    [#13515](#13515)

PR-URL: #13744
addaleax added a commit that referenced this pull request Jun 30, 2017
Notable changes:

* **Async Hooks**
  * Multiple improvements to Promise support in `async_hooks` have been made.

* **Build**
  * The compiler version requirement to build Node with GCC has been raised to
    GCC 4.9.4.
    [[`23d41f3118`](2abaa86ba8)]
    [#13466](#13466)

* **DNS**
  * The server used for DNS queries can now use a custom port.
    [[`2bb6614904`](8506acc1b5)]
    [#13723](#13723)
  * Support for `dns.resolveAny()` has been added.
    [[`30bc9dc20f`](30bc9dc20f)]
    [#13137](#13137)

* **V8**
  * The V8 engine has been upgraded to version 5.9, which has a significantly
    changed performance profile.
    [#13515](#13515)

PR-URL: #13744
addaleax added a commit that referenced this pull request Jun 30, 2017
Notable changes:

* **Async Hooks**
  * Multiple improvements to Promise support in `async_hooks` have been made.

* **Build**
  * The compiler version requirement to build Node with GCC has been raised to
    GCC 4.9.4.
    [[`23d41f3118`](2abaa86ba8)]
    [#13466](#13466)

* **DNS**
  * The server used for DNS queries can now use a custom port.
    [[`2bb6614904`](8506acc1b5)]
    [#13723](#13723)
  * Support for `dns.resolveAny()` has been added.
    [[`30bc9dc20f`](30bc9dc20f)]
    [#13137](#13137)

* **V8**
  * The V8 engine has been upgraded to version 5.9, which has a significantly
    changed performance profile.
    [#13515](#13515)

PR-URL: #13744
addaleax added a commit that referenced this pull request Jul 3, 2017
Notable changes:

* **Async Hooks**
  * Multiple improvements to Promise support in `async_hooks` have been made.

* **Build**
  * The compiler version requirement to build Node with GCC has been raised to
    GCC 4.9.4.
    [[`23d41f3118`](2abaa86ba8)]
    [#13466](#13466)

* **DNS**
  * The server used for DNS queries can now use a custom port.
    [[`2bb6614904`](8506acc1b5)]
    [#13723](#13723)
  * Support for `dns.resolveAny()` has been added.
    [[`30bc9dc20f`](30bc9dc20f)]
    [#13137](#13137)

* **V8**
  * The V8 engine has been upgraded to version 5.9, which has a significantly
    changed performance profile.
    [#13515](#13515)

PR-URL: #13744
addaleax pushed a commit that referenced this pull request Jul 11, 2017
allow `dns.setServers` parameter to contain port

e.g.

```
dns.setServers([ '103.238.225.181:666' ]);
```

And `dns.getServers` will return IP with port if not the default port.

PR-URL: #13723
Refs: #7903
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
addaleax added a commit that referenced this pull request Jul 11, 2017
Notable changes:

* **Async Hooks**
  * Multiple improvements to Promise support in `async_hooks` have been made.

* **Build**
  * The compiler version requirement to build Node with GCC has been raised to
    GCC 4.9.4.
    [[`23d41f3118`](2abaa86ba8)]
    [#13466](#13466)

* **DNS**
  * The server used for DNS queries can now use a custom port.
    [[`2bb6614904`](8506acc1b5)]
    [#13723](#13723)
  * Support for `dns.resolveAny()` has been added.
    [[`30bc9dc20f`](30bc9dc20f)]
    [#13137](#13137)

* **V8**
  * The V8 engine has been upgraded to version 5.9, which has a significantly
    changed performance profile.
    [#13515](#13515)

PR-URL: #13744
addaleax pushed a commit that referenced this pull request Jul 18, 2017
allow `dns.setServers` parameter to contain port

e.g.

```
dns.setServers([ '103.238.225.181:666' ]);
```

And `dns.getServers` will return IP with port if not the default port.

PR-URL: #13723
Refs: #7903
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
addaleax added a commit that referenced this pull request Jul 18, 2017
Notable changes:

* **Async Hooks**
  * Multiple improvements to Promise support in `async_hooks` have been made.

* **Build**
  * The compiler version requirement to build Node with GCC has been raised to
    GCC 4.9.4.
    [[`820b011ed6`](820b011ed6)]
    [#13466](#13466)

* **Cluster**
  * Users now have more fine-grained control over the inspector port used by
    individual cluster workers. Previously, cluster workers would simply
    increment from the master's debug port.
    [[`dfc46e262a`](dfc46e262a)]
    [#14140](#14140)

* **DNS**
  * The server used for DNS queries can now use a custom port.
    [[`ebe7bb29aa`](ebe7bb29aa)]
    [#13723](#13723)
  * Support for `dns.resolveAny()` has been added.
    [[`6e30e2558e`](6e30e2558e)]
    [#13137](#13137)

* **npm**
  * The `npm` CLI has been updated to version 5.3.0. In particular, it now comes
    with the `npx` binary, which is also shipped with Node.
    [[`dc3f6b9ac1`](dc3f6b9ac1)]
    [#14235](#14235)
  * `npm` Changelogs:
      - [v5.0.4](https://github.com/npm/npm/releases/tag/v5.0.4)
      - [v5.1.0](https://github.com/npm/npm/releases/tag/v5.1.0)
      - [v5.2.0](https://github.com/npm/npm/releases/tag/v5.2.0)
      - [v5.3.0](https://github.com/npm/npm/releases/tag/v5.3.0)

PR-URL: #13744
Fishrock123 added a commit to Fishrock123/node that referenced this pull request Jul 19, 2017
Big thanks to @addaleax who prepared the vast majority of this release.

Notable changes:

* **Async Hooks**
  * Multiple improvements to Promise support in `async_hooks` have been made.

* **Build**
  * The compiler version requirement to build Node with GCC has been raised to
    GCC 4.9.4.
    [[`820b011ed6`](nodejs@820b011ed6)]
    [nodejs#13466](nodejs#13466)

* **Cluster**
  * Users now have more fine-grained control over the inspector port used by
    individual cluster workers. Previously, cluster workers would simply
    increment from the master's debug port.
    [[`dfc46e262a`](nodejs@dfc46e262a)]
    [nodejs#14140](nodejs#14140)

* **DNS**
  * The server used for DNS queries can now use a custom port.
    [[`ebe7bb29aa`](nodejs@ebe7bb29aa)]
    [nodejs#13723](nodejs#13723)
  * Support for `dns.resolveAny()` has been added.
    [[`6e30e2558e`](nodejs@6e30e2558e)]
    [nodejs#13137](nodejs#13137)

* **npm**
  * The `npm` CLI has been updated to version 5.3.0. In particular, it now comes
    with the `npx` binary, which is also shipped with Node.
    [[`dc3f6b9ac1`](nodejs@dc3f6b9ac1)]
    [nodejs#14235](nodejs#14235)
  * `npm` Changelogs:
      - [v5.0.4](https://github.com/npm/npm/releases/tag/v5.0.4)
      - [v5.1.0](https://github.com/npm/npm/releases/tag/v5.1.0)
      - [v5.2.0](https://github.com/npm/npm/releases/tag/v5.2.0)
      - [v5.3.0](https://github.com/npm/npm/releases/tag/v5.3.0)

PR-URL: nodejs#13744
Fishrock123 added a commit that referenced this pull request Jul 19, 2017
Big thanks to @addaleax who prepared the vast majority of this release.

Notable changes:

* **Async Hooks**
  * Multiple improvements to Promise support in `async_hooks` have been made.

* **Build**
  * The compiler version requirement to build Node with GCC has been raised to
    GCC 4.9.4.
    [[`820b011ed6`](820b011ed6)]
    [#13466](#13466)

* **Cluster**
  * Users now have more fine-grained control over the inspector port used by
    individual cluster workers. Previously, cluster workers would simply
    increment from the master's debug port.
    [[`dfc46e262a`](dfc46e262a)]
    [#14140](#14140)

* **DNS**
  * The server used for DNS queries can now use a custom port.
    [[`ebe7bb29aa`](ebe7bb29aa)]
    [#13723](#13723)
  * Support for `dns.resolveAny()` has been added.
    [[`6e30e2558e`](6e30e2558e)]
    [#13137](#13137)

* **npm**
  * The `npm` CLI has been updated to version 5.3.0. In particular, it now comes
    with the `npx` binary, which is also shipped with Node.
    [[`dc3f6b9ac1`](dc3f6b9ac1)]
    [#14235](#14235)
  * `npm` Changelogs:
      - [v5.0.4](https://github.com/npm/npm/releases/tag/v5.0.4)
      - [v5.1.0](https://github.com/npm/npm/releases/tag/v5.1.0)
      - [v5.2.0](https://github.com/npm/npm/releases/tag/v5.2.0)
      - [v5.3.0](https://github.com/npm/npm/releases/tag/v5.3.0)

PR-URL: #13744
Fishrock123 added a commit that referenced this pull request Jul 19, 2017
Big thanks to @addaleax who prepared the vast majority of this release.

Notable changes:

* **Async Hooks**
  * Multiple improvements to Promise support in `async_hooks` have been made.

* **Build**
  * The compiler version requirement to build Node with GCC has been raised to
    GCC 4.9.4.
    [[`820b011ed6`](820b011ed6)]
    [#13466](#13466)

* **Cluster**
  * Users now have more fine-grained control over the inspector port used by
    individual cluster workers. Previously, cluster workers would simply
    increment from the master's debug port.
    [[`dfc46e262a`](dfc46e262a)]
    [#14140](#14140)

* **DNS**
  * The server used for DNS queries can now use a custom port.
    [[`ebe7bb29aa`](ebe7bb29aa)]
    [#13723](#13723)
  * Support for `dns.resolveAny()` has been added.
    [[`6e30e2558e`](6e30e2558e)]
    [#13137](#13137)

* **npm**
  * The `npm` CLI has been updated to version 5.3.0. In particular, it now comes
    with the `npx` binary, which is also shipped with Node.
    [[`dc3f6b9ac1`](dc3f6b9ac1)]
    [#14235](#14235)
  * `npm` Changelogs:
      - [v5.0.4](https://github.com/npm/npm/releases/tag/v5.0.4)
      - [v5.1.0](https://github.com/npm/npm/releases/tag/v5.1.0)
      - [v5.2.0](https://github.com/npm/npm/releases/tag/v5.2.0)
      - [v5.3.0](https://github.com/npm/npm/releases/tag/v5.3.0)

PR-URL: #13744
@gibfahn
Copy link
Member

gibfahn commented Jan 15, 2018

Release team decided not to land on v6.x, if you disagree let us know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ Issues and PRs that require attention from people who are familiar with C++. cares Issues and PRs related to the c-ares dependency or the cares_wrap binding. dns Issues and PRs related to the dns subsystem. semver-minor PRs that contain new features and should be released in the next minor version.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants