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

v15.8.0 release proposal #37183

Merged
merged 82 commits into from Feb 2, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
53a0bdf
crypto: experimental (Ed/X)25519/(Ed/X)448 support
jasnell Jan 10, 2021
c4cab1f
lib: refactor to use validateBoolean
Lxxyx Jan 18, 2021
96cec1e
benchmark: improve explanations in R script
tniessen Jan 19, 2021
0129a79
fs: add explicit note about undefined path when recursive
eps1lon Jan 20, 2021
56377d6
lib: support returning Safe collections from C++
ExE-Boss Jan 17, 2021
97fc7d8
fs: refactor to remove redundant validation
RaisinTen Jan 18, 2021
a29da64
lib: refactor to use validateNumber
Lxxyx Jan 19, 2021
d76400a
lib: refactor to use validateString
Lxxyx Jan 20, 2021
7b78c67
child_process: allow promisified exec to be cancel
metcoder95 Jul 7, 2020
4e757ea
readline: add support for the AbortController to the question method
mattiasrunge May 31, 2020
b533485
quic: remove duplicate checks
Lxxyx Jan 21, 2021
ab64d74
crypto: throw error on invalid object in diffieHellman()
Lxxyx Jan 21, 2021
36930e4
test: test mode passed as an options object in mkdir/mkdirSync
RaisinTen Jan 20, 2021
36cc8df
test: log error in test-fs-realpath-pipe
joyeecheung Jan 18, 2021
fef6ac7
doc: add missing ARIA label for button
Trott Jan 23, 2021
de6dca1
test: improve coverage of `SourceTextModule` getters
juanarbol Jan 21, 2021
4a1fc42
lib: refactor to use optional chaining in internal/options.js
RaisinTen Jan 15, 2021
175f6f0
fs: use throwIfNoEntry option on statSync calls
aduh95 Jan 17, 2021
2135618
test: increase timeout on ASAN Action
aduh95 Jan 20, 2021
2cfe795
doc: list Unsupported Directory Import resolve err
guybedford Jan 23, 2021
7512429
readline: add history event and option to set initial history
mattiasrunge May 30, 2020
3722c15
doc: add missing comma in tty
ma11hew28 Jan 23, 2021
94204f7
test: process.nextTick for before exit
ttzztztz Jan 21, 2021
4086b23
test: increase fs promise coverage
emilsivervik Jan 6, 2021
a7b6464
doc: `EventTarget` and `Event` are available to user code since v15.0.0
ExE-Boss Jan 25, 2021
ec22756
benchmark: make output RFC 4180 compliant
tniessen Jan 23, 2021
81e9acf
src: rename crypto_ecdh.(h|cc) to crypto_ec.(h|cc)
tniessen Jan 24, 2021
c79688f
doc: improve AsyncLocalStorage introduction
brillout Jan 15, 2021
2c7ad38
dgram: support AbortSignal in createSocket
Jan 22, 2021
074641c
test: improve assertion message for test-vm-memleak
Trott Jan 23, 2021
7ddfa81
doc: add tooltip for light/dark mode toggle
Trott Jan 24, 2021
b7c3f99
doc: add Zijian Liu to collaborators
Lxxyx Jan 26, 2021
110063d
crypto: add generatePrime/checkPrime
jasnell Jan 19, 2021
9c69ca5
test,doc,lib: adjust object literal newlines for lint rule
Trott Jan 23, 2021
d2d6121
tools: enable object-curly-newline in ESLint rules
Trott Jan 23, 2021
ef2b250
test: increase coverage for assert/calltracker
Lxxyx Jan 2, 2021
55407b8
test: update to improve terminology
mhdawson Jan 20, 2021
e4b88b5
buffer: avoid creating the backing store in the thread
jasnell Jan 24, 2021
34adf7f
lib: refactor to avoid unsafe array iteration
aduh95 Jan 23, 2021
1710016
doc: mention adding Fixes to collaborator onboarding PR
joyeecheung Jan 27, 2021
cb3b0ec
crypto: generateKeyPair('ec') should not support NODE-ED* and NODE-X*
panva Jan 25, 2021
c4193ba
crypto: fix encrypted private -> public import
tniessen Jan 24, 2021
da07eb6
test: increase read file abort coverage
shootermv Jan 1, 2021
5227c5e
lib: refactor to use validateFunction
Lxxyx Jan 24, 2021
10da5c1
test: skip tests consistently in parallel.status
Trott Jan 23, 2021
db38cf2
test: increase inspect coverage
emilsivervik Jan 3, 2021
6f54a14
fs: add validatePosition and use in read and readSync
RaisinTen Jan 24, 2021
dcd34b0
benchmark: add benchmark for NODE_V8_COVERAGE
bcoe Jan 22, 2021
67b58f6
lib: refactor to use validateObject
Lxxyx Jan 21, 2021
ed58065
lib: add `bound apply` variants of varargs `primordials`
ExE-Boss Jan 20, 2021
1f819ec
test: add tests for `bound apply` variants of varargs `primordials`
ExE-Boss Jan 22, 2021
ddee21b
doc: update BUILDING.md previous versions links
richardlau Jan 26, 2021
fe9f4fd
tools: remove commented code from stability.js
cjihrig Jan 27, 2021
3d64d2b
readline: check for null input in question()
cjihrig Jan 27, 2021
1714998
readline: replace _questionCancel with a symbol
cjihrig Jan 27, 2021
3187845
util: add internal createDeferredPromise()
cjihrig Jan 27, 2021
9c831c0
src: fix dead code in RandomPrimeTraits
tniessen Jan 26, 2021
0346043
deps: upgrade npm to 7.5.0
ruyadorno Jan 28, 2021
b79b82d
doc: update Buffer encoding option count
davecardwell Jan 27, 2021
02f1d2f
esm: deprecate legacy main lookup for modules
guybedford Jan 13, 2021
52ce1d5
Revert "deps: update patch and docs for openssl update"
jasnell Jan 25, 2021
6756130
Revert "deps: re-enable OPENSSL_NO_QUIC guards"
jasnell Jan 25, 2021
f74b376
Revert "deps: various quic patches from akamai/openssl"
jasnell Jan 25, 2021
11dd267
quic: remove quic
jasnell Jan 25, 2021
9d6fd45
deps: update openssl config
jasnell Jan 25, 2021
ae42658
doc: add missing deprecation code
cjihrig Jan 30, 2021
181719d
esm: update to correct deprecation code
cjihrig Jan 30, 2021
9b9a180
doc: remove TOC summary for pages with no TOC
Trott Jan 24, 2021
e55d3d0
doc: add example for test structure
wjabbour Sep 4, 2020
e712650
doc: clarify repl exception conditions
Trott Jan 30, 2021
7196ac1
http: refactor to avoid unsafe array iteration
aduh95 Jan 29, 2021
a778081
doc: clarify ERR_INVALID_REPL_INPUT usage
Trott Jan 30, 2021
8cecce3
doc: fix markup and alphabetization in errors.md
Trott Jan 30, 2021
ad12fef
fs: only use Buffer.concat in promises.readFile when necessary
addaleax Jan 29, 2021
6940252
fs: read full size if known in promises.readFile
addaleax Jan 29, 2021
634bedc
doc,test: fix prime generation description
tniessen Jan 26, 2021
602aaf2
async_hooks: refactor to avoid unsafe array iteration
aduh95 Jan 29, 2021
3c90771
doc: fix list format in Developer's Certificate of Origin
NegiAkash890 Jan 30, 2021
a26dfb3
src: expose BaseObject::kInternalFieldCount in post-mortem metadata
joyeecheung Jan 28, 2021
4551d14
deps: upgrade npm to 7.5.1
ruyadorno Feb 1, 2021
47bfde0
doc: fix color contrast on <kbd> elements
aduh95 Feb 2, 2021
bc1c428
2021-02-02, Version 15.8.0 (Current)
targos Feb 2, 2021
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: 1 addition & 0 deletions .eslintrc.js
Expand Up @@ -258,6 +258,7 @@ module.exports = {
'no-void': 'error',
'no-whitespace-before-property': 'error',
'no-with': 'error',
'object-curly-newline': 'error',
'object-curly-spacing': ['error', 'always'],
'one-var': ['error', { initialized: 'never' }],
'one-var-declaration-per-line': 'error',
Expand Down
15 changes: 3 additions & 12 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Expand Up @@ -39,7 +39,7 @@
/doc/api/net.md @nodejs/net
/lib/dgram.js @nodejs/net
/lib/dns.js @nodejs/net
/lib/net.js @nodejs/net @nodejs/quic
/lib/net.js @nodejs/net
/lib/internal/dgram.js @nodejs/net
/lib/internal/dns/* @nodejs/net
/lib/internal/net.js @nodejs/net
Expand All @@ -59,7 +59,7 @@
/lib/crypto.js @nodejs/crypto
/lib/tls.js @nodejs/crypto @nodejs/net
/src/node_crypto* @nodejs/crypto
/src/crypto/* @nodejs/crypto @nodejs/quic
/src/crypto/* @nodejs/crypto

# http

Expand All @@ -68,7 +68,7 @@
/lib/_http_* @nodejs/http @nodejs/net
/lib/http.js @nodejs/http @nodejs/net
/lib/https.js @nodejs/crypto @nodejs/net @nodejs/http
/src/node_http_common* @nodejs/http @nodejs/http2 @nodejs/quic @nodejs/net
/src/node_http_common* @nodejs/http @nodejs/http2 @nodejs/net
/src/node_http_parser.cc @nodejs/http @nodejs/net

# http2
Expand All @@ -80,15 +80,6 @@
/src/node_http2* @nodejs/http2 @nodejs/net
/src/node_mem* @nodejs/http2

# quic

/deps/ngtcp2/ @nodejs/quic
/deps/nghttp3/ @nodejs/quic
/doc/api/quic.md @nodejs/quic
/lib/internal/quic/ @nodejs/quic
/src/node_bob* @nodejs/quic
/src/quic/ @nodejs/quic

# modules

/doc/api/modules.md @nodejs/modules
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-windows.yml
Expand Up @@ -14,7 +14,7 @@ env:
FLAKY_TESTS: dontcare

jobs:
build-windows-with-quic:
build-windows:
if: github.event.pull_request.draft == false
runs-on: windows-latest
steps:
Expand All @@ -28,4 +28,4 @@ jobs:
- name: Environment Information
run: npx envinfo
- name: Build
run: ./vcbuild.bat experimental-quic
run: ./vcbuild.bat
2 changes: 1 addition & 1 deletion .github/workflows/test-asan.yml
Expand Up @@ -37,4 +37,4 @@ jobs:
- name: Build
run: make build-ci -j2 V=1
- name: Test
run: make run-ci -j2 V=1 TEST_CI_ARGS="-p actions"
run: make run-ci -j2 V=1 TEST_CI_ARGS="-p actions -t 300"
16 changes: 0 additions & 16 deletions .github/workflows/test-linux.yml
Expand Up @@ -29,19 +29,3 @@ jobs:
run: make build-ci -j2 V=1 CONFIG_FLAGS="--error-on-warn"
- name: Test
run: make run-ci -j2 V=1 TEST_CI_ARGS="-p actions"

test-linux-with-quic:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v2
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Environment Information
run: npx envinfo
- name: Build
run: make build-ci -j2 V=1 CONFIG_FLAGS="--error-on-warn --experimental-quic"
- name: Test
run: make run-ci -j2 V=1 TEST_CI_ARGS="-p actions"
4 changes: 2 additions & 2 deletions .github/workflows/test-macos.yml
Expand Up @@ -14,7 +14,7 @@ env:
FLAKY_TESTS: dontcare

jobs:
test-macOS-with-quic:
test-macOS:
if: github.event.pull_request.draft == false
runs-on: macos-latest
steps:
Expand All @@ -26,6 +26,6 @@ jobs:
- name: Environment Information
run: npx envinfo
- name: Build
run: make build-ci -j2 V=1 CONFIG_FLAGS="--error-on-warn --experimental-quic"
run: make build-ci -j2 V=1 CONFIG_FLAGS="--error-on-warn"
- name: Test
run: make run-ci -j2 V=1 TEST_CI_ARGS="-p actions"
3 changes: 1 addition & 2 deletions BUILDING.md
Expand Up @@ -218,10 +218,9 @@ Supported platforms and toolchains change with each major version of Node.js.
This document is only valid for the current major version of Node.js.
Consult previous versions of this document for older versions of Node.js:

* [Node.js 13](https://github.com/nodejs/node/blob/v13.x/BUILDING.md)
* [Node.js 14](https://github.com/nodejs/node/blob/v14.x/BUILDING.md)
* [Node.js 12](https://github.com/nodejs/node/blob/v12.x/BUILDING.md)
* [Node.js 10](https://github.com/nodejs/node/blob/v10.x/BUILDING.md)
* [Node.js 8](https://github.com/nodejs/node/blob/v8.x/BUILDING.md)

## Building Node.js on supported platforms

Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Expand Up @@ -32,7 +32,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V15.md#15.7.0">15.7.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V15.md#15.8.0">15.8.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V15.md#15.7.0">15.7.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V15.md#15.6.0">15.6.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V15.md#15.5.1">15.5.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V15.md#15.5.0">15.5.0</a><br/>
Expand Down
42 changes: 21 additions & 21 deletions CONTRIBUTING.md
Expand Up @@ -33,24 +33,24 @@ See [details on our policy on Code of Conduct](./doc/guides/contributing/code-of

By making a contribution to this project, I certify that:

* (a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or

* (b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or

* (c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.

* (d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or

(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or

(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.

(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
52 changes: 0 additions & 52 deletions LICENSE
Expand Up @@ -1333,58 +1333,6 @@ The externally maintained libraries used by Node.js are:
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"""

- ngtcp2, located at deps/ngtcp2, is licensed as follows:
"""
The MIT License

Copyright (c) 2016 ngtcp2 contributors

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"""

- nghttp3, located at deps/nghttp3, is licensed as follows:
"""
The MIT License

Copyright (c) 2019 nghttp3 contributors

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"""

- node-inspect, located at deps/node-inspect, is licensed as follows:
"""
Copyright Node.js contributors. All rights reserved.
Expand Down
2 changes: 2 additions & 0 deletions README.md
Expand Up @@ -355,6 +355,8 @@ For information about the governance of the Node.js project, see
**Luigi Pinca** &lt;luigipinca@gmail.com&gt; (he/him)
* [lundibundi](https://github.com/lundibundi) -
**Denys Otrishko** &lt;shishugi@gmail.com&gt; (he/him)
* [Lxxyx](https://github.com/Lxxyx) -
**Zijian Liu** &lt;lxxyxzj@gmail.com&gt; (he/him)
* [mafintosh](https://github.com/mafintosh) -
**Mathias Buus** &lt;mathiasbuus@gmail.com&gt; (he/him)
* [mcollina](https://github.com/mcollina) -
Expand Down
16 changes: 8 additions & 8 deletions benchmark/compare.R
Expand Up @@ -35,22 +35,22 @@ if (!is.null(plot.filename)) {
ggsave(plot.filename, p);
}

# computes the shared standard error, as used in the welch t-test
# Computes the shared standard error, as used in Welch's t-test.
welch.sd = function (old.rate, new.rate) {
old.se.squared = var(old.rate) / length(old.rate)
new.se.squared = var(new.rate) / length(new.rate)
return(sqrt(old.se.squared + new.se.squared))
}

# calculate the improvement confidence interval. The improvement is calculated
# Calculate the improvement confidence interval. The improvement is calculated
# by dividing by old.mu and not new.mu, because old.mu is what the mean
# improvement is calculated relative to.
confidence.interval = function (shared.se, old.mu, w, risk) {
interval = qt(1 - (risk / 2), w$parameter) * shared.se;
return(sprintf("±%.2f%%", (interval / old.mu) * 100))
}

# Print a table with results
# Calculate the statistics table.
statistics = ddply(dat, "name", function(subdat) {
old.rate = subset(subdat, binary == "old")$rate;
new.rate = subset(subdat, binary == "new")$rate;
Expand All @@ -68,14 +68,14 @@ statistics = ddply(dat, "name", function(subdat) {
"(***)" = "NA"
);

# Check if there is enough data to calculate the calculate the p-value
# Check if there is enough data to calculate the p-value.
if (length(old.rate) > 1 && length(new.rate) > 1) {
# Perform a statistics test to see of there actually is a difference in
# Perform a statistical test to see if there actually is a difference in
# performance.
w = t.test(rate ~ binary, data=subdat);
shared.se = welch.sd(old.rate, new.rate)

# Add user friendly stars to the table. There should be at least one star
# Add user-friendly stars to the table. There should be at least one star
# before you can say that there is an improvement.
confidence = '';
if (w$p.value < 0.001) {
Expand All @@ -99,7 +99,7 @@ statistics = ddply(dat, "name", function(subdat) {
});


# Set the benchmark names as the row.names to left align them in the print
# Set the benchmark names as the row.names to left align them in the print.
row.names(statistics) = statistics$name;
statistics$name = NULL;

Expand All @@ -108,7 +108,7 @@ print(statistics);
cat("\n")
cat(sprintf(
"Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case there are %d comparisons, you can thus
result increases. In this case, there are %d comparisons, you can thus
expect the following amount of false-positive results:
%.2f false positives, when considering a 5%% risk acceptance (*, **, ***),
%.2f false positives, when considering a 1%% risk acceptance (**, ***),
Expand Down
6 changes: 3 additions & 3 deletions benchmark/compare.js
Expand Up @@ -56,7 +56,7 @@ for (const filename of benchmarks) {
// queue.length = binary.length * runs * benchmarks.length

// Print csv header
console.log('"binary", "filename", "configuration", "rate", "time"');
console.log('"binary","filename","configuration","rate","time"');

const kStartOfQueue = 0;

Expand Down Expand Up @@ -85,8 +85,8 @@ if (showProgress) {
// Escape quotes (") for correct csv formatting
conf = conf.replace(/"/g, '""');

console.log(`"${job.binary}", "${job.filename}", "${conf}", ` +
`${data.rate}, ${data.time}`);
console.log(`"${job.binary}","${job.filename}","${conf}",` +
`${data.rate},${data.time}`);
if (showProgress) {
// One item in the subqueue has been completed.
progress.completeConfig(data);
Expand Down