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.1.0 release proposal #35948

Merged
merged 115 commits into from
Nov 4, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
a7f37bc
src: add --heapsnapshot-near-heap-limit option
joyeecheung Oct 21, 2020
894419c
deps: V8: backport 4263f8a5e8e0
bdougie Oct 14, 2020
11eca36
test: add windows and C++ coverage
bcoe Oct 17, 2020
15ffed5
v8: implement v8.takeCoverage()
joyeecheung Jun 9, 2020
7bfa872
v8: implement v8.stopCoverage()
joyeecheung Jun 9, 2020
a9c0924
build: add license-builder GitHub Action
bnb Oct 19, 2020
f269c6c
doc: add Installing Node.js header in BUILDING.md
PoojaDurgad Oct 19, 2020
05a888a
doc,esm: document experimental warning removal
aduh95 Oct 22, 2020
564aade
doc,src,test: revise C++ code for linter update
Trott Oct 20, 2020
042d4dd
tools: bump cpplint to 1.5.0
Trott Oct 20, 2020
66da122
tools: refloat 7 Node.js patches to cpplint.py
Trott Oct 9, 2020
6590f8c
doc: update package.json field definitions
MylesBorins Oct 21, 2020
e0a1541
deps: update to cjs-module-lexer@0.4.3
guybedford Oct 21, 2020
88eb619
stream: fix duplicate logic in stream destroy
yashLadha Oct 21, 2020
1892532
doc: this prints replaced with this is printed
PoojaDurgad Oct 6, 2020
890b03e
doc: improve text for breakOnSigint
Trott Oct 17, 2020
292b529
doc: add missing link in Node.js 14 Changelog
aduh95 Oct 23, 2020
4b7708a
doc: update console.error example
iyabong Aug 29, 2020
0c5e8ed
test: add additional deprecation warning tests for rmdir recursive
iansu Oct 16, 2020
cfe61b8
http2: remove unsupported %.* specifier
mmomtchev Oct 17, 2020
548f91a
dns: add setLocalAddress to Resolver
daguej Aug 18, 2020
55b7a6c
doc: document changes for `*/promises` alias modules
ExE-Boss Jun 21, 2020
883ed4b
http2: add updateSettings to both http2 servers
Sep 28, 2020
5833007
http2: reinject data received before http2 is attached
mmomtchev Oct 16, 2020
86ed87b
http2: fix reinjection check
mmomtchev Oct 18, 2020
f6aa7c8
doc: add a example code to API doc property
PoojaDurgad Oct 21, 2020
a41e3eb
timers: correct explanation in comment
wjabbour Oct 1, 2020
70c41a8
stream: remove redundant context from comments
yashLadha Oct 21, 2020
368ae95
doc: mark optional parameters in timers.md
vsemozhetbyt Oct 22, 2020
f49afb5
doc: remove stability warning in v8 module doc
Trott Oct 23, 2020
0e9acf8
doc: fix header level in fs.md
ax1 Oct 23, 2020
110ef8a
test: refactor coverage logic
bcoe Oct 23, 2020
c0a4fac
doc: fix a typo in CHANGELOG_V12
iShibi Oct 24, 2020
afbe23d
doc: use kbd element in readline doc prose
Trott Oct 21, 2020
34281cd
build: turn off Codecov comments
bcoe Oct 25, 2020
7b3743d
doc: modified memory set statement set size
PoojaDurgad Oct 6, 2020
6211ffd
doc: add require statement in the example
PoojaDurgad Oct 8, 2020
01d7c46
Revert "src: ignore GCC -Wcast-function-type for v8.h"
danbev Oct 22, 2020
4b8b5fe
src: use MaybeLocal.ToLocal instead of IsEmpty
danbev Oct 20, 2020
4128eef
src: remove ignore GCC -Wcast-function-type for v8
danbev Oct 23, 2020
c365867
doc: fix typo in BUILDING.md
RaisinTen Oct 26, 2020
52a77db
deps: update acorn to v8.0.4
targos Oct 24, 2020
6513a58
doc: add a subsystems header in pull-requests.md
PoojaDurgad Oct 20, 2020
c2e6a4b
doc: fix _construct example params order
a0viedo Oct 24, 2020
b6b7a3b
http: lazy create IncomingMessage.headers
ronag Sep 21, 2020
221e283
worker: add eventLoopUtilization()
trevnorris Oct 14, 2020
0c17dbd
n-api: revert change to finalization
mhdawson Oct 23, 2020
b07f4a3
doc: consolidate and clarify breakOnSigInt text
Trott Oct 24, 2020
092c6c4
doc,test: update v8 method doc and comment
Trott Oct 25, 2020
76991c0
test: add upstream test cases to urlsearchparam
watilde Oct 25, 2020
3db4354
doc: use case-sensitive in the example
PoojaDurgad Oct 13, 2020
c922578
src: remove ERR prefix in WebCryptoKeyExportStatus
danbev Oct 14, 2020
8169902
child_process: add ChildProcess 'spawn' event
zenflow Sep 27, 2020
4e76a3c
doc: update MessagePort documentation for EventTarget inheritance
addaleax Oct 27, 2020
ee15142
tls: allow reading data into a static buffer
puzpuzpuz Oct 22, 2020
8074f69
doc: make small improvements to REPL doc
Trott Oct 26, 2020
438d9de
events: make eventTarget.removeAllListeners() return this
lpinca Oct 26, 2020
f08e2c0
events: make abort_controller event trusted
benjamingr Oct 26, 2020
dd3cbb4
test: add upstream test cases to encoding
watilde Oct 25, 2020
5e8d821
doc: add conditional example for setBreakpoint()
copperwall Oct 26, 2020
afb3e24
tools: add update-npm script
MylesBorins Oct 26, 2020
d291e3a
doc: stabilize packages features
MylesBorins Oct 21, 2020
8958af4
test: add onerror test cases to policy
watilde Oct 25, 2020
20accb0
deps: upgrade to cjs-module-lexer@0.5.0
guybedford Oct 29, 2020
31753ec
tools: add msvc /P output to .gitignore
gengjiawen Oct 21, 2020
0580258
doc: fix reference to googletest test fixture
tniessen Oct 26, 2020
abd7c94
crypto: fix webcrypto ECDH JWK import
panva Oct 28, 2020
273e147
build,tools: add lint-js-doc target
aduh95 Oct 19, 2020
a5fa849
build: add vcbuilt test-doc target
aduh95 Oct 19, 2020
8c2b179
doc: recommend test-doc instead of lint-md
aduh95 Oct 19, 2020
79a8fb6
crypto: fixup scrypt regressions
jasnell Oct 26, 2020
b1e531a
lib: use primordials when calling methods of Error
aduh95 Oct 27, 2020
4447ff1
build,tools: gitHub Actions: use Node.js Fermium
aduh95 Oct 27, 2020
c14889b
doc: move ronkorving to emeritus
Trott Oct 27, 2020
9703219
doc: fix a typo in CHANGELOG_V15
tnir Oct 26, 2020
de3dcd7
test: fix reference to WPT testharness.js
tniessen Oct 26, 2020
d95013f
assert,repl: enable ecmaVersion 2021 in acorn parser
targos Oct 27, 2020
0f5a8c5
module: runtime deprecate subpath folder mappings
guybedford Oct 22, 2020
7691b67
test: mark test-http2-respond-file-error-pipe-offset flaky
MylesBorins Oct 30, 2020
d16e2fa
n-api: napi_make_callback emit async init with resource of async_context
legendecas Oct 6, 2020
102d7df
zlib: test BrotliCompress throws invalid arg value
RaisinTen Oct 27, 2020
830b789
test: mark test-worker-eventlooputil flaky
MylesBorins Oct 30, 2020
337bfcf
doc: add on statement in the APIs docs
PoojaDurgad Oct 12, 2020
644c416
crypto: rename check to createJob
danbev Oct 29, 2020
66ad4be
test: add test to fs/promises setImmediate
tyankatsu0105 Oct 28, 2020
b38a43d
lib: create diagnostics_channel module
Qard Aug 21, 2020
f861733
http: report request start and end with diagnostics_channel
Qard Sep 8, 2020
d20b318
tools: update ESLint to 7.12.0
cjihrig Oct 25, 2020
a07d1af
tools: update ESLint to 7.12.1
cjihrig Oct 27, 2020
1303a1f
deps: update to cjs-module-lexer@0.5.2
guybedford Oct 31, 2020
d2f574b
lib: let abort_controller target be EventTarget
watilde Oct 30, 2020
da612df
test: integrate abort_controller tests from wpt
watilde Oct 30, 2020
4899998
doc: move bnoordhuis to emeritus
bnoordhuis Oct 3, 2020
0ac4a6a
doc: update crypto.createSecretKey history
ben-turner Oct 29, 2020
3955ccd
tools: bump cpplint to 1.5.1
Trott Oct 29, 2020
c09fdba
tools: refloat 7 Node.js patches to cpplint.py
Trott Oct 9, 2020
5cb77f2
deps: upgrade to cjs-module-lexer@1.0.0
guybedford Nov 2, 2020
55adee0
deps: upgrade npm to 7.0.7
lpinca Nov 1, 2020
b11c737
build: fix lint-js-fix target
aduh95 Nov 2, 2020
7c8b5e5
errors: do not call resolve on URLs with schemes
bcoe Oct 31, 2020
eb55462
doc: adjust table alignment for remark v13
nschonni Oct 14, 2020
59b36af
doc: disable no-undefined-references workarounds
nschonni Oct 14, 2020
c5b9422
doc: temporarily disable list-item-bullet-indent
nschonni Oct 14, 2020
7937fbe
doc: update tables in README files for linting changes
Trott Nov 3, 2020
fd027cd
tools: bump remark-lint-preset-node to 2.0.0
Trott Nov 1, 2020
d3f1cde
deps: upgrade npm to 7.0.8
MylesBorins Nov 4, 2020
1cdfaa8
events: add a few tests
benjamingr Oct 26, 2020
fb71964
src: remove redundant OpenSSLBuffer
jasnell Oct 15, 2020
9b549c1
benchmark: add startup benchmark for loading public modules
joyeecheung Oct 26, 2020
76ebae4
benchmark: make the benchmark tool work with Node 10
joyeecheung Oct 26, 2020
231af88
test: correct test-worker-eventlooputil
Flarna Oct 31, 2020
5d61e3d
test: add missing ref comments to parallel.status
Trott Oct 31, 2020
2868f52
stream: fix regression on duplex end
mmomtchev Nov 3, 2020
0ebf44b
crypto: pass empty passphrases to OpenSSL properly
tniessen Nov 1, 2020
2291e07
2020-11-04, Version 15.1.0 (Current)
targos Nov 3, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 4 additions & 1 deletion .github/workflows/auto-start-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ on:
# ./doc/guides/commit-queue.md
- cron: "*/5 * * * *"

env:
NODE_VERSION: 14.x

jobs:
startCI:
if: github.repository == 'nodejs/node'
Expand All @@ -20,7 +23,7 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v2-beta
with:
node-version: '12'
node-version: ${{ env.NODE_VERSION }}
- name: Install node-core-utils
run: npm install -g node-core-utils

Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/commit-queue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ on:
schedule:
- cron: "*/5 * * * *"

env:
NODE_VERSION: 14.x

jobs:
commitQueue:
if: github.repository == 'nodejs/node'
Expand All @@ -34,7 +37,7 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v2-beta
with:
node-version: '12'
node-version: ${{ env.NODE_VERSION }}
- name: Install node-core-utils
run: npm install -g node-core-utils@latest

Expand Down
27 changes: 19 additions & 8 deletions .github/workflows/coverage-linux.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,26 @@
# TODO(bcoe): add similar job for Windows coverage.
name: coverage-linux

on:
pull_request:
paths-ignore:
- 'doc/**'
- 'deps/**'
- 'benchmark/**'
- 'tools/**'
push:
branches:
- master
paths-ignore:
- 'doc/**'
- 'deps/**'
- 'benchmark/**'
- 'tools/**'

env:
PYTHON_VERSION: 3.9
FLAKY_TESTS: dontcare

jobs:
# TODO(bcoe): add support for C++ coverage.
coverage-linux:
runs-on: ubuntu-latest
steps:
Expand All @@ -23,18 +31,21 @@ jobs:
python-version: ${{ env.PYTHON_VERSION }}
- name: Environment Information
run: npx envinfo
- name: Install gcovr
run: pip install gcovr==4.2
- name: Build
run: make build-ci -j2 V=1 CONFIG_FLAGS="--error-on-warn"
run: make build-ci -j2 V=1 CONFIG_FLAGS="--error-on-warn --coverage"
# TODO(bcoe): fix the couple tests that fail with the inspector enabled.
# The cause is most likely coverage's use of the inspector.
- name: Test
run: NODE_V8_COVERAGE=coverage/tmp make run-ci -j2 V=1 TEST_CI_ARGS="-p dots" || exit 0
- name: Report
run: NODE_V8_COVERAGE=coverage/tmp make test-cov -j2 V=1 TEST_CI_ARGS="-p dots" || exit 0
- name: Report JS
run: npx c8 report --check-coverage
- name: Output file count
run: ls -l coverage/tmp/ | wc -l
- name: Report C++
run: cd out && gcovr --gcov-exclude='.*\b(deps|usr|out|obj|cctest|embedding)\b' -v -r Release/obj.target --xml -o ../coverage/coverage-cxx.xml --root=$(cd ../ && pwd)
# Clean temporary output from gcov and c8, so that it's not uploaded:
- name: Clean tmp
run: rm -rf coverage/tmp
run: rm -rf coverage/tmp && rm -rf out
- name: Upload
uses: codecov/codecov-action@v1
with:
Expand Down
51 changes: 51 additions & 0 deletions .github/workflows/coverage-windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: coverage-windows

on:
pull_request:
paths-ignore:
- 'doc/**'
- 'deps/**'
- 'benchmark/**'
- 'tools/**'
push:
branches:
- master
paths-ignore:
- 'doc/**'
- 'deps/**'
- 'benchmark/**'
- 'tools/**'

env:
PYTHON_VERSION: 3.9
FLAKY_TESTS: dontcare

jobs:
coverage-windows:
runs-on: windows-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: Install deps
run: choco install nasm
- name: Environment Information
run: npx envinfo
- name: Build
run: ./vcbuild.bat
# TODO(bcoe): investigate tests that fail with coverage enabled
# on Windows.
- name: Test
run: ./vcbuild.bat test-ci-js; node -e 'process.exit(0)'
env:
NODE_V8_COVERAGE: ./coverage/tmp
- name: Report
run: npx c8 report
- name: Clean tmp
run: npx rimraf ./coverage/tmp
- name: Upload
uses: codecov/codecov-action@v1
with:
directory: ./coverage
22 changes: 22 additions & 0 deletions .github/workflows/license-builder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: license update
on:
schedule:
# 00:00:00 every Monday
# https://crontab.guru/#0_0_*_*_1
- cron: "0 0 * * 1"
workflow_dispatch:

jobs:
update_routes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: "./tools/license-builder.sh" # run the license builder tool
- uses: gr2m/create-or-update-pull-request-action@v1.x # create a PR or update the Action's existing PR
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
title: "doc: run license-builder"
body: "License is likely out of date. This is an automatically generated PR by the `license-builder.yml` GitHub Action, which runs `license-builder.sh` and submits a new PR or updates an existing PR."
commit-message: 'doc: run license-builder'
labels: meta
2 changes: 1 addition & 1 deletion .github/workflows/linters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:

env:
PYTHON_VERSION: 3.9
NODE_VERSION: 10.x
NODE_VERSION: 14.x

jobs:
lint-addon-docs:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/misc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
- v[0-9]+.x

env:
NODE_VERSION: 12.x
NODE_VERSION: 14.x

jobs:
build-docs:
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,9 @@ _UpgradeReport_Files/
/*.host.mk
/deps/openssl/openssl.target.mk
/deps/zlib/zlib.target.mk
# generated by MSVC with /P enabled
tools/*/*.i
tools/*/*.i.tmp

# === Rules for release artifacts ===
/*.tar.*
Expand Down
2 changes: 1 addition & 1 deletion .nycrc
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"reporter": [
"html",
"text",
"lcov"
"cobertura"
],
"lines": 95,
"branches": "93",
Expand Down
67 changes: 37 additions & 30 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ file a new issue.
* [Unix prerequisites](#unix-prerequisites)
* [macOS prerequisites](#macos-prerequisites)
* [Building Node.js](#building-nodejs-1)
* [Installing Node.js](#installing-nodejs)
* [Running Tests](#running-tests)
* [Running Coverage](#running-coverage)
* [Building the documentation](#building-the-documentation)
Expand Down Expand Up @@ -166,16 +167,16 @@ Depending on the host platform, the selection of toolchains may vary.

Binaries at <https://nodejs.org/download/release/> are produced on:

| Binary package | Platform and Toolchain |
| --------------------- | ------------------------------------------------------------------------ |
| aix-ppc64 | AIX 7.1 TL05 on PPC64BE with GCC 6 |
| darwin-x64 (and .pkg) | macOS 10.15, Xcode Command Line Tools 11 with -mmacosx-version-min=10.13 |
| linux-arm64 | CentOS 7 with devtoolset-8 / GCC 8 <sup>[8](#fn8)</sup> |
| linux-armv7l | Cross-compiled on Ubuntu 18.04 x64 with [custom GCC toolchain](https://github.com/rvagg/rpi-newer-crosstools) |
| linux-ppc64le | CentOS 7 with devtoolset-8 / GCC 8 <sup>[8](#fn8)</sup> |
| linux-s390x | RHEL 7 with devtoolset-8 / GCC 8 <sup>[8](#fn8)</sup> |
| linux-x64 | CentOS 7 with devtoolset-8 / GCC 8 <sup>[8](#fn8)</sup> |
| win-x64 and win-x86 | Windows 2012 R2 (x64) with Visual Studio 2019 |
| Binary package | Platform and Toolchain |
| --------------------- | ------------------------------------------------------------------------------------------------------------- |
| aix-ppc64 | AIX 7.1 TL05 on PPC64BE with GCC 6 |
| darwin-x64 (and .pkg) | macOS 10.15, Xcode Command Line Tools 11 with -mmacosx-version-min=10.13 |
| linux-arm64 | CentOS 7 with devtoolset-8 / GCC 8 <sup>[8](#fn8)</sup> |
| linux-armv7l | Cross-compiled on Ubuntu 18.04 x64 with [custom GCC toolchain](https://github.com/rvagg/rpi-newer-crosstools) |
| linux-ppc64le | CentOS 7 with devtoolset-8 / GCC 8 <sup>[8](#fn8)</sup> |
| linux-s390x | RHEL 7 with devtoolset-8 / GCC 8 <sup>[8](#fn8)</sup> |
| linux-x64 | CentOS 7 with devtoolset-8 / GCC 8 <sup>[8](#fn8)</sup> |
| win-x64 and win-x86 | Windows 2012 R2 (x64) with Visual Studio 2019 |

<em id="fn8">8</em>: The Enterprise Linux devtoolset-8 allows us to compile
binaries with GCC 8 but linked to the glibc and libstdc++ versions of the host
Expand Down Expand Up @@ -299,6 +300,14 @@ project's root directory.
$ sudo ./tools/macos-firewall.sh
```

#### Installing Node.js

To install this version of Node.js into a system directory:

```bash
[sudo] make install
```

#### Running Tests

To verify the build:
Expand Down Expand Up @@ -380,28 +389,32 @@ $ make coverage
```

A detailed coverage report will be written to `coverage/index.html` for
JavaScript coverage and to `coverage/cxxcoverage.html` for C++ coverage
(if you only want to run the JavaScript tests then you do not need to run
the first command `./configure --coverage`).

_Generating a test coverage report can take several minutes._
JavaScript coverage and to `coverage/cxxcoverage.html` for C++ coverage.

To collect coverage for a subset of tests you can set the `CI_JS_SUITES` and
`CI_NATIVE_SUITES` variables (to run specific suites, e.g., `child-process`, in
isolation, unset the opposing `_SUITES` variable):
If you only want to run the JavaScript tests then you do not need to run
the first command (`./configure --coverage`). Run `make coverage-run-js`,
to execute JavaScript tests independently of the C++ test suite:

```text
$ CI_JS_SUITES=child-process CI_NATIVE_SUITES= make coverage
$ make coverage-run-js
```

The above command executes tests for the `child-process` subsystem and
outputs the resulting coverage report.
If you are updating tests and want to collect coverage for a single test file
(e.g. `test/parallel/test-stream2-transform.js`):

Alternatively, you can run `make coverage-run-js`, to execute JavaScript tests
independently of the C++ test suite:
```text
$ make coverage-clean
$ NODE_V8_COVERAGE=coverage/tmp python tools/test.py test/parallel/test-stream2-transform.js
$ make coverage-report-js
```

You can collect coverage for the entire suite of tests for a given subsystem
by providing the name of a subsystem:

```text
$ CI_JS_SUITES=fs CI_NATIVE_SUITES= make coverage-run-js
$ make coverage-clean
$ NODE_V8_COVERAGE=coverage/tmp python tools/test.py -J --mode=release child-process
$ make coverage-report-js
```

The `make coverage` command downloads some tools to the project root directory.
Expand Down Expand Up @@ -458,12 +471,6 @@ To test if Node.js was built correctly:
./node -e "console.log('Hello from Node.js ' + process.version)"
```

To install this version of Node.js into a system directory:

```bash
[sudo] make install
```

#### Building a debug build

If you run into an issue where the information provided by the JS stack trace
Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V15.md#15.0.1">15.0.1</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V15.md#15.1.0">15.1.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V15.md#15.0.1">15.0.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V15.md#15.0.0">15.0.0</a><br/>
</td>
<td valign="top">
Expand Down
2 changes: 2 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ The externally maintained libraries used by Node.js are:

- Acorn, located at deps/acorn, is licensed as follows:
"""
MIT License

Copyright (C) 2012-2018 by various contributors (see AUTHORS)

Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down
Loading