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

v12.17.0 release proposal #33197

Merged
merged 349 commits into from May 26, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
349 commits
Select commit Hold shift + click to select a range
4aaf407
test: show child stderr output in largepages test
bnoordhuis Feb 2, 2020
ab8f38b
worker: add ability to take heap snapshot from parent thread
addaleax Jan 29, 2020
9eeee0d
perf_hooks: add property flags to GCPerformanceEntry
fanatid Sep 13, 2019
a4ee930
test: improve logged errors
BridgeAR Jan 20, 2020
2fc72ca
test: fix flaky test-trace-sigint-on-idle
addaleax Feb 5, 2020
38de40a
src: do not unnecessarily re-assign uv handle data
addaleax Feb 8, 2020
ef80c02
Revert "benchmark: remove special test entries"
addaleax Feb 10, 2020
cf2ca11
Revert "benchmark: refactor helper into a class"
addaleax Feb 10, 2020
8a044cb
test: fix flaky parallel/test-repl-history-navigation test
BridgeAR Feb 9, 2020
02de66a
vm: lazily initialize primordials for vm contexts
joyeecheung Feb 11, 2020
6348fae
tls: expose SSL_export_keying_material
simllll Feb 15, 2020
d1d22fa
test: add secp224k1 check in crypto-dh-stateless
danbev Feb 21, 2020
e765d59
build: add missing comma in node.gyp
cjihrig Feb 26, 2020
b62db59
module: port source map sort logic from chromium
bcoe Feb 24, 2020
0847bc3
crypto: simplify exportKeyingMaterial
tniessen Feb 23, 2020
c979aea
src: improve handling of internal field counting
jasnell Feb 25, 2020
322a998
dgram: make UDPWrap more reusable
addaleax Oct 9, 2019
434ca87
lib: move isLegalPort to validators, refactor
jasnell Feb 18, 2020
83c47b6
src: introduce node_sockaddr
jasnell Mar 3, 2020
5c81b8d
wasi: add returnOnExit option
cjihrig Mar 5, 2020
394487e
src: create a getter for kernel version
juanarbol Mar 10, 2020
154da1f
src: add missing namespace using statements in node_watchdog.h
legendecas Mar 6, 2020
51a3456
src: handle NULL env scenario
HarshithaKP Feb 21, 2020
011e3de
benchmark: refactor helper into a class
BridgeAR Feb 12, 2020
7139788
benchmark: add `test` and `all` options and improve errors"
BridgeAR Feb 12, 2020
5a8e54b
test: refactor all benchmark tests to use the new test option
BridgeAR Feb 12, 2020
b4a6351
benchmark: remove special test entries
BridgeAR Feb 12, 2020
c98ba95
doc: remove personal pronoun usage in addons.md
Trott Mar 8, 2020
9a7f892
doc: remove personal pronoun usage in errors.md
Trott Mar 8, 2020
97689e0
doc: remove personal pronoun usage in fs.md
Trott Mar 8, 2020
c0cf234
doc: remove personal pronoun usage in policy.md
Trott Mar 8, 2020
f5b60ec
doc: change worker.takeHeapSnapshot to getHeapSnapshot
Flarna Mar 3, 2020
40c5d58
Revert "src: keep main-thread Isolate attached to platform during Dis…
addaleax Feb 18, 2020
16a913f
fs: make fs.read params optional
lholmquist Jan 16, 2020
12b8345
http, async_hooks: remove unneeded reference to wrapping resource
Flarna Mar 2, 2020
3903aec
repl: align preview with the actual executed code
BridgeAR Feb 24, 2020
10ee89a
test: refactor and simplify test-repl-preview
BridgeAR Mar 9, 2020
217e3df
worker: allow URL in Worker constructor
aduh95 Feb 6, 2020
7410e8d
esm: port loader code to JS
addaleax Mar 7, 2020
efc844d
test: verify that WASI errors are rethrown
cjihrig Mar 9, 2020
ae83f0f
deps: upgrade to libuv 1.35.0
cjihrig Mar 11, 2020
4a08b85
test: make test-memory-usage predictable
mmarchini Mar 12, 2020
0b310df
src: unconditionally include report feature
cjihrig Mar 13, 2020
70eaba1
build: remove node_report option in node.gyp
cjihrig Mar 13, 2020
984ae30
build: make --without-report a no-op
cjihrig Mar 13, 2020
6a0bc83
test: remove common.skipIfReportDisabled()
cjihrig Mar 13, 2020
90d35ad
doc,lib,src,test: make --experimental-report a nop
cjihrig Mar 13, 2020
fd2486e
doc: update stability of report features
cjihrig Mar 13, 2020
2f976d7
src: find .text section using dl_iterate_phdr
Mar 13, 2020
fbd3943
n-api: fix comment on expected N-API version
mhdawson Mar 12, 2020
4ec25b4
src,cli: support compact (one-line) JSON reports
sam-github Mar 13, 2020
ea4302b
errors: drop pronouns from ERR_WORKER_PATH message
cjihrig Mar 15, 2020
b598321
lib: add option to disable __proto__
devsnek Mar 15, 2020
742a032
doc: complete n-api version matrix
Mar 16, 2020
43e9ae8
src: prefer OnScopeLeave over shared_ptr<void>
addaleax Mar 13, 2020
e67b97e
cli: allow --huge-max-old-generation-size in NODE_OPTIONS
addaleax Mar 13, 2020
df046de
src: add debug option to report large page stats
Mar 17, 2020
8f7f4e5
src: avoid Isolate::GetCurrent() for platform implementation
addaleax Mar 14, 2020
e3baee6
test: refactoring / cleanup on child-process tests
jasnell Mar 23, 2020
c126d28
report: handle on-fatalerror better
HarshithaKP Mar 16, 2020
2da974e
src: use single ObjectTemplate for TextDecoder
addaleax Mar 22, 2020
58aadcd
src: simplify large pages mapping code
Mar 20, 2020
16d85d9
src: fix compiler warnings in node_report_module
danbev Mar 26, 2020
d7e4bb2
doc: add missing changes: entry for mkdir
addaleax Mar 25, 2020
23f8f35
src: unify Linux and FreeBSD large pages implem
Mar 26, 2020
13342f8
doc: fix typo in maintaining-openssl guide
snitin315 Mar 30, 2020
d7f1add
benchmark: add `no-var` rule in .eslintrc.yaml
dnlup Feb 14, 2020
d205bc9
benchmark: use const instead of var in async_hooks
dnlup Feb 14, 2020
2d7c52d
benchmark: use let instead of var in common.js
dnlup Feb 14, 2020
a05f226
benchmark: use let instead of var in dns
dnlup Feb 14, 2020
33858fa
benchmark: use let instead of var in run.js
dnlup Feb 14, 2020
f3ef894
benchmark: use let instead of var in timers
dnlup Feb 14, 2020
e68c21f
benchmark: use let instead of var in tls
dnlup Feb 14, 2020
862aeae
benchmark: use let instead of var in url
dnlup Feb 14, 2020
c572218
benchmark: use let instead of var in util
dnlup Feb 14, 2020
cdf4f48
benchmark: use let instead of var in worker
dnlup Feb 14, 2020
6601fac
fs: add fs.readv()
SheikhSajid Mar 16, 2020
3020798
test: als variant of test-timers-clearImmediate
HarshithaKP Mar 16, 2020
965452d
lib: replace Array to ArrayIsArray by primordials
himself65 Mar 14, 2020
5b1c346
lib: removed unused error code
yashLadha Mar 25, 2020
ade4ec6
worker: runtime error on pthread creation
HarshithaKP Mar 18, 2020
5598dd1
test: fix a typo on test-fs-read-optional-params
himself65 Mar 24, 2020
bde0837
fs: fix fs.read when passing null value
himself65 Mar 25, 2020
b7d264e
dns: add dns.ALL hints flag constant
murgatroid99 Mar 9, 2020
7c723af
wasi: clean up options validation
lundibundi Feb 14, 2020
e035194
src: refactoring and cleanup of node_i18n
jasnell Mar 22, 2020
8e3dd47
src: handle report options on fatalerror
sam-github Mar 25, 2020
29eca36
src: move JSONWriter into its own file
addaleax Mar 29, 2020
73c55d3
src: include AsyncWrap provider strings in snapshot
addaleax Mar 21, 2020
4b96fc5
report: add missing locks for report_on_fatalerror accessors
addaleax Mar 28, 2020
9f6ed72
src: clean up worker thread creation code
addaleax Mar 30, 2020
464ff85
src: remove loop_init_failed_ from Worker class
addaleax Mar 30, 2020
8eb6807
test: replace flag expose_internals to expose-internals
juanarbol Mar 29, 2020
6175a22
src: avoid using elevated v8 namespaces in node_errors.h
jasnell Mar 24, 2020
7432d0a
src: avoid using elevated v8 namespaces in node_perf.h
jasnell Mar 24, 2020
a100709
fs: make parameters optional for readSync
lholmquist Mar 24, 2020
a55d215
doc: add missing changes: entry for dns.ALL
addaleax Apr 2, 2020
ca4e652
worker: support MessagePort to workers data
juanarbol Mar 14, 2020
06953df
src: fix extra includes of "env.h" and "env-inl.h"
nkreeger Mar 16, 2020
b62910c
module: expose exports conditions to loaders
jkrems Jan 10, 2020
ad2fdd5
doc: make openssl commit messages be valid
sam-github Apr 1, 2020
c5e0615
test: refactor test-worker
himself65 Mar 26, 2020
9a010a3
src: munmap(2) upon class instance destructor
Mar 30, 2020
b3ac840
test: save test file in temporary directory
lpinca Apr 5, 2020
c0d3fc2
src: sync access for report and openssl options
sam-github Apr 2, 2020
6aa3869
util: add `maxStrLength` option to `inspect` function
rosaxxny Mar 20, 2020
f945a5e
report: fix stderr matching for fatal error
gengjiawen Apr 7, 2020
26fee8b
build: remove `.txt` files from .gitignore
Trott Apr 7, 2020
57cd7d2
worker: fix type check in receiveMessageOnPort
addaleax Apr 9, 2020
47d2a96
doc: add puzpuzpuz to collaborators
puzpuzpuz Apr 13, 2020
769ac24
test: use symlinks to copy shells
Apr 7, 2020
fa51d85
doc: document `buffer.from` returns internal pool buffer
HarshithaKP Apr 7, 2020
c26637b
src: remove unused v8 Array namespace
juanarbol Apr 10, 2020
b53193a
buffer: mark pool ArrayBuffer as untransferable
addaleax Apr 10, 2020
dec8a21
tls: provide default cipher list from command line
addaleax Apr 10, 2020
02f99d2
buffer: add type check in bidirectionalIndexOf
Flarna Apr 10, 2020
38e51d3
doc: remove warning from `response.writeHead`
cecchi Apr 7, 2020
60660c3
build: use same flags as V8 for ASAN
mmarchini Apr 10, 2020
39da5bf
doc: updated guidance for n-api changes
mhdawson Apr 8, 2020
c4da682
cli, report: move --report-on-fatalerror to stable
cjihrig Mar 26, 2020
873d4aa
doc: add transform stream destroy() return value
cjihrig Apr 11, 2020
c0805f0
build: add configure flag to build V8 with DCHECKs
addaleax Apr 11, 2020
5885b37
lib: created isValidCallback helper
yashLadha Apr 5, 2020
8a38726
src: ignore GCC -Wcast-function-type for v8.h
danbev Apr 6, 2020
271b309
test: cover node entry type in perf_hooks
julianduque Apr 10, 2020
8e7c41e
doc: note that signatures of binary may be from subkeys
haqer1 Apr 1, 2020
44ca479
test: mark test-http2-reset-flood flaky on all
sam-github Apr 13, 2020
e839a71
test: mark test-worker-prof flaky on arm
sam-github Apr 13, 2020
96c9311
test: replace equal with strictEqual
JesuHrz Apr 8, 2020
50130f0
test: mark cpu-prof-dir-worker flaky on all
sam-github Apr 13, 2020
6d6bb2a
fs: use finished over destroy w/ cb
ronag Apr 13, 2020
e9927e5
doc: improve net docs
ronag Apr 13, 2020
c566906
test: only detect uname on supported os
dmabupt Apr 13, 2020
68e3954
test: replace console.log/error() with debuglog
daemon1024 Apr 6, 2020
6f1931d
build: remove .git folders when testing V8
richardlau Apr 16, 2020
8d53024
doc: improve consistency in usage of NULL
mhdawson Apr 8, 2020
bb1481f
src: remove unused using in node_worker.cc
danbev Apr 14, 2020
6489a5b
module: fix memory leak when require error occurs
lianxuify Apr 14, 2020
68a1cec
doc: missing brackets
sla100 Apr 4, 2020
2d7a759
deps: upgrade to libuv 1.36.0
cjihrig Apr 15, 2020
6ffe4ed
deps: upgrade to libuv 1.37.0
cjihrig Apr 19, 2020
aed5112
doc: add juanarbol as collaborator
juanarbol Apr 17, 2020
f7b78f2
doc: add N-API version 6 to table
mhdawson Apr 13, 2020
71bdcae
src: remove redundant v8::HeapSnapshot namespace
juanarbol Apr 14, 2020
576a626
tools: decrease timeout in test.py
addaleax Apr 15, 2020
9c21664
src: elevate v8 namespaces
nimit95 Apr 15, 2020
f181b59
test: changed function to arrow function
nimit95 Apr 16, 2020
6ddf37c
doc: add `tsc-agenda` to onboarding labels list
Trott Apr 13, 2020
84571ce
lib: remove unnecesary else block
ddazal Apr 3, 2020
9c18838
fs: remove unnecessary else statement
JesuHrz Apr 4, 2020
0745f88
src: remove validation of unreachable code
juanarbol Apr 13, 2020
26fdc64
doc: synch SECURITY.md with website
Trott Apr 17, 2020
8dcb22f
perf_hooks: remove unnecessary assignment when name is undefined
rickyes Apr 18, 2020
1472a39
doc: fix typo in zlib.md
chenmnkken Apr 17, 2020
26cf6a3
doc: fix usage of folder and directory terms in fs.md
karan1205 Apr 18, 2020
0bae243
test: mark test-child-process-fork-args as flaky on Windows
puzpuzpuz Apr 20, 2020
cf16cb7
src: fix null deref in AllocatedBuffer::clear
fowles Apr 16, 2020
931c0c7
doc: fix typo in security-release-process.md
SASUKE40 Apr 19, 2020
becbe9e
tls: move getAllowUnauthorized to internal/options
jasnell Apr 18, 2020
3dc3772
module: improve error for invalid package targets
MylesBorins Apr 17, 2020
1811a10
module: exports not exported for null resolutions
guybedford Apr 14, 2020
d883024
http2: wait for secureConnect before initializing
bcoe Apr 21, 2020
2093f13
fs: update validateOffsetLengthRead in utils.js
daemon1024 Apr 17, 2020
05059a2
src: use using NewStringType
rickyes Apr 14, 2020
5f79ab2
tools: remove unused code in doc generation tool
Trott Apr 18, 2020
a7ec1ea
doc: elevate diagnostic report to tier1
gireeshpunathil Mar 25, 2020
e5a2450
doc: remove repeated word in modules.md
kodekage Apr 19, 2020
56313da
deps: V8: cherry-pick e1eac1b16c96
Apr 21, 2020
4c67568
test: test-async-wrap-constructor prefer forEach
dericop Apr 3, 2020
92d91d1
doc: add angle brackets around implicit links
nschonni Apr 6, 2020
b057175
doc: ignore no-literal-urls in changelogs
nschonni Apr 6, 2020
d8bb226
doc: convert bare email addresses to mailto links
nschonni Apr 23, 2020
7397f80
doc: ignore no-literal-urls in README
nschonni Apr 23, 2020
dacd279
test: refactor events tests for invalid listeners
edsadr Apr 11, 2020
cb7dae3
doc: updated directory entry information
Apr 12, 2020
579f68c
test: better error validations for event-capture
edsadr Apr 10, 2020
846d7bd
src: delete MicroTaskPolicy namespace
juanarbol Apr 14, 2020
4dba3fc
lib: unnecessary const assignment for class
yashLadha Apr 21, 2020
79e95e4
inspector: only write coverage in fully bootstrapped Environments
joyeecheung Apr 21, 2020
b893c5b
src: assignment to valid type
yashLadha Apr 16, 2020
8352045
test: remove timers-blocking-callback
Fishrock123 Apr 15, 2020
9038e64
doc: avoid tautology in README
ishaanjain1898 Apr 22, 2020
eb33d52
deps: V8: backport 3f8dc4b2e5ba
ryzokuken Apr 22, 2020
98c3c42
doc: add documentation for transferList arg at worker threads
juanarbol Apr 16, 2020
9ce6e36
worker: fix process.env var empty key access
bl-ue Apr 26, 2020
60db9af
src: fix empty-named env var assertion failure
bl-ue Apr 18, 2020
08b66f2
src: do not compare against wide characters
bl-ue Apr 19, 2020
d217b79
cluster: removed unused addressType argument from constructor
yashLadha Apr 21, 2020
e0e8a9a
util,readline: NFC-normalize strings before getStringWidth
addaleax Apr 25, 2020
60550f3
test: refactor test-async-hooks-constructor
himself65 Apr 25, 2020
62f2953
src: add AsyncWrapObject constructor template factory
Qard Apr 25, 2020
d75f644
doc: improve release documentation
targos Apr 24, 2020
195043f
module: refactor condition
MylesBorins Apr 22, 2020
c90a070
doc: make openssl maintenance position independent
sam-github Apr 21, 2020
b555a77
build: fix vcbuild error for missing Visual Studio
Hakerh400 Apr 4, 2020
5ea5c26
doc: improve WHATWG url constructor code example
lirantal Apr 11, 2020
d08be9c
n-api: fix false assumption on napi_async_context structures
legendecas Apr 19, 2020
1c010b4
tools: update ESLint to 7.0.0-rc.0
himself65 Apr 25, 2020
3dafc14
tools: fix mkcodecache when run with ASAN
addaleax Apr 14, 2020
93226a5
esm: unflag --experimental-modules
guybedford Oct 11, 2019
698e21b
lib: add warning on dynamic import es modules
juanarbol Nov 29, 2019
5df8ab1
stream: close iterator in Readable.from
vadzim Apr 14, 2020
a1fa180
module: partial doc removal of --experimental-modules
MylesBorins Apr 18, 2020
6a9f867
vm: throw error when duplicated exportNames in SyntheticModule
himself65 Apr 13, 2020
b9d9c24
tools: update broken types in type parser
cjihrig Apr 25, 2020
e1fe0b6
wasi: rename __wasi_unstable_reactor_start()
cjihrig Apr 26, 2020
7f845e6
wasi: update start() behavior to match spec
cjihrig Apr 26, 2020
e073da0
deps: update to uvwasi 0.0.8
cjihrig Apr 26, 2020
d50fe6c
path: fix comment grammar
thecodrr Apr 20, 2020
6356ad4
lib: fix validateport error message when allowZero is false
rickyes Apr 15, 2020
4ab6643
test: flaky test-stdout-close-catch on freebsd
sam-github Apr 14, 2020
dad8217
test: mark test flaky on freebsd
sam-github Apr 14, 2020
e05c29d
cluster: fix error on worker disconnect/destroy
santigimeno Apr 1, 2020
4236175
crypto: key size must be int32 in DiffieHellman()
bnoordhuis Apr 10, 2020
c1b7674
crypto: generator must be int32 in DiffieHellman()
bnoordhuis Apr 10, 2020
71bccdd
crypto: check DiffieHellman p and g params
bnoordhuis Apr 10, 2020
154b18f
console: support console constructor groupIndentation option
rickyes Apr 21, 2020
8864353
src: remove unnecessary fully qualified names
rickyes Apr 26, 2020
58bd92a
tools: update remark-preset-lint-node@1.14.0
Trott Apr 26, 2020
4d7f986
n-api: simplify uv_idle wrangling
bnoordhuis Apr 22, 2020
8a9be1d
doc: don't check links in tmp dirs
bnoordhuis Apr 22, 2020
3015887
test: check args on SourceTextModule cachedData
juanarbol Apr 20, 2020
90cf886
doc: some grammar fixes
ChrisAHolland Apr 26, 2020
2ac0f20
doc: improve worker pool example
ranjan-purbey Apr 26, 2020
c86883e
stream: add null check in Readable.from
rexagod Apr 16, 2020
31b143c
doc: correct Nodejs to Node.js spelling
nschonni Apr 27, 2020
6b1e235
src: separate out NgLibMemoryManagerBase
jasnell Apr 27, 2020
9570644
lib: cosmetic change to builtinLibs list for maintainability
jasnell Apr 27, 2020
1436977
src: crypto::UseSNIContext to use BaseObjectPtr
jasnell Apr 27, 2020
b3f0417
src: return undefined when validation err == 0
jasnell Apr 27, 2020
843a54f
wasi: use free() to release preopen array
addaleax Apr 28, 2020
ffca498
src: use unique_ptr for CachedData in ContextifyScript::New
addaleax Apr 28, 2020
08e01a1
test: add missing calls to napi_async_destroy
addaleax Apr 28, 2020
13cae34
test: fix out-of-bound reads from invalid sizeof usage
addaleax Apr 28, 2020
b1f08b8
module: no type module resolver side effects
guybedford Apr 27, 2020
2383538
test: move test-process-title to sequential
addaleax Apr 29, 2020
d7b13ab
test: skip memory usage tests when ASAN is enabled
addaleax Apr 28, 2020
7c8b0d2
doc: fix the spelling error in stream.md
yunnysunny Feb 1, 2020
f127ae3
doc: clarify when not to run CI on docs
juanarbol Apr 27, 2020
62143b5
doc: add util.types.isArrayBufferView()
kevinoid Apr 27, 2020
94e4847
tools: bump remark-preset-lint-node to 1.15.0
Trott Apr 30, 2020
85ef383
src: remove unused v8 Message namespace
edsadr Apr 30, 2020
51c3c8d
doc: fix a typo in crypto.generateKeyPairSync()
himself65 May 1, 2020
a3decf5
http: simplify sending header
ronag May 1, 2020
6b02359
test: update c8 ignore comment
bcoe Apr 30, 2020
daf1d84
esm: improve commonjs hint on module not found
dnlup Mar 21, 2020
2d76ae7
deps: update to ICU 67.1
targos May 10, 2020
5c0232a
deps: backport ICU-21081 for ICU 67.x (constexpr)
srl295 May 11, 2020
ebd9090
http: disable headersTimeout check when set to zero
ShogunPanda Apr 29, 2020
cd4ae7c
2020-05-26, Version 12.17.0 'Erbium' (LTS)
targos May 1, 2020
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
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .gitignore
Expand Up @@ -36,7 +36,6 @@
/*.exe
/*.swp
/out
/*.txt

# === Rules for artifacts of `./configure` ===
/icu_config.gypi
Expand Down
6 changes: 3 additions & 3 deletions BUILDING.md
Expand Up @@ -202,7 +202,7 @@ For use of AVX2,
* nasm version 2.10 or higher in Windows

Please refer to
https://www.openssl.org/docs/man1.1.1/man3/OPENSSL_ia32cap.html for details.
<https://www.openssl.org/docs/man1.1.1/man3/OPENSSL_ia32cap.html> for details.

If compiling without one of the above, use `configure` with the
`--openssl-no-asm` flag. Otherwise, `configure` will fail.
Expand All @@ -226,7 +226,7 @@ The Node.js project uses Python as part of its build process and has
historically only been Python 2 compatible.

Python 2 will reach its _end-of-life_ at the end of 2019 at which point the
interpreter will cease receiving updates. See https://python3statement.org/
interpreter will cease receiving updates. See <https://python3statement.org/>
for more information.

The Node.js project is in the process of transitioning its Python code to
Expand Down Expand Up @@ -283,7 +283,7 @@ $ make -j4
If you run into a `No module named 'distutils.spawn'` error when executing
`./configure`, please try `python3 -m pip install --upgrade setuptools` or
`sudo apt install python3-distutils -y`.
For more information, see https://github.com/nodejs/node/issues/30189.
For more information, see <https://github.com/nodejs/node/issues/30189>.

The `-j4` option will cause `make` to run 4 simultaneous compilation jobs which
may reduce build time. For more information, see the
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_V12.md#12.16.3">12.16.3</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V12.md#12.17.0">12.17.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.16.3">12.16.3</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.16.2">12.16.2</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.16.1">12.16.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.16.0">12.16.0</a><br/>
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Expand Up @@ -141,7 +141,7 @@ The externally maintained libraries used by Node.js are:
"""
COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)

Copyright © 1991-2019 Unicode, Inc. All rights reserved.
Copyright © 1991-2020 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in https://www.unicode.org/copyright.html.

Permission is hereby granted, free of charge, to any person obtaining
Expand Down
9 changes: 7 additions & 2 deletions README.md
@@ -1,3 +1,4 @@
<!--lint disable no-literal-urls-->
<p align="center">
<a href="https://nodejs.org/">
<img
Expand Down Expand Up @@ -79,7 +80,7 @@ contains the latest Carbon (Node.js 8) release.
#### Nightly Releases
<https://nodejs.org/download/nightly/>

Each directory name and filename contains a date (in UTC time) and the commit
Each directory name and filename contains a date (in UTC) and the commit
SHA at the HEAD of the release.

#### API Documentation
Expand Down Expand Up @@ -331,6 +332,8 @@ For information about the governance of the Node.js project, see
**João Reis** &lt;reis@janeasystems.com&gt;
* [joyeecheung](https://github.com/joyeecheung) -
**Joyee Cheung** &lt;joyeec9h3@gmail.com&gt; (she/her)
* [juanarbol](https://github.com/juanarbol) -
**Juan José Arboleda** &lt;soyjuanarbol@gmail.com&gt; (he/him)
* [JungMinu](https://github.com/JungMinu) -
**Minwoo Jung** &lt;nodecorelab@gmail.com&gt; (he/him)
* [kfarnung](https://github.com/kfarnung) -
Expand Down Expand Up @@ -367,6 +370,8 @@ For information about the governance of the Node.js project, see
**Ouyang Yadong** &lt;oyydoibh@gmail.com&gt; (he/him)
* [psmarshall](https://github.com/psmarshall) -
**Peter Marshall** &lt;petermarshall@chromium.org&gt; (he/him)
* [puzpuzpuz](https://github.com/puzpuzpuz) -
**Andrey Pechkurov** &lt;apechkurov@gmail.com&gt; (he/him)
* [Qard](https://github.com/Qard) -
**Stephen Belanger** &lt;admin@stephenbelanger.com&gt; (he/him)
* [refack](https://github.com/refack) -
Expand Down Expand Up @@ -546,7 +551,7 @@ maintaining the Node.js project.

### Release Keys

GPG keys used to sign Node.js releases:
Primary GPG keys for Node.js Releasers (some Releasers sign with subkeys):

* **Beth Griggs** &lt;bethany.griggs@uk.ibm.com&gt;
`4ED778F539E3634C779C87C6D7062848A1AB005C`
Expand Down
3 changes: 1 addition & 2 deletions SECURITY.md
Expand Up @@ -11,8 +11,7 @@ handling your submission.
After the initial reply to your report, the security team will endeavor to keep
you informed of the progress being made towards a fix and full announcement,
and may ask for additional information or guidance surrounding the reported
issue. These updates will be sent at least every five days; in practice, this
is more likely to be every 24-48 hours.
issue.

### Node.js Bug Bounty Program

Expand Down
1 change: 1 addition & 0 deletions benchmark/.eslintrc.yaml
Expand Up @@ -5,6 +5,7 @@ env:
es6: true

rules:
no-var: error
comma-dangle:
- error
- arrays: 'always-multiline'
Expand Down
22 changes: 16 additions & 6 deletions benchmark/_cli.js
Expand Up @@ -6,22 +6,24 @@ const path = require('path');
// Create an object of all benchmark scripts
const benchmarks = {};
fs.readdirSync(__dirname)
.filter((name) => fs.statSync(path.resolve(__dirname, name)).isDirectory())
.filter((name) => {
return name !== 'fixtures' &&
fs.statSync(path.resolve(__dirname, name)).isDirectory();
})
.forEach((category) => {
benchmarks[category] = fs.readdirSync(path.resolve(__dirname, category))
.filter((filename) => filename[0] !== '.' && filename[0] !== '_');
});

function CLI(usage, settings) {
if (!(this instanceof CLI)) return new CLI(usage, settings);

if (process.argv.length < 3) {
this.abort(usage); // Abort will exit the process
}

this.usage = usage;
this.optional = {};
this.items = [];
this.test = false;

for (const argName of settings.arrayArgs) {
this.optional[argName] = [];
Expand All @@ -34,7 +36,7 @@ function CLI(usage, settings) {
if (arg === '--') {
// Only items can follow --
mode = 'item';
} else if ('both' === mode && arg[0] === '-') {
} else if (mode === 'both' && arg[0] === '-') {
// Optional arguments declaration

if (arg[1] === '-') {
Expand All @@ -61,6 +63,8 @@ function CLI(usage, settings) {

// The next value can be either an option or an item
mode = 'both';
} else if (arg === 'test') {
this.test = true;
} else if (['both', 'item'].includes(mode)) {
// item arguments
this.items.push(arg);
Expand All @@ -83,9 +87,15 @@ CLI.prototype.abort = function(msg) {
CLI.prototype.benchmarks = function() {
const paths = [];

if (this.items.includes('all')) {
this.items = Object.keys(benchmarks);
}

for (const category of this.items) {
if (benchmarks[category] === undefined)
continue;
if (benchmarks[category] === undefined) {
console.error(`The "${category}" category does not exist.`);
process.exit(1);
}
for (const scripts of benchmarks[category]) {
if (this.shouldSkip(scripts)) continue;

Expand Down
32 changes: 19 additions & 13 deletions benchmark/_http-benchmarkers.js
Expand Up @@ -43,9 +43,8 @@ class AutocannonBenchmarker {
}
if (!result || !result.requests || !result.requests.average) {
return undefined;
} else {
return result.requests.average;
}
return result.requests.average;
}
}

Expand All @@ -58,10 +57,13 @@ class WrkBenchmarker {
}

create(options) {
const duration = typeof options.duration === 'number' ?
Math.max(options.duration, 1) :
options.duration;
const args = [
'-d', options.duration,
'-d', duration,
'-c', options.connections,
'-t', 8,
'-t', Math.min(options.connections, require('os').cpus().length || 8),
`http://127.0.0.1:${options.port}${options.path}`,
];
for (const field in options.headers) {
Expand All @@ -77,9 +79,8 @@ class WrkBenchmarker {
const throughput = match && +match[1];
if (!isFinite(throughput)) {
return undefined;
} else {
return throughput;
}
return throughput;
}
}

Expand All @@ -89,18 +90,21 @@ class WrkBenchmarker {
*/
class TestDoubleBenchmarker {
constructor(type) {
// `type` is the type ofbenchmarker. Possible values are 'http' and 'http2'.
// `type` is the type of benchmarker. Possible values are 'http' and
// 'http2'.
this.name = `test-double-${type}`;
this.executable = path.resolve(__dirname, '_test-double-benchmarker.js');
this.present = fs.existsSync(this.executable);
this.type = type;
}

create(options) {
const env = Object.assign({
duration: options.duration,
process.env.duration = process.env.duration || options.duration || 5;

const env = {
test_url: `http://127.0.0.1:${options.port}${options.path}`,
}, process.env);
...process.env
};

const child = child_process.fork(this.executable,
[this.type],
Expand Down Expand Up @@ -189,13 +193,14 @@ http_benchmarkers.forEach((benchmarker) => {
});

exports.run = function(options, callback) {
options = Object.assign({
options = {
port: exports.PORT,
path: '/',
connections: 100,
duration: 5,
benchmarker: exports.default_http_benchmarker,
}, options);
...options
};
if (!options.benchmarker) {
callback(new Error('Could not locate required http benchmarker. See ' +
`${requirementsURL} for further instructions.`));
Expand All @@ -220,7 +225,8 @@ exports.run = function(options, callback) {
child.stderr.pipe(process.stderr);

let stdout = '';
child.stdout.on('data', (chunk) => stdout += chunk.toString());
child.stdout.setEncoding('utf8');
child.stdout.on('data', (chunk) => stdout += chunk);

child.once('close', (code) => {
const elapsed = process.hrtime(benchmarker_start);
Expand Down
10 changes: 6 additions & 4 deletions benchmark/_test-double-benchmarker.js
Expand Up @@ -7,7 +7,7 @@ if (!['http', 'http2'].includes(myModule)) {

const http = require(myModule);

const duration = process.env.duration || 0;
const duration = +process.env.duration;
const url = process.env.test_url;

const start = process.hrtime();
Expand All @@ -18,13 +18,15 @@ function request(res, client) {
res.on('error', () => {});
res.on('end', () => {
throughput++;
const diff = process.hrtime(start);
if (duration > 0 && diff[0] < duration) {
const [sec, nanosec] = process.hrtime(start);
const ms = sec * 1000 + nanosec / 1e6;
if (ms < duration * 1000) {
run();
} else {
console.log(JSON.stringify({ throughput }));
if (client) {
client.destroy();
process.exit(0);
}
}
});
Expand All @@ -33,7 +35,7 @@ function request(res, client) {
function run() {
if (http.get) { // HTTP
http.get(url, request);
} else { // HTTP/2
} else { // HTTP/2
const client = http.connect(url);
client.on('error', (e) => { throw e; });
request(client.request(), client);
Expand Down