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

v14.10.0 proposal #35023

Merged
merged 97 commits into from
Sep 8, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
a43b7ff
meta: remove non-existent quic from CODEOWNERS
richardlau Aug 27, 2020
29b048b
doc: use links to MS guide in style guide
Trott Aug 21, 2020
971b7ac
test: simplify test-vm-memleak
Trott Aug 22, 2020
4cf93bb
doc: use "previous"/"preceding" instead of "above" as modifier
Trott Aug 22, 2020
755f9e4
build,deps: add gen-openssl target
evanlucas Aug 6, 2020
f1fcd66
deps: add openssl support for arm64
evanlucas Jul 7, 2020
d06e158
build: add support for build on arm64
evanlucas Jul 7, 2020
be71e71
meta: enable wasi for CODEOWNERS
gengjiawen Aug 23, 2020
fffba3a
errors: use `ErrorPrototypeToString` from `primordials` object
ExE-Boss Aug 23, 2020
657292e
doc: fix broken markdown/display in cli.html
Trott Aug 23, 2020
2fe9509
doc: improve link-local text in dgram.md
Trott Aug 21, 2020
7ad629e
tools,doc: remove "toc" anchor name
Trott Aug 23, 2020
044297f
src,doc: rephrase for clarity
wjabbour Aug 22, 2020
bcc1d43
src,doc: fix grammar due to missing 'is'
wjabbour Aug 24, 2020
f6a5999
src,doc: fix wording to refer to context, not environment
wjabbour Aug 22, 2020
18b04ab
policy: implement scopes field
bmeck Jul 17, 2020
4782ec7
doc: use consistent typography for node-addon-api
Trott Aug 24, 2020
fbd18be
doc: provide more guidance about process.version
Trott Aug 24, 2020
b091681
doc: fix CHANGELOG.md parsing issue
juanarbol Aug 25, 2020
3c32fe0
n-api: re-implement async env cleanup hooks
Aug 17, 2020
0e09ff8
doc: make minor fixes to maintaining-openssl.md
Trott Aug 25, 2020
aee3b85
doc: simplify "make use of" to "use"
Trott Aug 21, 2020
90f9348
deps: update brotli to v1.0.9
addaleax Aug 26, 2020
94528f5
zlib: replace usage of internal stream state with public api
lundibundi Aug 23, 2020
fcb211f
net: replace usage of internal stream state with public api
lundibundi Aug 23, 2020
1589f0e
doc: make general copy-edit changes to policy.md
Trott Aug 26, 2020
8aac42c
perf_hooks: add idleTime and event loop util
trevnorris Aug 25, 2020
31098a4
doc: make minor improvements to query string sentence in http2.md
Trott Aug 26, 2020
2407a7a
doc: add a note about possible missing lines to readline.asyncIterator
mikhalev-im Aug 8, 2020
75d1612
test: make test-tls-reuse-host-from-socket pass without internet
Trott Aug 28, 2020
9057a16
test: add readline test for escape sequence
Trott Aug 28, 2020
ee6a583
test: fix typo in test/parallel/test-icu-punycode.js
watilde Aug 26, 2020
94c6e09
doc: replace require() with reference links in http2.md
Trott Aug 28, 2020
f537c86
stream: allow using `.push()`/`.unshift()` during `once('data')`
addaleax Aug 28, 2020
db8c66b
esm: shorten ERR_UNSUPPORTED_ESM_URL_SCHEME message
Trott Aug 19, 2020
7afb67f
build: use latest node-core-utils from npm
lundibundi Aug 29, 2020
46766a1
build: use autorebase option for git node land
lundibundi Aug 29, 2020
ca0302e
doc: arrange perf_hooks entries alphabetically
Trott Aug 29, 2020
df76c89
doc: recommend URL() over url.parse() in http2 doc
Trott Aug 29, 2020
514a538
doc: fix typos in buffer doc
robhybrid Aug 30, 2020
f4524b8
doc: fix broken link to writableEnded in deprecations doc
Trott Aug 30, 2020
a0656ff
doc: fix broken link to response.finished in deprecations doc
Trott Aug 30, 2020
287ce7b
doc: fix broken link to response.writableFinished in deprecations doc
Trott Aug 30, 2020
2598527
doc: drop the --production flag for installing windows-build-tools
DeeDeeG Aug 29, 2020
5f24cea
stream: fix Readable stream state properties
lundibundi Aug 23, 2020
b698d2e
test: remove incorrect debug() in test-policy-integrity
Trott Aug 28, 2020
9aba579
doc: change effected to affected
wjabbour Aug 30, 2020
2ab33c5
buffer: also alias BigUInt methods
addaleax Aug 28, 2020
52be37c
doc,tools: remove malfunctioning Linux manpage linker
Trott Aug 30, 2020
d6c796b
build: close stalled issues and PRs with github action
phillipj Jul 29, 2020
7b72990
build: comment about auto close when stalled via with github action
phillipj Aug 10, 2020
fb2111e
tools,doc: fix global table of content active element
aduh95 Aug 29, 2020
f1217d6
doc: revise commit-queue.md
Trott Sep 1, 2020
a420184
doc: use period consistently in man page
Trott Aug 26, 2020
b6f3ae8
tools,doc: allow page titles to contain inline code
aduh95 Aug 31, 2020
c47d319
tools: update ESLint to 7.8.0
cjihrig Sep 1, 2020
62cc3b8
tools: update ESLint to 7.8.1
cjihrig Sep 1, 2020
cc0aaf2
doc: error code fix in resolver spec
guybedford Aug 31, 2020
1be6956
build: require "allow edits" to be checked
ljharb Aug 31, 2020
1bf5d1a
querystring: manage percent character at unescape
watilde Sep 1, 2020
44d89a9
crypto: add randomInt function
olalonde Aug 2, 2020
8c207c6
doc: refactor deprecation anchors
aduh95 Aug 31, 2020
3d41ff2
tools: add banner to lint-md.js by rollup.config.js
KuthorX Jul 7, 2020
73ef3f2
src: disallow JS execution during exit()
addaleax Sep 2, 2020
789798b
src: add get/set pair for env context awareness
codebytere Sep 1, 2020
593236a
doc: change color contrast for accessibility
Trott Sep 4, 2020
9011c87
test: change var to let
PoojaDurgad Aug 24, 2020
a756b92
test: use mustCall() in test-http-timeout
PoojaDurgad Aug 25, 2020
a846a9f
doc: change 'be will' to 'will be'
zombieleet Aug 31, 2020
c3a3cb6
doc: fix a typo of microtaskMode
shigma Aug 30, 2020
1ae674c
doc: fix malformed hashes in assert.md
Trott Sep 3, 2020
680782e
doc: use consistent header typography
Trott Sep 3, 2020
72d03cd
doc: remove duplicate error code entry
Trott Sep 3, 2020
cdc1198
doc: fix certificate display in tls doc
Trott Sep 3, 2020
4d53385
test: make .out checks embedder-friendly
codebytere Sep 3, 2020
96ae05a
deps: V8: backport 3f071e3e7e15
Sep 3, 2020
28e89f6
doc: remove style for empty links
aduh95 Sep 3, 2020
f21d78d
src: shutdown libuv before exit()
addaleax Sep 2, 2020
5bd0e08
doc: fix incorrect URL in cli.md
Trott Sep 4, 2020
6d0d5b2
crypto: align parameter names with documentation
Trott Sep 4, 2020
83a3e3b
doc: update syntax highlighting color for accessibility
Trott Sep 5, 2020
2b445bb
tools: fix doc build targets
aduh95 Sep 4, 2020
a08e853
doc: spruce up user journey to local docs browsing
DerekNonGeneric Aug 30, 2020
577978a
tools: fix docopen target
aduh95 Sep 4, 2020
0ac7d54
doc: add deprecated badge to legacy URL methods
aduh95 Aug 26, 2020
1a9ca52
doc: add ESM examples in `module` API doc page
aduh95 Aug 22, 2020
791a85b
deps: V8: cherry-pick 6be2f6e26e8d
bcoe Sep 4, 2020
f03a4d7
doc: format exponents better
tniessen Sep 4, 2020
8044533
doc: add link to safe integer definition
tniessen Sep 4, 2020
1fdfaa5
bootstrap: correct --frozen-intrinsics override fix
guybedford Sep 3, 2020
f6b2286
doc: change stablility-2 color for accessibility
Trott Sep 4, 2020
a12d92c
crypto: fix randomInt range check
tniessen Sep 4, 2020
178a740
crypto: simplify KeyObject constructor
Trott Sep 5, 2020
bbf7b92
doc: use present tense in events.md
Trott Sep 5, 2020
ffae5f3
stream: save error in state
ronag Jun 28, 2020
4bb4007
stream: simpler and faster Readable async iterator
ronag Jun 23, 2020
ce5f587
2020-09-08, Version 14.10.0 (Current)
richardlau Sep 2, 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
  •  
  •  
  •  
17 changes: 8 additions & 9 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -73,15 +73,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 All @@ -97,3 +88,11 @@
/src/js_native_api* @nodejs/n-api
/doc/guides/adding-new-napi-api.md @nodejs/n-api
/doc/api/n-api.md @nodejs/n-api

# WASI
/deps/uvwasi/ @nodejs/wasi
/doc/api/wasi.md @nodejs/wasi
/lib/wasi.js @nodejs/wasi
/src/node_wasi* @nodejs/wasi
/test/wasi/ @nodejs/wasi
/test/fixtures/wasi/ @nodejs/wasi
21 changes: 21 additions & 0 deletions .github/workflows/close-stalled.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Close stalled issues and PRs
on:
schedule:
- cron: "0 0 * * *"

jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-close: 30
stale-pr-label: stalled
stale-issue-label: stalled
close-issue-message: Closing this because it has stalled. Feel free to reopen if this issue is still relevant, or to ping the collaborator who labelled it stalled if you have any questions.
close-pr-message: Closing this because it has stalled. Feel free to reopen if this PR is still relevant, or to ping the collaborator who labelled it stalled if you have any questions.
# deactivates automatic removal of stalled label if issue gets any activity
remove-stale-when-updated: false
# deactivates automatic stale labelling as we prefer to do that manually
days-before-stale: -1
20 changes: 20 additions & 0 deletions .github/workflows/comment-stalled.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Comment on issues and PRs when labelled stalled
on:
issues:
types: [labeled]
pull_request_target:
types: [labeled]

jobs:
staleComment:
runs-on: ubuntu-latest
steps:
- name: Post comment
if: github.event.label.name == 'stalled'
env:
COMMENTS_URL: ${{ github.event.issue.comments_url || github.event.pull_request.comments_url }}
run: |
curl -X POST $COMMENTS_URL \
-H "Content-Type: application/json" \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
--data '{ "body": "This issue/PR was marked as stalled, it will be automatically closed in 30 days. If it should remain open, please leave a comment explaining why it should remain open." }'
4 changes: 1 addition & 3 deletions .github/workflows/commit-queue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,7 @@ jobs:
- name: Install dependencies
run: |
sudo apt-get install jq -y
# TODO(mmarchini): install from npm after next ncu release is out
npm install -g 'https://github.com/mmarchini/node-core-utils#commit-queue-branch'
# npm install -g node-core-utils
npm install -g node-core-utils@latest
- name: Set variables
run: |
Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/require-allow-edits.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Require “Allow Edits”

on: [pull_request]

jobs:
_:
name: "Require “Allow Edits”"

runs-on: ubuntu-latest

steps:
- uses: ljharb/require-allow-edits@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
42 changes: 26 additions & 16 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -417,41 +417,51 @@ To build the documentation:

This will build Node.js first (if necessary) and then use it to build the docs:

```console
$ make doc
```bash
make doc
```

If you have an existing Node.js build, you can build just the docs with:

```console
$ NODE=/path/to/node make doc-only
```bash
NODE=/path/to/node make doc-only
```

To read the documentation:
To read the man page:

```console
$ man doc/node.1
```bash
man doc/node.1
```

If you prefer to read the documentation in a browser,
run the following after `make doc` is finished:
If you prefer to read the full documentation in a browser, run the following.

```console
$ make docopen
```bash
make docserve
```

This will open a browser with the documentation.
This will spin up a static file server and provide a URL to where you may browse
the documentation locally.

If you're comfortable viewing the documentation using the program your operating
system has associated with the default web browser, run the following.

```bash
make docopen
```

This will open a file URL to a one-page version of all the browsable HTML
documents using the default browser.

To test if Node.js was built correctly:

```console
$ ./node -e "console.log('Hello from Node.js ' + process.version)"
```bash
./node -e "console.log('Hello from Node.js ' + process.version)"
```

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

```console
$ [sudo] make install
```bash
[sudo] make install
```

#### Building a debug build
Expand Down
5 changes: 3 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V14.md#14.9.0">14.9.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V14.md#14.10.0">14.10.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V14.md#14.9.0">14.9.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V14.md#14.8.0">14.8.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V14.md#14.7.0">14.7.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V14.md#14.6.0">14.6.0</a><br/>
Expand Down Expand Up @@ -314,7 +315,7 @@ release.

## 2015-09-08, Version 4.0.0 (Stable), @rvagg

<a href="doc/changelogs/CHANGELOG_V4.md#4.0.0>Moved to doc/changelogs/CHANGELOG_V6.md#6.0.0</a>.
<a href="doc/changelogs/CHANGELOG_V4.md#4.0.0">Moved to doc/changelogs/CHANGELOG_V6.md#6.0.0</a>.

## 2015-09-02, Version 3.3.0, @rvagg

Expand Down
35 changes: 25 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -738,7 +738,7 @@ out/doc/api/assets:
if [ -d doc/api/assets ]; then cp -r doc/api/assets out/doc/api; fi;

# If it's not a source tarball, we need to copy assets from doc/api_assets
out/doc/api/assets/%: doc/api_assets/% out/doc/api/assets
out/doc/api/assets/%: doc/api_assets/% | out/doc/api/assets
@cp $< $@ ; $(RM) out/doc/api/assets/README.md


Expand All @@ -751,7 +751,7 @@ gen-api = tools/doc/generate.js --node-version=$(FULLVERSION) \
--versions-file=$(VERSIONS_DATA)
gen-apilink = tools/doc/apilinks.js $(LINK_DATA) $(wildcard lib/*.js)

$(LINK_DATA): $(wildcard lib/*.js) tools/doc/apilinks.js
$(LINK_DATA): $(wildcard lib/*.js) tools/doc/apilinks.js | out/doc
$(call available-node, $(gen-apilink))

# Regenerate previous versions data if the current version changes
Expand All @@ -760,24 +760,23 @@ $(VERSIONS_DATA): CHANGELOG.md src/node_version.h tools/doc/versions.js

out/doc/api/%.json out/doc/api/%.html: doc/api/%.md tools/doc/generate.js \
tools/doc/markdown.js tools/doc/html.js tools/doc/json.js \
tools/doc/apilinks.js $(VERSIONS_DATA) | $(LINK_DATA)
tools/doc/apilinks.js $(VERSIONS_DATA) | $(LINK_DATA) out/doc/api
$(call available-node, $(gen-api))

out/doc/api/all.html: $(apidocs_html) tools/doc/allhtml.js \
tools/doc/apilinks.js
tools/doc/apilinks.js | out/doc/api
$(call available-node, tools/doc/allhtml.js)

out/doc/api/all.json: $(apidocs_json) tools/doc/alljson.js
out/doc/api/all.json: $(apidocs_json) tools/doc/alljson.js | out/doc/api
$(call available-node, tools/doc/alljson.js)

.PHONY: docopen
docopen: $(apidocs_html)
@$(PYTHON) -mwebbrowser file://$(PWD)/out/doc/api/all.html
docopen: out/doc/api/all.html
@$(PYTHON) -mwebbrowser file://$(abspath $<)

.PHONY: docserve
docserve: $(apidocs_html)
@$(PYTHON) -mwebbrowser http://localhost:8000/all.html
@$(PYTHON) -m http.server -d $(PWD)/out/doc/api
docserve: $(apidocs_html) $(apiassets)
@$(PYTHON) -m http.server 8000 --bind 127.0.0.1 --directory out/doc/api

.PHONY: docclean
docclean:
Expand Down Expand Up @@ -1406,3 +1405,19 @@ endif
lint-clean:
$(RM) tools/.*lintstamp
$(RM) .eslintcache

HAS_DOCKER ?= $(shell which docker > /dev/null 2>&1; [ $$? -eq 0 ] && echo 1 || echo 0)

ifeq ($(HAS_DOCKER), 1)
DOCKER_COMMAND ?= docker run -it -v $(PWD):/node
IS_IN_WORKTREE = $(shell grep '^gitdir: ' $(PWD)/.git 2>/dev/null)
GIT_WORKTREE_COMMON = $(shell git rev-parse --git-common-dir)
DOCKER_COMMAND += $(if $(IS_IN_WORKTREE), -v $(GIT_WORKTREE_COMMON):$(GIT_WORKTREE_COMMON))
gen-openssl: ## Generate platform dependent openssl files (requires docker)
docker build -t node-openssl-builder deps/openssl/config/
$(DOCKER_COMMAND) node-openssl-builder make -C deps/openssl/config
else
gen-openssl:
@echo "No docker command, cannot continue"
@exit 1
endif
1 change: 1 addition & 0 deletions benchmark/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ directory, see [the guide on benchmarks](../doc/guides/writing-and-running-bench
| module | Benchmarks for the `module` subsystem. |
| net | Benchmarks for the `net` subsystem. |
| path | Benchmarks for the `path` subsystem. |
| perf_hooks | Benchmarks for the `perf_hooks` subsystem. |
| process | Benchmarks for the `process` subsystem. |
| querystring | Benchmarks for the `querystring` subsystem. |
| streams | Benchmarks for the `streams` subsystem. |
Expand Down
64 changes: 64 additions & 0 deletions benchmark/perf_hooks/bench-eventlooputil.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
'use strict';

const common = require('../common.js');
const assert = require('assert').ok;
const { performance } = require('perf_hooks');
const { nodeTiming, eventLoopUtilization } = performance;

const bench = common.createBenchmark(main, {
n: [1e6],
method: [
'idleTime',
'ELU_simple',
'ELU_passed',
],
});

function main({ method, n }) {
switch (method) {
case 'idleTime':
benchIdleTime(n);
break;
case 'ELU_simple':
benchELUSimple(n);
break;
case 'ELU_passed':
benchELUPassed(n);
break;
default:
throw new Error(`Unsupported method ${method}`);
}
}

function benchIdleTime(n) {
bench.start();
for (let i = 0; i < n; i++)
nodeTiming.idleTime;
bench.end(n);
}

function benchELUSimple(n) {
// Need to put this in setImmediate or will always return 0.
setImmediate(() => {
const elu = eventLoopUtilization();
assert(elu.active + elu.idle > 0);

bench.start();
for (let i = 0; i < n; i++)
eventLoopUtilization();
bench.end(n);
});
}

function benchELUPassed(n) {
// Need to put this in setImmediate or will always return 0.
setImmediate(() => {
let elu = eventLoopUtilization();
assert(elu.active + elu.idle > 0);

bench.start();
for (let i = 0; i < n; i++)
elu = eventLoopUtilization(elu);
bench.end(n);
});
}
38 changes: 38 additions & 0 deletions benchmark/streams/readable-async-iterator.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
'use strict';

const common = require('../common');
const Readable = require('stream').Readable;

const bench = common.createBenchmark(main, {
n: [1e5],
sync: ['yes', 'no'],
});

async function main({ n, sync }) {
sync = sync === 'yes';

const s = new Readable({
objectMode: true,
read() {
if (sync) {
this.push(1);
} else {
process.nextTick(() => {
this.push(1);
});
}
}
});

bench.start();

let x = 0;
for await (const chunk of s) {
x += chunk;
if (x > n) {
break;
}
}

bench.end(n);
}
10 changes: 9 additions & 1 deletion common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@

# Reset this number to 0 on major V8 upgrades.
# Increment by one for each non-official patch applied to deps/v8.
'v8_embedder_string': '-node.13',
'v8_embedder_string': '-node.16',

##### V8 defaults for Node.js #####

Expand Down Expand Up @@ -491,6 +491,14 @@
['target_arch=="x64"', {
'xcode_settings': {'ARCHS': ['x86_64']},
}],
['target_arch=="arm64"', {
'xcode_settings': {
'ARCHS': ['arm64'],
'OTHER_LDFLAGS!': [
'-Wl,-no_pie',
],
},
}],
['clang==1', {
'xcode_settings': {
'GCC_VERSION': 'com.apple.compilers.llvm.clang.1_0',
Expand Down
Loading