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

v11.10.0 proposal #26098

Merged
merged 223 commits into from Feb 14, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
223 commits
Select commit Hold shift + click to select a range
6967407
inspector, trace_events: make sure messages are sent on a main thread
eugeneo Dec 3, 2018
99bc0df
lib: refactor ERR_SYNTHETIC
cjihrig Jan 28, 2019
cc22fd7
report: split up osVersion and machine values
cjihrig Jan 28, 2019
d463181
report: use consistent format for dumpEventTime
addaleax Jan 28, 2019
d9c2690
src: turn ROUND_UP into an inline function
addaleax Jan 27, 2019
0949039
src: add handle scope to `OnFatalError()`
addaleax Jan 28, 2019
3f080d1
src: add debug check for inspector uv_async_t
addaleax Jan 28, 2019
35454e0
src: fix indentation in a few node_http2 enums
danbev Jan 28, 2019
be499c3
src: simplify SlicedArguments
addaleax Jan 27, 2019
b9289f4
tools: bump cpplint.py to 3d8f6f876d
refack Jan 28, 2019
454278a
tools: refloat Node.js patches to cpplint.py
refack Jan 28, 2019
cc253b5
process: simplify report uncaught exception logic
cjihrig Jan 27, 2019
fd98d62
doc: revise style guide
Trott Jan 28, 2019
accb8ae
doc: revise inspect security info in cli.md
Trott Jan 29, 2019
f5db509
doc: remove outdated COLLABORATOR_GUIDE sentence about breaking changes
Trott Jan 29, 2019
0b014d5
src: make deleted functions public in node.h
gengjiawen Jan 28, 2019
b779c07
src: make `StreamPipe::Unpipe()` more resilient
addaleax Jan 25, 2019
25c19eb
http: make timeout event work with agent timeout
lpinca Jan 14, 2019
5792208
test: pull html/webappapis/timers WPT
joyeecheung Jan 21, 2019
5bffcf6
test: run html/webappapis/timers WPT
joyeecheung Jan 21, 2019
f6c8820
report: fix typo in error message
cjihrig Jan 29, 2019
b1e0c43
report: disambiguate glibc versions
cjihrig Jan 29, 2019
998cea5
src: workaround MSVC compiler bug
refack Dec 18, 2018
7a1f166
doc: add documentation for request.path
gjbkz Jan 29, 2019
40398fd
benchmark: refactor _http-benchmarkers.js
Trott Jan 29, 2019
18b344c
benchmark: refactor benchmark/common.js
Trott Jan 29, 2019
da46be2
crypto: fix public key encoding name in comment
davidben Jan 27, 2019
d683da7
test, tools: suppress addon function cast warnings
danbev Jan 23, 2019
55c2702
worker: throw for duplicates in transfer list
addaleax Jan 30, 2019
411f6fe
deps: cherry-pick c736883 from upstream V8
hashseed Jan 10, 2019
673e434
deps: v8, cherry-pick 9365d09, aac2f8c, 47d34a3
bcoe Jan 26, 2019
704a440
test: allow coverage threshold to be enforced
bcoe Jan 30, 2019
1007416
report: separate release metadata
richardlau Jan 30, 2019
cdf3e84
test: exclude additional test for coverage
mhdawson Jan 30, 2019
882902c
src: pass along errors from PromiseWrap instantiation
addaleax Jan 27, 2019
7556994
src: remove unused method in js_stream.h
gengjiawen Jan 29, 2019
8a8c178
src: remove unused AsyncResource constructor in node.h
gengjiawen Jan 29, 2019
9f1bcd4
tools: make test.py Python 3 compatible
thefourtheye Jan 28, 2019
9d2ea18
tools: add test-all-suites to Makefile
Trott Jan 29, 2019
7cb9439
test: refactor test-http-agent-timeout-option
lpinca Jan 31, 2019
f395728
tools: exclude benchmark code from coverage report
Trott Jan 31, 2019
618f641
doc: remove redundant LTS/Current information in Collaborator Guide
Trott Jan 31, 2019
699d161
doc: fix machine field in example report
cjihrig Jan 31, 2019
988c714
tools: improve prerequisites for test-all-suites
Trott Feb 2, 2019
c4e2bbb
benchmark: use consistent coding style in assert/*
Trott Feb 1, 2019
1f6acbb
doc: document os.userInfo() throwing SystemError
raido Jan 26, 2019
f027290
src: use struct as arguments to node::Assert
addaleax Feb 1, 2019
84358b5
src: handle errors while printing error objects
addaleax Jan 30, 2019
d02ad40
inspector,vm: remove --eval wrapper
addaleax Jan 30, 2019
7656d58
tls: introduce client 'session' event
sam-github Jan 30, 2019
059d30e
test: add hasCrypto to worker-cleanexit-with-moduleload
danbev Jan 30, 2019
00f8e86
src: use nullptr in node_buffer.cc
gengjiawen Jan 30, 2019
bd771d9
src: remove unimplemented method in node_http2.h
gengjiawen Jan 27, 2019
025a7c3
test: do not fail SLOW tests if they are not slow
hashseed Feb 1, 2019
e28d891
src: fix race condition in `~NodeTraceBuffer`
addaleax Feb 2, 2019
8b71464
deps: remove OpenSSL git and travis configuration
sam-github Jan 24, 2019
cc4ae20
doc: improve doc on unintended breaking changes
Trott Feb 2, 2019
2e80b91
src: use `visibility("default")` exports on POSIX
nornagon Oct 15, 2018
ee3165d
test: relax expectations in test-icu-transcode
hashseed Feb 1, 2019
3e010af
crypto: fix malloc mixing in X509ToObject
davidben Jan 25, 2019
baa0865
crypto: don't crash X509ToObject on error
davidben Jan 29, 2019
6d39a54
report: use libuv calls for OS and machine info
cjihrig Feb 2, 2019
c959d60
worker,etw: only enable ETW on the main thread
addaleax Feb 3, 2019
30a4e89
report: print libuv handle addresses as hex
cjihrig Feb 3, 2019
7035496
src: add PrintLibuvHandleInformation debug helper
addaleax Feb 3, 2019
2009f18
test,tracing: use close event to wait for stdio
addaleax Feb 2, 2019
e70aa30
worker: add mutex lock to MessagePort ctor
addaleax Feb 3, 2019
0772ce3
src: remove unused TLWrap::EnableTrace()
sam-github Jan 31, 2019
b5a8376
src: organize TLSWrap declarations by parent
sam-github Jan 31, 2019
4d0b56f
tls: don't shadow the tls global with a local
sam-github Jan 31, 2019
d4c4f77
src: const_cast is necessary for 1.1.1, not 0.9.7
sam-github Jan 31, 2019
5a66e38
src: fix data type in node_crypto.cc
gengjiawen Feb 2, 2019
44655e9
src: delete unreachable code in node_perf.h
gengjiawen Jan 31, 2019
015ed0b
src: remove redundant method in node_worker.h
gengjiawen Jan 31, 2019
a6c8e40
deps: patch to fix *.onion MX query on c-ares
XadillaX Jan 31, 2019
1c6fade
meta: clarify EoL platform support
joaocgreis Jan 30, 2019
e66cb58
repl: simplify and improve completion
BridgeAR Jan 25, 2019
5aaeb01
repl: fix eval return value
BridgeAR Jan 27, 2019
2c737a8
repl: remove obsolete buffer clearing
BridgeAR Jan 27, 2019
c866b52
test: remove obsolete code
BridgeAR Jan 27, 2019
197efb7
child_process: close pipe ends that are re-piped
gireeshpunathil Jun 8, 2018
6c51ec3
report: include information about event loop itself
addaleax Feb 3, 2019
353de0f
doc: fix err_synthetic issue on v11.x
sreepurnajasti Jan 28, 2019
0b302e4
lib: fix a few minor issues flagged by lgtm
rneatherway Jan 30, 2019
52d4b7a
worker: remove undocumented .onclose property
Trott Feb 3, 2019
b7fb49e
http: remove redundant call to socket.setTimeout()
lpinca Feb 4, 2019
e81c6c8
perf_hooks: only enable GC tracking when it's requested
joyeecheung Jan 31, 2019
8d14870
tools: update dmn in update-estlint.sh
Trott Feb 1, 2019
e13c185
tools: update ESLint to 5.13.0
Trott Feb 1, 2019
c55d662
tools: replace deprecated ESLint configuration
Trott Feb 1, 2019
baa10ae
test: add BigInt test for isDeepStrictEqual
Trott Feb 4, 2019
1f8991f
test: add util.isDeepStrictEqual edge case tests
Trott Feb 5, 2019
c17a37d
test: wait for TCP connect, not TLS handshake
sam-github Feb 1, 2019
cc6b30f
test: do not assume server gets secure connection
sam-github Feb 1, 2019
639dc07
test: do not assume tls handshake order
sam-github Jan 8, 2019
ace267b
test: do not race connection and rejection
sam-github Jan 9, 2019
898cf78
test: send a bad record only after connection done
sam-github Feb 1, 2019
1b542e8
test: use mustCall in ephemeralkeyinfo test
sam-github Feb 1, 2019
50d2c8e
test: use common.mustCall(), and log the events
sam-github Feb 1, 2019
1be8676
test: use mustCall(), not global state checks
sam-github Feb 1, 2019
c457d00
test: clarify confusion over "client" in comment
sam-github Feb 1, 2019
3b74cc6
doc: revise Collaborator Guide on reverting
Trott Feb 5, 2019
f516f68
doc: add a sentence about REPLACEME in code changes
lance Feb 6, 2019
2d57504
src: fix compiler warnings in node_buffer.cc
danbev Jan 23, 2019
c4d16e8
benchmark: refactor for consistent style
Trott Feb 5, 2019
6ca8d26
tools: apply more stringent lint rules for benchmark code
Trott Feb 5, 2019
f5d5034
src: clean unused code in agent.h
gengjiawen Feb 3, 2019
1b9a608
test: refactor test-http-agent-timeout-option
lpinca Feb 2, 2019
8cedfb8
src: refactor to nullptr in cpp code
gengjiawen Feb 2, 2019
620d429
src: use bool instead of integer literal in connection_wrap.cc
gengjiawen Feb 4, 2019
2b1f881
benchmark: remove unreachable return
ZYSzys Feb 2, 2019
7e9f5ea
test: pin regression test for #8074 to TLS 1.2
sam-github Jan 15, 2019
ef9139e
test: end tls gracefully, rather than destroy
sam-github Feb 1, 2019
b06f2fa
lib: use `internal/options` to query `--abort-on-uncaught-exception`
joyeecheung Feb 1, 2019
4dca3ab
test: exit sequence sanity tests
gireeshpunathil Dec 17, 2018
de9f37d
src: make deleted function public in agent.h
gengjiawen Feb 3, 2019
55a313b
src: make watchdog async callback a lambda
gireeshpunathil Feb 5, 2019
37d207c
assert: refactor internal assert.js
Trott Feb 6, 2019
0b4055e
assert: create internal/assert micro-module
Trott Feb 6, 2019
7cf484c
src: refactor SSLError case statement
sam-github Jan 31, 2019
fb83f84
tls: in-line comments and other cleanups
sam-github Jan 31, 2019
de587ba
test: refactor to block-scope
LakshmiSwethaG Jan 16, 2019
e6a2548
src: allow --perf-basic-prof-only-functions in NODE_OPTIONS
tomgco Jan 18, 2019
c72c4b0
src: allow --perf-prof-unwinding-info in NODE_OPTIONS
tomgco Jan 18, 2019
1b8d2ca
lib: remove dollar symbol for private function
Jan 20, 2019
e0af205
src: nullcheck on trace controller
gireeshpunathil Feb 5, 2019
7443288
report: remove empty string stream insertion
cjihrig Feb 6, 2019
8494a61
report: remove unnecessary case block scopes
cjihrig Feb 6, 2019
3f40031
report: widen scope of #ifndef
cjihrig Feb 6, 2019
c01bbc5
deps: update acorn to 6.0.7
targos Jan 31, 2019
afb2d17
report: use uv_getnameinfo() for socket endpoints
cjihrig Feb 6, 2019
2cbb7a8
perf_hooks: implement histogram based api
jasnell Jan 7, 2019
823fd5b
deps: float fix for building HdrHistogram on Win x86
jasnell Feb 8, 2019
e3fd752
src: pass along errors from tls object creation
addaleax Jan 30, 2019
0672c24
src: pass along errors from http2 object creation
addaleax Jan 30, 2019
d6f3b87
src: pass along errors from fs object creations
addaleax Jan 30, 2019
469cdac
src: pass along errors from StreamBase req obj creations
addaleax Jan 30, 2019
508a2e7
worker: use correct ctor for error serialization
addaleax Feb 5, 2019
b280d90
src: simplify NativeModule caching and remove redundant data
joyeecheung Jan 4, 2019
76687de
src: remove unused variable
cjihrig Jan 13, 2019
f4cfbf4
process: move setup of process warnings into node.js
antsmartian Feb 10, 2019
a225f99
doc: revise Introducing New Modules
Trott Feb 7, 2019
eb4b5ea
doc: clarify http timeouts
inversion Jan 27, 2019
3f8c22b
deps: update llhttp to 1.1.1
indutny Jan 28, 2019
9420a73
doc: edit process.report related documentation
cjihrig Feb 7, 2019
a5247cc
http: makes response.writeHead return the response
qubyte Feb 6, 2019
237b5e6
http2: makes response.writeHead return the response
qubyte Feb 6, 2019
779a577
src: refactor macro to std::min in node_buffer.cc
gengjiawen Feb 9, 2019
85d5f67
src: fix return type in Hash
gengjiawen Feb 5, 2019
8c9800c
crypto: include 'Buffer' in error output of Hash.update method
amitzur Jan 16, 2019
5d2e064
worker: no throw on property access/postMessage after termination
chjj Feb 1, 2019
29c195e
fs: remove useless internalFS
ZYSzys Dec 21, 2018
d123f94
test: remove extraneous report validation argument
cjihrig Feb 7, 2019
2b48a38
fs: remove redundant callback check
ZYSzys Dec 21, 2018
7565586
src: pass cli options to bootstrap/loaders.js lexically
joyeecheung Jan 12, 2019
d342707
src: remove unused `internalBinding('config')` properties
joyeecheung Jan 12, 2019
e6a4fb6
process: split execution into main scripts
joyeecheung Jan 15, 2019
8db6b8a
worker: move worker thread setup code into the main script
joyeecheung Jan 15, 2019
0a154ff
src: move v8_platform implementation into node_v8_platform-inl.h
joyeecheung Jan 16, 2019
b72ec23
src: move public C++ APIs into src/api/*.cc
joyeecheung Jan 16, 2019
f63817f
worker: refactor thread id management
addaleax Jan 29, 2019
92ca506
lib: save primordials during bootstrap and use it in builtins
joyeecheung Jan 30, 2019
1d76ba1
process: expose process.features.inspector
joyeecheung Jan 30, 2019
c8bf432
process: move process mutation into bootstrap/node.js
joyeecheung Jan 30, 2019
fd6ce53
src: remove main_isolate
addaleax Jan 30, 2019
01bb7b7
src: split ownsProcessState off isMainThread
addaleax Feb 1, 2019
d7ed125
process: stub unsupported worker methods
cjihrig Jan 15, 2019
c47eb93
src: move process.reallyExit impl into node_process_methods.cc
joyeecheung Feb 1, 2019
5de1034
src: use NULL check macros to check nullptr
ZYSzys Feb 4, 2019
8ade433
lib: move signal event handling into bootstrap/node.js
joyeecheung Jan 31, 2019
f40e0fc
lib: replace 'assert' with 'internal/assert' for many built-ins
Trott Feb 6, 2019
c8ceece
report: refactor report option validation
cjihrig Feb 7, 2019
88019b0
report: rename setDiagnosticReportOptions()
cjihrig Feb 7, 2019
d7bf070
process: move deprecation warning initialization into pre_execution.js
joyeecheung Jan 30, 2019
9a7e883
process: group main thread execution preparation code
joyeecheung Jan 31, 2019
614bb9f
process: normalize process.argv before user code execution
joyeecheung Feb 8, 2019
24d9e9c
src: remove redundant void
gengjiawen Feb 8, 2019
3cd134c
src,lib: remove dead `process.binding()` code
addaleax Jan 30, 2019
3eb6f61
test: capture stderr from child processes
gireeshpunathil Feb 8, 2019
6c6e678
src: remove unused class in node_errors.h
gengjiawen Feb 7, 2019
90c9f1d
http: reduce multiple output arrays into one
starkwang Feb 8, 2019
d7ae105
src: remove redundant cast in node_file.cc
gengjiawen Feb 7, 2019
d5d163d
build: export deprecated OpenSSL symbols on Windows
richardlau Feb 7, 2019
0899c8b
http2: improve compat performance
mcollina Jan 18, 2019
7ab34ae
src: remove unused method in class Http2Stream
gengjiawen Feb 7, 2019
1764aae
worker: pre-allocate thread id
addaleax Feb 8, 2019
6c1e928
worker: set up child Isolate inside Worker thread
addaleax Feb 8, 2019
896962f
test: add `Worker` + `--prof` regression test
addaleax Feb 8, 2019
4c22d6e
repl: add repl.setupHistory for programmatic repl
lance Feb 1, 2019
03ffcf7
n-api: finalize during second-pass callback
Feb 7, 2019
23868ba
worker: keep stdio after exit
addaleax Feb 9, 2019
dfd47aa
report: make more items programmatically accessible
addaleax Feb 9, 2019
ae21fca
process: normalize process.execPath in CreateProcessObject()
joyeecheung Feb 8, 2019
663b625
doc: fix some nits in perf_hooks
vsemozhetbyt Feb 10, 2019
731c273
src: add WeakReference utility
addaleax Feb 7, 2019
60c5099
domain: avoid circular memory references
addaleax Feb 7, 2019
adaa2ae
src: add lock to inspector `MainThreadHandle` dtor
addaleax Feb 8, 2019
61330b2
test: add assert test for position indicator
Trott Feb 10, 2019
6323a9f
test: refactor two http client timeout tests
lpinca Jan 13, 2019
1c5fbea
deps: upgrade npm to 6.7.0
zkat Jan 29, 2019
e629afa
doc: fix minor typo in dgram.md
danbev Feb 12, 2019
bd932a3
lib: move per_context.js under lib/internal/bootstrap
joyeecheung Feb 10, 2019
85bc64a
process: document the bootstrap process in node.js
joyeecheung Feb 10, 2019
d5f4a1f
lib: save a copy of Symbol in primordials
joyeecheung Feb 10, 2019
8d3eb47
process: use primordials in bootstrap/node.js
joyeecheung Feb 10, 2019
b1a8927
lib: fix the typo error
Feb 10, 2019
b2b37c6
lib: simplify 'umask'
Feb 10, 2019
8b5a2c4
deps: upgrade to libuv 1.26.0
cjihrig Feb 10, 2019
9c9aefe
worker: set stack size for worker threads
addaleax Feb 5, 2019
5198297
http: improve performance for incoming headers
starkwang Feb 11, 2019
8495a78
tls: renegotiate should take care of its own state
sam-github Feb 7, 2019
5f6a710
os,report: use UV_MAXHOSTNAMESIZE
cjihrig Feb 10, 2019
9d6291a
process: refactor lib/internal/bootstrap/node.js
joyeecheung Feb 10, 2019
21e6d35
doc: renamed remote's name
thangktran Feb 11, 2019
ccf60bb
assert: add internal assert.fail()
Trott Feb 13, 2019
f873523
cluster: migrate round_robin_handle to internal assert
Trott Feb 11, 2019
32e6bb3
lib: merge 'undefined' into one 'break' branch
Feb 10, 2019
64cc234
test: use emitter.listenerCount() in test-http-connect
lpinca Feb 10, 2019
cb86357
test: replaced anonymous fn with arrow syntax
pushkalb123 Feb 10, 2019
f71d676
src: remove redundant cast in node_http2.h
gengjiawen Feb 7, 2019
44fc2f6
doc: clarify effect of stream.destroy() on write()
sam-github Feb 6, 2019
4a254a6
doc: edit N-API introductory material in Collaborator Guide
Trott Feb 12, 2019
6e56771
2018-02-14, Version 11.10.0 (Current)
targos Feb 14, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
38 changes: 19 additions & 19 deletions .eslintrc.js
Expand Up @@ -277,24 +277,24 @@ module.exports = {
'node-core/no-duplicate-requires': 'error',
},
globals: {
Atomics: false,
BigInt: false,
BigInt64Array: false,
BigUint64Array: false,
COUNTER_HTTP_CLIENT_REQUEST: false,
COUNTER_HTTP_CLIENT_RESPONSE: false,
COUNTER_HTTP_SERVER_REQUEST: false,
COUNTER_HTTP_SERVER_RESPONSE: false,
COUNTER_NET_SERVER_CONNECTION: false,
COUNTER_NET_SERVER_CONNECTION_CLOSE: false,
DTRACE_HTTP_CLIENT_REQUEST: false,
DTRACE_HTTP_CLIENT_RESPONSE: false,
DTRACE_HTTP_SERVER_REQUEST: false,
DTRACE_HTTP_SERVER_RESPONSE: false,
DTRACE_NET_SERVER_CONNECTION: false,
DTRACE_NET_STREAM_END: false,
TextEncoder: false,
TextDecoder: false,
queueMicrotask: false,
Atomics: 'readable',
BigInt: 'readable',
BigInt64Array: 'readable',
BigUint64Array: 'readable',
COUNTER_HTTP_CLIENT_REQUEST: 'readable',
COUNTER_HTTP_CLIENT_RESPONSE: 'readable',
COUNTER_HTTP_SERVER_REQUEST: 'readable',
COUNTER_HTTP_SERVER_RESPONSE: 'readable',
COUNTER_NET_SERVER_CONNECTION: 'readable',
COUNTER_NET_SERVER_CONNECTION_CLOSE: 'readable',
DTRACE_HTTP_CLIENT_REQUEST: 'readable',
DTRACE_HTTP_CLIENT_RESPONSE: 'readable',
DTRACE_HTTP_SERVER_REQUEST: 'readable',
DTRACE_HTTP_SERVER_RESPONSE: 'readable',
DTRACE_NET_SERVER_CONNECTION: 'readable',
DTRACE_NET_STREAM_END: 'readable',
TextEncoder: 'readable',
TextDecoder: 'readable',
queueMicrotask: 'readable',
},
};
5 changes: 4 additions & 1 deletion BUILDING.md
Expand Up @@ -69,9 +69,12 @@ There are three support tiers:

### Supported platforms

The community does not build or test against end-of-life distributions (EoL).
For production applications, run Node.js on supported platforms only.

Node.js does not support a platform version if a vendor has expired support
for it. In other words, Node.js does not support running on End-of-life (EoL)
platforms. This is true regardless of entries in the table below.

| System | Support type | Version | Architectures | Notes |
| ------------ | ------------ | ------------------------------- | ---------------- | ----------------------------- |
| GNU/Linux | Tier 1 | kernel >= 2.6.32, glibc >= 2.12 | x64, arm | |
Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Expand Up @@ -28,7 +28,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V11.md#11.9.0">11.9.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V11.md#11.10.0">11.10.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.9.0">11.9.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.8.0">11.8.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.7.0">11.7.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.6.0">11.6.0</a><br/>
Expand Down
65 changes: 26 additions & 39 deletions COLLABORATOR_GUIDE.md
Expand Up @@ -17,7 +17,7 @@
- [Breaking Changes](#breaking-changes)
- [Breaking Changes and Deprecations](#breaking-changes-and-deprecations)
- [Breaking Changes to Internal Elements](#breaking-changes-to-internal-elements)
- [When Breaking Changes Actually Break Things](#when-breaking-changes-actually-break-things)
- [Unintended Breaking Changes](#unintended-breaking-changes)
- [Reverting commits](#reverting-commits)
- [Introducing New Modules](#introducing-new-modules)
- [Additions to N-API](#additions-to-n-api)
Expand Down Expand Up @@ -276,58 +276,45 @@ an effort to determine the potential impact of the change in the ecosystem. Use
If a change will cause ecosystem breakage, then it is semver-major. Consider
providing a Public API in such cases.

#### When Breaking Changes Actually Break Things
#### Unintended Breaking Changes

* Breaking changes should *never* land in Current or LTS except when:
* Resolving critical security issues.
* Fixing a critical bug (e.g. fixing a memory leak) requires a breaking
change.
* There is TSC consensus that the change is required.
* If a breaking commit does accidentally land in a Current or LTS branch, an
attempt to fix the issue will be made before the next release; If no fix is
provided then the commit will be reverted.

When any changes are landed on the master branch and it is determined that the
changes *do* break existing code, a decision may be made to revert those
changes either temporarily or permanently. However, the decision to revert or
not can often be based on many complex factors that are not easily codified. It
is also possible that the breaking commit can be labeled retroactively as a
semver-major change that will not be backported to Current or LTS branches.
Sometimes, a change intended to be non-breaking turns out to be a breaking
change. If such a change lands on the master branch, a Collaborator may revert
it. As an alternative to reverting, the TSC may apply the semver-major label
after-the-fact.

##### Reverting commits

Commits are reverted with `git revert <HASH>`, or `git revert <FROM>..<TO>` for
multiple commits. Commit metadata and the reason for the revert should be
appended. Commit message rules about line length and subsystem can be ignored.
A Pull Request should be raised and approved like any other change.
Revert commits with `git revert <HASH>` or `git revert <FROM>..<TO>`. The
generated commit message will not have a subsystem and may violate line length
rules. That is OK. Append the reason for the revert and any `Refs` or `Fixes`
metadata. Raise a Pull Request like any other change.

### Introducing New Modules

Semver-minor commits that introduce new core modules should be treated with
extra care.

The name of the new core module should not conflict with any existing
module in the ecosystem unless a written agreement with the owner of those
modules is reached to transfer ownership.
Treat commits that introduce new core modules with extra care.

If the new module name is free, a Collaborator should register a placeholder
in the module registry as soon as possible, linking to the pull request that
introduces the new core module.
Check if the module's name conflicts with an existing ecosystem module. If it
does, choose a different name unless the module owner has agreed in writing to
transfer it.

Pull requests introducing new core modules:
If the new module name is free, register a placeholder in the module registry as
soon as possible. Link to the pull request that introduces the new core module
in the placeholder's `README`.

* Must be left open for at least one week for review.
* Must be labeled using the `tsc-review` label.
* Must have signoff from at least two TSC members.
For pull requests introducing new core modules:

New core modules must be landed with a [Stability Index][] of Experimental,
and must remain Experimental until a semver-major release.
* Allow at least one week for review.
* Label with the `tsc-review` label.
* Land only after sign-off from at least two TSC members.
* Land with a [Stability Index][] of Experimental. The module must remain
Experimental until a semver-major release.

### Additions to N-API

N-API provides an ABI stable API that we will have to support in future
versions without the usual option to modify or remove existing APIs on
SemVer boundaries. Therefore, additions need to be managed carefully.
N-API provides an ABI-stable API guaranteed for future Node.js versions.
Existing N-API APIs cannot change or disappear, even in semver-major releases.
Thus, N-API additions call for unusual care and scrutiny.

This
[guide](https://github.com/nodejs/node/blob/master/doc/guides/adding-new-napi-api.md)
Expand Down
45 changes: 45 additions & 0 deletions LICENSE
Expand Up @@ -1371,3 +1371,48 @@ The externally maintained libraries used by Node.js are:
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
"""

- HdrHistogram, located at deps/histogram, is licensed as follows:
"""
The code in this repository code was Written by Gil Tene, Michael Barker,
and Matt Warren, and released to the public domain, as explained at
http://creativecommons.org/publicdomain/zero/1.0/

For users of this code who wish to consume it under the "BSD" license
rather than under the public domain or CC0 contribution text mentioned
above, the code found under this directory is *also* provided under the
following license (commonly referred to as the BSD 2-Clause License). This
license does not detract from the above stated release of the code into
the public domain, and simply represents an additional license granted by
the Author.

-----------------------------------------------------------------------------
** Beginning of "BSD 2-Clause License" text. **

Copyright (c) 2012, 2013, 2014 Gil Tene
Copyright (c) 2014 Michael Barker
Copyright (c) 2014 Matt Warren
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
"""
21 changes: 15 additions & 6 deletions Makefile
Expand Up @@ -215,7 +215,7 @@ coverage-build: all
coverage-build-js:
mkdir -p node_modules
if [ ! -d node_modules/c8 ]; then \
$(NODE) ./deps/npm install c8@next --no-save --no-package-lock;\
$(NODE) ./deps/npm install c8 --no-save --no-package-lock;\
fi

.PHONY: coverage-test
Expand All @@ -240,12 +240,17 @@ coverage-test: coverage-build
@grep -A3 Lines coverage/cxxcoverage.html | grep style \
| sed 's/<[^>]*>//g'| sed 's/ //g'

COV_REPORT_OPTIONS = --reporter=html \
--temp-directory=out/$(BUILDTYPE)/.coverage --omit-relative=false \
--resolve=./lib --exclude="benchmark/" --exclude="deps/" --exclude="test/" --exclude="tools/" \
--wrapper-length=0
ifdef COV_ENFORCE_THRESHOLD
COV_REPORT_OPTIONS += --check-coverage --lines=$(COV_ENFORCE_THRESHOLD)
endif

.PHONY: coverage-report-js
coverage-report-js:
$(NODE) ./node_modules/.bin/c8 report --reporter=html \
--temp-directory=out/$(BUILDTYPE)/.coverage --omit-relative=false \
--resolve=./lib --exclude="deps/" --exclude="test/" --exclude="tools/" \
--wrapper-length=0
$(NODE) ./node_modules/.bin/c8 report $(COV_REPORT_OPTIONS)

.PHONY: cctest
# Runs the C++ tests using the built `cctest` executable.
Expand Down Expand Up @@ -455,12 +460,16 @@ test-build-js-native-api: all build-js-native-api-tests
test-build-node-api: all build-node-api-tests

.PHONY: test-all
test-all: test-build ## Run everything in test/.
test-all: test-build ## Run default tests with both Debug and Release builds.
$(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=debug,release

test-all-valgrind: test-build
$(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=debug,release --valgrind

.PHONY: test-all-suites
test-all-suites: | clear-stalled test-build bench-addons-build doc-only ## Run all test suites.
$(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) test/*

CI_NATIVE_SUITES ?= addons js-native-api node-api
CI_JS_SUITES ?= default
CI_DOC := doctool
Expand Down
10 changes: 10 additions & 0 deletions benchmark/.eslintrc.yaml
@@ -0,0 +1,10 @@
## Benchmark-specific linter rules

rules:
comma-dangle:
- error
- arrays: 'always-multiline'
objects: 'only-multiline'
imports: 'only-multiline'
exports: 'only-multiline'
prefer-arrow-callback: error
7 changes: 2 additions & 5 deletions benchmark/_cli.js
Expand Up @@ -6,10 +6,8 @@ const path = require('path');
// Create an object of all benchmark scripts
const benchmarks = {};
fs.readdirSync(__dirname)
.filter(function(name) {
return fs.statSync(path.resolve(__dirname, name)).isDirectory();
})
.forEach(function(category) {
.filter((name) => fs.statSync(path.resolve(__dirname, name)).isDirectory())
.forEach((category) => {
benchmarks[category] = fs.readdirSync(path.resolve(__dirname, category))
.filter((filename) => filename[0] !== '.' && filename[0] !== '_');
});
Expand Down Expand Up @@ -72,7 +70,6 @@ function CLI(usage, settings) {
} else {
// Bad case, abort
this.abort(usage);
return;
}
}
}
Expand Down
13 changes: 8 additions & 5 deletions benchmark/_http-benchmarkers.js
Expand Up @@ -25,8 +25,11 @@ class AutocannonBenchmarker {
'-c', options.connections,
'-j',
'-n',
`http://127.0.0.1:${options.port}${options.path}`
];
for (const field in options.headers) {
args.push('-H', `${field}=${options.headers[field]}`);
}
args.push(`http://127.0.0.1:${options.port}${options.path}`);
const child = child_process.spawn(this.executable, args);
return child;
}
Expand Down Expand Up @@ -59,7 +62,7 @@ class WrkBenchmarker {
'-d', options.duration,
'-c', options.connections,
'-t', 8,
`http://127.0.0.1:${options.port}${options.path}`
`http://127.0.0.1:${options.port}${options.path}`,
];
const child = child_process.spawn(this.executable, args);
return child;
Expand Down Expand Up @@ -170,7 +173,7 @@ const http_benchmarkers = [
new AutocannonBenchmarker(),
new TestDoubleBenchmarker('http'),
new TestDoubleBenchmarker('http2'),
new H2LoadBenchmarker()
new H2LoadBenchmarker(),
];

const benchmarkers = {};
Expand All @@ -188,7 +191,7 @@ exports.run = function(options, callback) {
path: '/',
connections: 100,
duration: 5,
benchmarker: exports.default_http_benchmarker
benchmarker: exports.default_http_benchmarker,
}, options);
if (!options.benchmarker) {
callback(new Error('Could not locate required http benchmarker. See ' +
Expand Down Expand Up @@ -216,7 +219,7 @@ exports.run = function(options, callback) {
let stdout = '';
child.stdout.on('data', (chunk) => stdout += chunk.toString());

child.once('close', function(code) {
child.once('close', (code) => {
const elapsed = process.hrtime(benchmarker_start);
if (code) {
let error_message = `${options.benchmarker} failed with ${code}.`;
Expand Down
5 changes: 1 addition & 4 deletions benchmark/assert/deepequal-buffer.js
Expand Up @@ -6,10 +6,7 @@ const bench = common.createBenchmark(main, {
n: [2e4],
len: [1e2, 1e3],
strict: [0, 1],
method: [
'deepEqual',
'notDeepEqual'
]
method: [ 'deepEqual', 'notDeepEqual' ],
});

function main({ len, n, method, strict }) {
Expand Down
4 changes: 2 additions & 2 deletions benchmark/assert/deepequal-map.js
Expand Up @@ -14,8 +14,8 @@ const bench = common.createBenchmark(main, {
'deepEqual_mixed',
'notDeepEqual_primitiveOnly',
'notDeepEqual_objectOnly',
'notDeepEqual_mixed'
]
'notDeepEqual_mixed',
],
});

function benchmark(method, n, values, values2) {
Expand Down
9 changes: 3 additions & 6 deletions benchmark/assert/deepequal-object.js
Expand Up @@ -7,10 +7,7 @@ const bench = common.createBenchmark(main, {
n: [5e3],
size: [1e2, 1e3, 5e4],
strict: [0, 1],
method: [
'deepEqual',
'notDeepEqual'
]
method: [ 'deepEqual', 'notDeepEqual' ],
});

function createObj(source, add = '') {
Expand All @@ -21,8 +18,8 @@ function createObj(source, add = '') {
a: [1, 2, 3],
baz: n,
c: {},
b: []
}
b: [],
},
}));
}

Expand Down