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

HTTP/1 createServer() options to pass custom Request and Response classes #15752

Closed
wants to merge 2 commits into
base: master
from

Conversation

@hekike
Member

hekike commented Oct 3, 2017

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)
  • http
  • https
  • http2 (http fallback)
Related PR
  • #15560 (check out conversation)

@hekike hekike changed the title from http: create server IncomingMessage and ServerResponse options to HTTP/1 createServer() options to pass custom Request and Response classes Oct 3, 2017

@@ -1720,10 +1720,17 @@ A collection of all the standard HTTP response status codes, and the
short description of each. For example, `http.STATUS_CODES[404] === 'Not
Found'`.
## http.createServer([requestListener])
## http.createServer([options][requestListener])

This comment has been minimized.

@mscdex

mscdex Oct 3, 2017

Contributor

Missing comma

<!-- YAML
added: v0.1.13
-->
- `options` {Object}
* `IncomingMessage` {http.IncomingMessage} Specifies the IncomingMessage class to
used. Useful for extending the original `IncomingMessage`.

This comment has been minimized.

@mscdex

mscdex Oct 3, 2017

Contributor

Missing 'be' at the beginning?

* `IncomingMessage` {http.IncomingMessage} Specifies the IncomingMessage class to
used. Useful for extending the original `IncomingMessage`.
Defaults to: `Http2ServerRequest`
* `ServerResponse` {htt.ServerResponse} Specifies the ServerResponse class to

This comment has been minimized.

@mscdex

mscdex Oct 3, 2017

Contributor

s/htt.ServerResponse/http.ServerResponse/

used. Useful for extending the original `IncomingMessage`.
Defaults to: `Http2ServerRequest`
* `ServerResponse` {htt.ServerResponse} Specifies the ServerResponse class to
used. Useful for extending the original `ServerResponse`.

This comment has been minimized.

@mscdex

mscdex Oct 3, 2017

Contributor

Ditto about missing 'be'

- `options` {Object}
* `IncomingMessage` {http.IncomingMessage} Specifies the IncomingMessage class to
used. Useful for extending the original `IncomingMessage`.
Defaults to: `Http2ServerRequest`

This comment has been minimized.

@mscdex

mscdex Oct 3, 2017

Contributor

I don't understand both of these defaults. This documentation is for http/1.x.

function Server(requestListener) {
if (!(this instanceof Server)) return new Server(requestListener);
if (!(this instanceof Server)) return new Server(options, requestListener);

This comment has been minimized.

@mscdex

mscdex Oct 3, 2017

Contributor

This should remain the first line to avoid executing the same code above twice in the case of no new.

This comment has been minimized.

@hekike

hekike Oct 3, 2017

Member

Don't we need to initialize options in the case of no new?

This comment has been minimized.

@lpinca

lpinca Oct 3, 2017

Member

@hekike yes but it can be done after that, see https.js for example.

@mscdex

This comment has been minimized.

Contributor

mscdex commented Oct 3, 2017

Have you ran the appropriate http1 benchmarks before and after these changes and compared the results? If so, what were your findings?

* `IncomingMessage` {http.IncomingMessage} Specifies the IncomingMessage class to
used. Useful for extending the original `IncomingMessage`.
Defaults to: `Http2ServerRequest`
* `ServerResponse` {htt.ServerResponse} Specifies the ServerResponse class to

This comment has been minimized.

@lpinca

lpinca Oct 3, 2017

Member

Typo: htt -> http

@@ -1720,10 +1720,17 @@ A collection of all the standard HTTP response status codes, and the
short description of each. For example, `http.STATUS_CODES[404] === 'Not
Found'`.
## http.createServer([requestListener])
## http.createServer([options][requestListener])

This comment has been minimized.

@lpinca

lpinca Oct 3, 2017

Member

Nit: missing comma, [options][, requestListener].

<!-- YAML
added: v0.1.13
-->
- `options` {Object}
* `IncomingMessage` {http.IncomingMessage} Specifies the IncomingMessage class to
used. Useful for extending the original `IncomingMessage`.

This comment has been minimized.

@lpinca

lpinca Oct 3, 2017

Member

Typo: used -> use

used. Useful for extending the original `IncomingMessage`.
Defaults to: `Http2ServerRequest`
* `ServerResponse` {htt.ServerResponse} Specifies the ServerResponse class to
used. Useful for extending the original `ServerResponse`.

This comment has been minimized.

@lpinca

lpinca Oct 3, 2017

Member

Typo: used -> use

- `options` {Object}
* `IncomingMessage` {http.IncomingMessage} Specifies the IncomingMessage class to
used. Useful for extending the original `IncomingMessage`.
Defaults to: `Http2ServerRequest`

This comment has been minimized.

@lpinca

lpinca Oct 3, 2017

Member

It should be http.IncomingMessage.

Defaults to: `Http2ServerRequest`
* `ServerResponse` {htt.ServerResponse} Specifies the ServerResponse class to
used. Useful for extending the original `ServerResponse`.
Defaults to: `Http2ServerResponse`

This comment has been minimized.

@lpinca

lpinca Oct 3, 2017

Member

It should be http.ServerResponse.

@@ -52,7 +52,8 @@ See [`http.Server#keepAliveTimeout`][].
<!-- YAML
added: v0.3.4
-->
- `options` {Object} Accepts `options` from [`tls.createServer()`][] and [`tls.createSecureContext()`][].
- `options` {Object} Accepts `options` from [`tls.createServer()`][],
[`tls.createSecureContext()`][] and [`http.createServer()`][].

This comment has been minimized.

@lpinca

lpinca Oct 3, 2017

Member

We should add a link at the bottom for http.createServer().

requestListener = options;
options = {};
} else if (options == null || typeof options === 'object') {
options = options || {};

This comment has been minimized.

@lpinca

lpinca Oct 3, 2017

Member

I would use util._extend() or Object.assign() like it's done in https.js.

@@ -560,7 +570,7 @@ function parserOnIncoming(server, socket, state, req, keepAlive) {
}
}
var res = new ServerResponse(req);
var res = new socket.server.ServerResponse(req);

This comment has been minimized.

@apapirovski

apapirovski Oct 3, 2017

Member

Could this just be server.ServerResponse(req) instead of socket.server[...]? The function seems to have an in-scope server.

This comment has been minimized.

@hekike

hekike Oct 5, 2017

Member

I tried but we don't have the server here, only under the socket.server:

parser.incoming = new IncomingMessage(parser.socket);

This comment has been minimized.

@apapirovski

apapirovski Oct 5, 2017

Member

I could swear it's available

function parserOnIncoming(server, socket, state, req, keepAlive) {
  resetSocketTimeout(server, socket, state);

It's being used a few places in that function to emit, etc.

This comment has been minimized.

@mcollina

mcollina Oct 9, 2017

Member

@hekike it's in the function definition, it should be populated. Can you update?

This comment has been minimized.

@hekike
}
this.IncomingMessage = options.IncomingMessage || IncomingMessage;
this.ServerResponse = options.ServerResponse || ServerResponse;

This comment has been minimized.

@apapirovski

apapirovski Oct 3, 2017

Member

I don't have an answer to this but I would like to flag the fact that this means that IncomingMessage & ServerResponse can be altered on the fly, rather than solely through options. It's possible this isn't desirable and we should instead use Symbols, or maybe it is desirable and we should document it as such.

This is also strictly different than the proposed http2 implementation where those classes can't be modified on the fly as they're bound when a request listener is created.

This comment has been minimized.

@mcollina

mcollina Oct 9, 2017

Member

I would actually prefer them to be symbols and be private, if there there are no performance regressions.

This comment has been minimized.

@hekike

hekike Oct 9, 2017

Member

@apapirovski @mcollina please check out my latest commit, I made them private.
I'm going to split them into http1/2 commits after you reviewed it.

@@ -74,7 +74,11 @@ function parserOnHeadersComplete(versionMajor, versionMinor, headers, method,
parser._url = '';
}
parser.incoming = new IncomingMessage(parser.socket);
// Parser is also used by http client
var ParserIncomingMessage = parser.socket.server ?

This comment has been minimized.

@apapirovski

apapirovski Oct 3, 2017

Member

This a super minor nit but ideally we would check parser.socket.server !== null. (We know that it's always either null or a Server.)

This comment has been minimized.

@hekike

hekike Oct 5, 2017

Member

I checked it and it can be undefined, for example:

TypeError: Cannot read property 'IncomingMessage' of undefined
    at HTTPParser.parserOnHeadersComplete (_http_common.js:79:26)
    at TLSSocket.socketOnData (_http_client.js:437:20)
    at emitOne (events.js:115:13)
    at TLSSocket.emit (events.js:210:7)
    at addChunk (_stream_readable.js:264:12)
    at readableAddChunk (_stream_readable.js:251:11)
    at TLSSocket.Readable.push (_stream_readable.js:209:10)
    at TLSWrap.onread (net.js:591:20)
Command: out/Release/node /Users/pmarton/Documents/dev/node/test/parallel/test-async-wrap-GH13045.js

This comment has been minimized.

@apapirovski

apapirovski Oct 5, 2017

Member

Thanks for checking!

@@ -0,0 +1,39 @@
'use strict';
const common = require('../common');
const fs = require('fs');

This comment has been minimized.

@apapirovski

apapirovski Oct 3, 2017

Member

Could you add (right after common is required):

if (!common.hasCrypto)
  common.skip('missing crypto');

Thanks!

@@ -0,0 +1,35 @@
'use strict';
const common = require('../common');
const fs = require('fs');

This comment has been minimized.

@apapirovski

apapirovski Oct 3, 2017

Member

Same as above, could you add:

if (!common.hasCrypto)
  common.skip('missing crypto');

Thanks!

@apapirovski

This comment has been minimized.

Member

apapirovski commented Oct 3, 2017

Looks great overall! My comments are just super minor nits. Thanks for doing this work @hekike (and coming up with the solution in the first place)!

@hekike

This comment has been minimized.

Member

hekike commented Oct 5, 2017

@apapirovski I fixed your comments.

Also, I realized that http2 fallback to http should take a place in this PR.
I moved it here.

@mcollina

LGTM

@mcollina

This comment has been minimized.

Member

mcollina commented Oct 6, 2017

@hekike can you split the http2 bits into a separate commit, so we can backport the http1 bit easily?

@hekike

This comment has been minimized.

Member

hekike commented Oct 9, 2017

@mcollina sure, done!

const assert = require('assert');
const http = require('http');

This comment has been minimized.

@mcollina

mcollina Oct 9, 2017

Member

can you add a quick comment describing what this test is about?

const common = require('../common');
if (!common.hasCrypto)
common.skip('missing crypto');

This comment has been minimized.

@mcollina

mcollina Oct 9, 2017

Member

are you sure we need crypto here?

@mcollina

This comment has been minimized.

Member

mcollina commented Oct 9, 2017

Ok for me.

@@ -266,6 +267,7 @@ const req = https.request(options, (res) => {
[`http.Server#setTimeout()`]: http.html#http_server_settimeout_msecs_callback
[`http.Server#timeout`]: http.html#http_server_timeout
[`http.Server`]: http.html#http_class_http_server
[`http.createServer`]: http.html#httpcreateserveroptions-requestlistener

This comment has been minimized.

@evanlucas

evanlucas Oct 9, 2017

Member

I believe this should have the () at the end of createServer in order for the reference to be recognized?

@mcollina

This comment has been minimized.

Member

mcollina commented Oct 10, 2017

@mscdex would you like to see the benchmarks before landing? Which ones? The complete http suite takes more than 44 hours on my machine to run.

@mscdex

This comment has been minimized.

Contributor

mscdex commented Oct 10, 2017

@mcollina I would say just enough benchmarks to cover the code paths being modified (not every benchmark configuration/combination is necessary).

kjin added a commit to kjin/node that referenced this pull request Apr 28, 2018

http2: add http fallback options to .createServer
This adds the Http1IncomingMessage and Http1ServerReponse options
to http2.createServer().

PR-URL: nodejs#15752
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>

kjin added a commit to kjin/node that referenced this pull request May 1, 2018

http2: add http fallback options to .createServer
This adds the Http1IncomingMessage and Http1ServerReponse options
to http2.createServer().

PR-URL: nodejs#15752
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>

kjin added a commit to kjin/node that referenced this pull request May 1, 2018

http: add options to http.createServer()
This adds the optional options argument to `http.createServer()`.
It contains two options: the `IncomingMessage` and `ServerReponse`
option.

PR-URL: nodejs#15752
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>

MylesBorins added a commit that referenced this pull request May 2, 2018

http2: add http fallback options to .createServer
This adds the Http1IncomingMessage and Http1ServerReponse options
to http2.createServer().

Backport-PR-URL: #20456
PR-URL: #15752
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>

MylesBorins added a commit that referenced this pull request May 2, 2018

http: add options to http.createServer()
This adds the optional options argument to `http.createServer()`.
It contains two options: the `IncomingMessage` and `ServerReponse`
option.

Backport-PR-URL: #20456
PR-URL: #15752
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>

@MylesBorins MylesBorins referenced this pull request May 2, 2018

Merged

v8.11.2 proposal #20478

MayaLekova added a commit to MayaLekova/node that referenced this pull request May 8, 2018

http: add options to http.createServer()
This adds the optional options argument to `http.createServer()`.
It contains two options: the `IncomingMessage` and `ServerReponse`
option.

PR-URL: nodejs#15752
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>

MayaLekova added a commit to MayaLekova/node that referenced this pull request May 8, 2018

http2: add http fallback options to .createServer
This adds the Http1IncomingMessage and Http1ServerReponse options
to http2.createServer().

PR-URL: nodejs#15752
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>

MayaLekova added a commit to MayaLekova/node that referenced this pull request May 8, 2018

2018-02-22, Version 9.6.0 (Current)
Notable changes:

* async_hooks:
  - deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh)
    nodejs#18513
  - rename PromiseWrap.parentId to PromiseWrap.isChainedPromise
    (Ali Ijaz Sheikh) nodejs#18633
* deps:
  - update node-inspect to 1.11.3 (Jan Krems)
    nodejs#18354
  - ICU 60.2 bump (Steven R. Loomis)
    nodejs#17687
  - Introduce ScriptOrModule and HostDefinedOptions to V8 (Jan Krems)
    nodejs#16889
* http:
  - add options to http.createServer() for `IncomingMessage` and
    `ServerReponse` (Peter Marton)
    nodejs#15752
* http2:
  - add http fallback options to .createServer (Peter Marton)
    nodejs#15752
* https:
  - Adds the remaining options from tls.createSecureContext() to the
    string generated by Agent#getName(). This allows https.request()
    to accept the options and generate unique sockets appropriately.
    (Jeff Principe)
    nodejs#16402
* inspector:
  - --inspect-brk for es modules (Guy Bedford)
    nodejs#18194
* lib:
  - allow process kill by signal number (Sam Roberts)
    nodejs#16944
* module:
  - enable dynamic import (Myles Borins)
    nodejs#18387
  - dynamic import is now supported (Jan Krems)
    nodejs#15713
* napi:
  - add methods to open/close callback scope (Michael Dawson)
    nodejs#18089
* src:
  - allow --perf-(basic-)?prof in NODE_OPTIONS (Leko)
    nodejs#17600
* vm:
  - add support for es modules (Gus Caplan)
    nodejs#17560

PR-URL: nodejs#18902

MylesBorins added a commit that referenced this pull request May 15, 2018

http: add options to http.createServer()
This adds the optional options argument to `http.createServer()`.
It contains two options: the `IncomingMessage` and `ServerReponse`
option.

Backport-PR-URL: #20456
PR-URL: #15752
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>

MylesBorins added a commit that referenced this pull request May 15, 2018

http2: add http fallback options to .createServer
This adds the Http1IncomingMessage and Http1ServerReponse options
to http2.createServer().

Backport-PR-URL: #20456
PR-URL: #15752
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>

MylesBorins added a commit that referenced this pull request May 15, 2018

http: add options to http.createServer()
This adds the optional options argument to `http.createServer()`.
It contains two options: the `IncomingMessage` and `ServerReponse`
option.

Backport-PR-URL: #20456
PR-URL: #15752
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>

MylesBorins added a commit that referenced this pull request May 15, 2018

http2: add http fallback options to .createServer
This adds the Http1IncomingMessage and Http1ServerReponse options
to http2.createServer().

Backport-PR-URL: #20456
PR-URL: #15752
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>

MylesBorins added a commit that referenced this pull request Jun 14, 2018

http: add options to http.createServer()
This adds the optional options argument to `http.createServer()`.
It contains two options: the `IncomingMessage` and `ServerReponse`
option.

Backport-PR-URL: #20456
PR-URL: #15752
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>

MylesBorins added a commit that referenced this pull request Jun 14, 2018

http2: add http fallback options to .createServer
This adds the Http1IncomingMessage and Http1ServerReponse options
to http2.createServer().

Backport-PR-URL: #20456
PR-URL: #15752
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
@MylesBorins

This comment has been minimized.

Member

MylesBorins commented Jun 20, 2018

@nodejs/lts should we consider backporting to 8.x

should come with #18605

@MylesBorins MylesBorins referenced this pull request Jul 9, 2018

Merged

v8.12.0 proposal #21593

rvagg added a commit that referenced this pull request Aug 16, 2018

http: add options to http.createServer()
This adds the optional options argument to `http.createServer()`.
It contains two options: the `IncomingMessage` and `ServerReponse`
option.

Backport-PR-URL: #20456
PR-URL: #15752
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>

rvagg added a commit that referenced this pull request Aug 16, 2018

http2: add http fallback options to .createServer
This adds the Http1IncomingMessage and Http1ServerReponse options
to http2.createServer().

Backport-PR-URL: #20456
PR-URL: #15752
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>

MylesBorins added a commit that referenced this pull request Aug 17, 2018

2018-09-04, Version 8.12.0 'Carbon' (LTS)
Notable Changes:

* async_hooks:
  - rename PromiseWrap.parentId (Ali Ijaz Sheikh)
    #18633
  - remove runtime deprecation (Ali Ijaz Sheikh)
    #19517
  - deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh)
    #18513
* cluster:
  - add cwd to cluster.settings (cjihrig)
    #18399
  - support windowsHide option for workers (Todd Wong)
    #17412
* crypto:
  - allow passing null as IV unless required (Tobias Nießen)
    #18644
* deps:
  - upgrade npm to 6.2.0 (Kat Marchán)
    #21592
  - upgrade libuv to 1.19.2 (cjihrig)
    #18918
  - Upgrade node-inspect to 1.11.5 (Jan Krems)
    #21055
* fs,net:
  - support as and as+ flags in stringToFlags() (Sarat Addepalli)
    #18801
  - emit 'ready' for fs streams and sockets (Sameer Srivastava)
    #19408
* http, http2:
  - add options to http.createServer() (Peter Marton)
    #15752
  - add 103 Early Hints status code (Yosuke Furukawa)
    #16644
  - add http fallback options to .createServer (Peter Marton)
    #15752
* n-api:
  - take n-api out of experimental (Michael Dawson)
    #19262
* perf_hooks:
  - add warning when too many entries in the timeline (James M Snell)
    #18087
* src:
  - add public API for managing NodePlatform (Cheng Zhao)
    #16981
  - allow --perf-(basic-)?prof in NODE\_OPTIONS (Leko)
    #17600
  - node internals' postmortem metadata (Matheus Marchini)
    #14901
* tls:
  - expose Finished messages in TLSSocket (Anton Salikhmetov)
    #19102
* **trace_events**:
  - add file pattern cli option (Andreas Madsen)
    #18480
* util:
  - implement util.getSystemErrorName() (Joyee Cheung)
    #18186

PR-URL: #21593

MylesBorins added a commit that referenced this pull request Aug 17, 2018

2018-09-04, Version 8.12.0 'Carbon' (LTS)
Notable Changes:

* async_hooks:
  - rename PromiseWrap.parentId (Ali Ijaz Sheikh)
    #18633
  - remove runtime deprecation (Ali Ijaz Sheikh)
    #19517
  - deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh)
    #18513
* cluster:
  - add cwd to cluster.settings (cjihrig)
    #18399
  - support windowsHide option for workers (Todd Wong)
    #17412
* crypto:
  - allow passing null as IV unless required (Tobias Nießen)
    #18644
* deps:
  - upgrade npm to 6.2.0 (Kat Marchán)
    #21592
  - upgrade libuv to 1.19.2 (cjihrig)
    #18918
  - Upgrade node-inspect to 1.11.5 (Jan Krems)
    #21055
* fs,net:
  - support as and as+ flags in stringToFlags() (Sarat Addepalli)
    #18801
  - emit 'ready' for fs streams and sockets (Sameer Srivastava)
    #19408
* http, http2:
  - add options to http.createServer() (Peter Marton)
    #15752
  - add 103 Early Hints status code (Yosuke Furukawa)
    #16644
  - add http fallback options to .createServer (Peter Marton)
    #15752
* n-api:
  - take n-api out of experimental (Michael Dawson)
    #19262
* perf_hooks:
  - add warning when too many entries in the timeline (James M Snell)
    #18087
* src:
  - add public API for managing NodePlatform (Cheng Zhao)
    #16981
  - allow --perf-(basic-)?prof in NODE\_OPTIONS (Leko)
    #17600
  - node internals' postmortem metadata (Matheus Marchini)
    #14901
* tls:
  - expose Finished messages in TLSSocket (Anton Salikhmetov)
    #19102
* **trace_events**:
  - add file pattern cli option (Andreas Madsen)
    #18480
* util:
  - implement util.getSystemErrorName() (Joyee Cheung)
    #18186

PR-URL: #21593

BethGriggs added a commit to BethGriggs/node that referenced this pull request Aug 29, 2018

2018-09-04, Version 8.12.0 'Carbon' (LTS)
Notable Changes:

* async_hooks:
  - rename PromiseWrap.parentId (Ali Ijaz Sheikh)
    nodejs#18633
  - remove runtime deprecation (Ali Ijaz Sheikh)
    nodejs#19517
  - deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh)
    nodejs#18513
* cluster:
  - add cwd to cluster.settings (cjihrig)
    nodejs#18399
  - support windowsHide option for workers (Todd Wong)
    nodejs#17412
* crypto:
  - allow passing null as IV unless required (Tobias Nießen)
    nodejs#18644
* deps:
  - upgrade npm to 6.2.0 (Kat Marchán)
    nodejs#21592
  - upgrade libuv to 1.19.2 (cjihrig)
    nodejs#18918
  - Upgrade node-inspect to 1.11.5 (Jan Krems)
    nodejs#21055
* fs,net:
  - support as and as+ flags in stringToFlags() (Sarat Addepalli)
    nodejs#18801
  - emit 'ready' for fs streams and sockets (Sameer Srivastava)
    nodejs#19408
* http, http2:
  - add options to http.createServer() (Peter Marton)
    nodejs#15752
  - add 103 Early Hints status code (Yosuke Furukawa)
    nodejs#16644
  - add http fallback options to .createServer (Peter Marton)
    nodejs#15752
* n-api:
  - take n-api out of experimental (Michael Dawson)
    nodejs#19262
* perf_hooks:
  - add warning when too many entries in the timeline (James M Snell)
    nodejs#18087
* src:
  - add public API for managing NodePlatform (Cheng Zhao)
    nodejs#16981
  - allow --perf-(basic-)?prof in NODE\_OPTIONS (Leko)
    nodejs#17600
  - node internals' postmortem metadata (Matheus Marchini)
    nodejs#14901
* tls:
  - expose Finished messages in TLSSocket (Anton Salikhmetov)
    nodejs#19102
* **trace_events**:
  - add file pattern cli option (Andreas Madsen)
    nodejs#18480
* util:
  - implement util.getSystemErrorName() (Joyee Cheung)
    nodejs#18186

PR-URL: nodejs#21593

MylesBorins added a commit that referenced this pull request Sep 3, 2018

2018-09-04, Version 8.12.0 'Carbon' (LTS)
Notable Changes:

* async_hooks:
  - rename PromiseWrap.parentId (Ali Ijaz Sheikh)
    #18633
  - remove runtime deprecation (Ali Ijaz Sheikh)
    #19517
  - deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh)
    #18513
* cluster:
  - add cwd to cluster.settings (cjihrig)
    #18399
  - support windowsHide option for workers (Todd Wong)
    #17412
* crypto:
  - allow passing null as IV unless required (Tobias Nießen)
    #18644
* deps:
  - upgrade npm to 6.4.1 (Kat Marchán)
    #22591
  - upgrade libuv to 1.19.2 (cjihrig)
    #18918
  - Upgrade node-inspect to 1.11.5 (Jan Krems)
    #21055
* fs,net:
  - support as and as+ flags in stringToFlags() (Sarat Addepalli)
    #18801
  - emit 'ready' for fs streams and sockets (Sameer Srivastava)
    #19408
* http, http2:
  - add options to http.createServer() (Peter Marton)
    #15752
  - add 103 Early Hints status code (Yosuke Furukawa)
    #16644
  - add http fallback options to .createServer (Peter Marton)
    #15752
* n-api:
  - take n-api out of experimental (Michael Dawson)
    #19262
* perf_hooks:
  - add warning when too many entries in the timeline (James M Snell)
    #18087
* src:
  - add public API for managing NodePlatform (Cheng Zhao)
    #16981
  - allow --perf-(basic-)?prof in NODE\_OPTIONS (Leko)
    #17600
  - node internals' postmortem metadata (Matheus Marchini)
    #14901
* tls:
  - expose Finished messages in TLSSocket (Anton Salikhmetov)
    #19102
* **trace_events**:
  - add file pattern cli option (Andreas Madsen)
    #18480
* util:
  - implement util.getSystemErrorName() (Joyee Cheung)
    #18186

PR-URL: #21593

MylesBorins added a commit that referenced this pull request Sep 6, 2018

2018-09-11, Version 8.12.0 'Carbon' (LTS)
Notable Changes:

* async_hooks:
  - rename PromiseWrap.parentId (Ali Ijaz Sheikh)
    #18633
  - remove runtime deprecation (Ali Ijaz Sheikh)
    #19517
  - deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh)
    #18513
* cluster:
  - add cwd to cluster.settings (cjihrig)
    #18399
  - support windowsHide option for workers (Todd Wong)
    #17412
* crypto:
  - allow passing null as IV unless required (Tobias Nießen)
    #18644
* deps:
  - upgrade npm to 6.2.0 (Kat Marchán)
    #21592
  - upgrade libuv to 1.19.2 (cjihrig)
    #18918
  - Upgrade node-inspect to 1.11.5 (Jan Krems)
    #21055
* fs,net:
  - support as and as+ flags in stringToFlags() (Sarat Addepalli)
    #18801
  - emit 'ready' for fs streams and sockets (Sameer Srivastava)
    #19408
* http, http2:
  - add options to http.createServer() (Peter Marton)
    #15752
  - add 103 Early Hints status code (Yosuke Furukawa)
    #16644
  - add http fallback options to .createServer (Peter Marton)
    #15752
* n-api:
  - take n-api out of experimental (Michael Dawson)
    #19262
* perf_hooks:
  - add warning when too many entries in the timeline (James M Snell)
    #18087
* src:
  - add public API for managing NodePlatform (Cheng Zhao)
    #16981
  - allow --perf-(basic-)?prof in NODE\_OPTIONS (Leko)
    #17600
  - node internals' postmortem metadata (Matheus Marchini)
    #14901
* tls:
  - expose Finished messages in TLSSocket (Anton Salikhmetov)
    #19102
* **trace_events**:
  - add file pattern cli option (Andreas Madsen)
    #18480
* util:
  - implement util.getSystemErrorName() (Joyee Cheung)
    #18186

PR-URL: #21593

MylesBorins added a commit that referenced this pull request Sep 6, 2018

2018-09-11, Version 8.12.0 'Carbon' (LTS)
Notable Changes:

* async_hooks:
  - rename PromiseWrap.parentId (Ali Ijaz Sheikh)
    #18633
  - remove runtime deprecation (Ali Ijaz Sheikh)
    #19517
  - deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh)
    #18513
* cluster:
  - add cwd to cluster.settings (cjihrig)
    #18399
  - support windowsHide option for workers (Todd Wong)
    #17412
* crypto:
  - allow passing null as IV unless required (Tobias Nießen)
    #18644
* deps:
  - upgrade npm to 6.2.0 (Kat Marchán)
    #21592
  - upgrade libuv to 1.19.2 (cjihrig)
    #18918
  - Upgrade node-inspect to 1.11.5 (Jan Krems)
    #21055
* fs,net:
  - support as and as+ flags in stringToFlags() (Sarat Addepalli)
    #18801
  - emit 'ready' for fs streams and sockets (Sameer Srivastava)
    #19408
* http, http2:
  - add options to http.createServer() (Peter Marton)
    #15752
  - add 103 Early Hints status code (Yosuke Furukawa)
    #16644
  - add http fallback options to .createServer (Peter Marton)
    #15752
* n-api:
  - take n-api out of experimental (Michael Dawson)
    #19262
* perf_hooks:
  - add warning when too many entries in the timeline (James M Snell)
    #18087
* src:
  - add public API for managing NodePlatform (Cheng Zhao)
    #16981
  - allow --perf-(basic-)?prof in NODE\_OPTIONS (Leko)
    #17600
  - node internals' postmortem metadata (Matheus Marchini)
    #14901
* tls:
  - expose Finished messages in TLSSocket (Anton Salikhmetov)
    #19102
* **trace_events**:
  - add file pattern cli option (Andreas Madsen)
    #18480
* util:
  - implement util.getSystemErrorName() (Joyee Cheung)
    #18186

PR-URL: #21593

MylesBorins added a commit that referenced this pull request Sep 10, 2018

2018-09-11, Version 8.12.0 'Carbon' (LTS)
Notable Changes:

* async_hooks:
  - rename PromiseWrap.parentId (Ali Ijaz Sheikh)
    #18633
  - remove runtime deprecation (Ali Ijaz Sheikh)
    #19517
  - deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh)
    #18513
* cluster:
  - add cwd to cluster.settings (cjihrig)
    #18399
  - support windowsHide option for workers (Todd Wong)
    #17412
* crypto:
  - allow passing null as IV unless required (Tobias Nießen)
    #18644
* deps:
  - upgrade npm to 6.2.0 (Kat Marchán)
    #21592
  - upgrade libuv to 1.19.2 (cjihrig)
    #18918
  - Upgrade node-inspect to 1.11.5 (Jan Krems)
    #21055
* fs,net:
  - support as and as+ flags in stringToFlags() (Sarat Addepalli)
    #18801
  - emit 'ready' for fs streams and sockets (Sameer Srivastava)
    #19408
* http, http2:
  - add options to http.createServer() (Peter Marton)
    #15752
  - add 103 Early Hints status code (Yosuke Furukawa)
    #16644
  - add http fallback options to .createServer (Peter Marton)
    #15752
* n-api:
  - take n-api out of experimental (Michael Dawson)
    #19262
* perf_hooks:
  - add warning when too many entries in the timeline (James M Snell)
    #18087
* src:
  - add public API for managing NodePlatform (Cheng Zhao)
    #16981
  - allow --perf-(basic-)?prof in NODE\_OPTIONS (Leko)
    #17600
  - node internals' postmortem metadata (Matheus Marchini)
    #14901
* tls:
  - expose Finished messages in TLSSocket (Anton Salikhmetov)
    #19102
* **trace_events**:
  - add file pattern cli option (Andreas Madsen)
    #18480
* util:
  - implement util.getSystemErrorName() (Joyee Cheung)
    #18186

PR-URL: #21593

MylesBorins added a commit that referenced this pull request Sep 11, 2018

2018-09-11, Version 8.12.0 'Carbon' (LTS)
Notable Changes:

* async_hooks:
  - rename PromiseWrap.parentId (Ali Ijaz Sheikh)
    #18633
  - remove runtime deprecation (Ali Ijaz Sheikh)
    #19517
  - deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh)
    #18513
* cluster:
  - add cwd to cluster.settings (cjihrig)
    #18399
  - support windowsHide option for workers (Todd Wong)
    #17412
* crypto:
  - allow passing null as IV unless required (Tobias Nießen)
    #18644
* deps:
  - upgrade npm to 6.2.0 (Kat Marchán)
    #21592
  - upgrade libuv to 1.19.2 (cjihrig)
    #18918
  - Upgrade node-inspect to 1.11.5 (Jan Krems)
    #21055
* fs,net:
  - support as and as+ flags in stringToFlags() (Sarat Addepalli)
    #18801
  - emit 'ready' for fs streams and sockets (Sameer Srivastava)
    #19408
* http, http2:
  - add options to http.createServer() (Peter Marton)
    #15752
  - add 103 Early Hints status code (Yosuke Furukawa)
    #16644
  - add http fallback options to .createServer (Peter Marton)
    #15752
* n-api:
  - take n-api out of experimental (Michael Dawson)
    #19262
* perf_hooks:
  - add warning when too many entries in the timeline (James M Snell)
    #18087
* src:
  - add public API for managing NodePlatform (Cheng Zhao)
    #16981
  - allow --perf-(basic-)?prof in NODE\_OPTIONS (Leko)
    #17600
  - node internals' postmortem metadata (Matheus Marchini)
    #14901
* tls:
  - expose Finished messages in TLSSocket (Anton Salikhmetov)
    #19102
* **trace_events**:
  - add file pattern cli option (Andreas Madsen)
    #18480
* util:
  - implement util.getSystemErrorName() (Joyee Cheung)
    #18186

PR-URL: #21593

MylesBorins added a commit that referenced this pull request Sep 11, 2018

2018-09-11, Version 8.12.0 'Carbon' (LTS)
Notable Changes:

* async_hooks:
  - rename PromiseWrap.parentId (Ali Ijaz Sheikh)
    #18633
  - remove runtime deprecation (Ali Ijaz Sheikh)
    #19517
  - deprecate unsafe emit{Before,After} (Ali Ijaz Sheikh)
    #18513
* cluster:
  - add cwd to cluster.settings (cjihrig)
    #18399
  - support windowsHide option for workers (Todd Wong)
    #17412
* crypto:
  - allow passing null as IV unless required (Tobias Nießen)
    #18644
* deps:
  - upgrade npm to 6.2.0 (Kat Marchán)
    #21592
  - upgrade libuv to 1.19.2 (cjihrig)
    #18918
  - Upgrade node-inspect to 1.11.5 (Jan Krems)
    #21055
* fs,net:
  - support as and as+ flags in stringToFlags() (Sarat Addepalli)
    #18801
  - emit 'ready' for fs streams and sockets (Sameer Srivastava)
    #19408
* http, http2:
  - add options to http.createServer() (Peter Marton)
    #15752
  - add 103 Early Hints status code (Yosuke Furukawa)
    #16644
  - add http fallback options to .createServer (Peter Marton)
    #15752
* n-api:
  - take n-api out of experimental (Michael Dawson)
    #19262
* perf_hooks:
  - add warning when too many entries in the timeline (James M Snell)
    #18087
* src:
  - add public API for managing NodePlatform (Cheng Zhao)
    #16981
  - allow --perf-(basic-)?prof in NODE\_OPTIONS (Leko)
    #17600
  - node internals' postmortem metadata (Matheus Marchini)
    #14901
* tls:
  - expose Finished messages in TLSSocket (Anton Salikhmetov)
    #19102
* **trace_events**:
  - add file pattern cli option (Andreas Madsen)
    #18480
* util:
  - implement util.getSystemErrorName() (Joyee Cheung)
    #18186

PR-URL: #21593
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment