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.13.1 release proposal #30352

Merged
merged 102 commits into from Nov 19, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
da58301
net: treat ENOTCONN at shutdown as success
addaleax Oct 10, 2019
ddbf150
src: remove unused using declarations in worker.cc
danbev Oct 8, 2019
dcdb96c
benchmark: add benchmark for vm.createContext
joyeecheung Oct 4, 2019
5959023
http2: fix file close error condition at respondWithFd
addaleax Oct 8, 2019
e16e3d5
benchmark: remove double word "then" in comments
nschonni Oct 3, 2019
216e200
fs: buffer dir entries in opendir()
addaleax Oct 8, 2019
1fefd7f
doc: fs dir modifications may not be reflected by dir.read
addaleax Oct 10, 2019
2695f82
module: warn on require of .js inside type: module
guybedford Oct 9, 2019
f3115c4
src: fix largepages regression
Oct 9, 2019
e175d0b
crypto: reject public keys properly
tniessen Oct 10, 2019
c66bc20
doc: fix some recent nits in fs.md
vsemozhetbyt Oct 9, 2019
5ade490
doc,meta: reduce npm PR wait period to one week
Trott Oct 10, 2019
8a333a4
domain: do not import util for a simple type check
BridgeAR Oct 3, 2019
aac2476
src: render N-API weak callbacks as cleanup hooks
Sep 6, 2019
41430be
tools: port Python 3 compat patches from node-gyp to gyp
targos Oct 9, 2019
8da83e8
build: always use strings for compiler version in gyp files
targos Oct 9, 2019
59033f6
tools: fix GYP MSVS solution generator for Python 3
targos Oct 9, 2019
8d03013
tools: fix test runner in presence of NODE_REPL_EXTERNAL_MODULE
devsnek Oct 13, 2019
735ec1b
build: fix version checks in gyp files
bnoordhuis Oct 11, 2019
62bc80c
process: add lineLength to source-map-cache
bcoe Oct 6, 2019
aec8e77
test: fix fs benchmark test
Trott Oct 14, 2019
a23b5cb
doc: prepare miscellaneous docs for new markdown lint rules
Trott Oct 14, 2019
b93c8a7
test: fix flaky doctool and test
Trott Oct 15, 2019
c0cbfae
doc: add server header into the discarded list of http message.headers
Huachao Oct 14, 2019
12f2454
doc: re-enable passing remark-lint rule
nschonni Oct 14, 2019
b57fe3b
doc: remove unused Markdown reference links
nschonni Oct 14, 2019
3e39909
test: add cb error test for fs.close()
teorossi82 Oct 14, 2019
45c5ad7
src: refine maps parsing for large pages
Oct 9, 2019
5616f22
doc: clarify readable.unshift null/EOF
ronag Oct 16, 2019
94ac44f
esm: modify resolution order for specifier flag
MylesBorins Oct 14, 2019
a1adce1
build: build benchmark addons like test addons
richardlau Oct 16, 2019
02f6e5c
build: fix version checks in configure.py
targos Oct 14, 2019
d9b5508
doc: fix tls version typo
akitsu-sanae Oct 15, 2019
9fed62f
test: remove common.skipIfInspectorEnabled()
Trott Oct 16, 2019
aa0aacb
src: initialize openssl only once
sam-github Oct 16, 2019
8df5bdb
doc: update collaborator email address
JungMinu Oct 17, 2019
2ebd1a0
test: fix test runner for Python 3 on Windows
targos Oct 18, 2019
2764567
deps: upgrade to libuv 1.33.1
cjihrig Oct 19, 2019
6269a3c
src: remove unused iomanip include
danbev Oct 17, 2019
4b57088
src: fewer uses of NODE_USE_V8_PLATFORM
codebytere Oct 18, 2019
ecf6ae8
test: expand Worker test for non-shared ArrayBuffer
addaleax Oct 20, 2019
ae39039
stream: remove dead code
lpinca Oct 20, 2019
21a43bd
stream: simplify uint8ArrayToBuffer helper
lpinca Oct 20, 2019
870c320
doc: join parts of disrupt section in cli.md
vsemozhetbyt Oct 19, 2019
a86648c
build: log the found compiler version if too old
richardlau Oct 18, 2019
693bf73
src: expose ListNode<T>::prev_ on postmortem metadata
legendecas Oct 18, 2019
abfac96
src: make implementing CancelPendingDelayedTasks for platform optional
addaleax Oct 19, 2019
032c23d
build: make linter failures fail `test-doc` target
richardlau Oct 17, 2019
f6655b4
src: remove unnecessary std::endl usage
danbev Oct 17, 2019
22e10fd
doc: --enable-source-maps and prepareStackTrace are incompatible
bcoe Oct 21, 2019
58c585e
deps: npm: patch support for 13.x
ljharb Oct 22, 2019
4277066
inspector: turn platform tasks that outlive Agent into no-ops
addaleax Oct 18, 2019
0415dd7
build: python3 support for configure
rvagg Oct 21, 2019
b7bdfd3
crypto: guard with OPENSSL_NO_GOST
codebytere Oct 21, 2019
d2756fd
deps: V8: cherry-pick ed40ab1
targos Oct 22, 2019
ce49a41
deps: V8: cherry-pick c721203
targos Oct 22, 2019
00dab34
test: verify npm compatibility with releases
targos Oct 23, 2019
c4c8e01
doc: add legendecas to collaborators
legendecas Oct 25, 2019
d586070
src: allow inspector without v8 platform
codebytere Oct 21, 2019
d96e8b6
test: use arrow functions for callbacks
mpark86 Oct 22, 2019
ee3c3ad
n-api,doc: add info about building n-api addons
jschlight Oct 18, 2019
56be32d
async_hooks: only emit `after` for AsyncResource if stack not empty
addaleax Oct 23, 2019
ee954d5
doc: remove dashes
Trott Oct 24, 2019
a56e78c
doc: delete "a number of" things in the docs
Trott Oct 23, 2019
0ec63ee
doc,n-api: sort bottom-of-the-page references
Oct 25, 2019
ec99287
doc: revise os.md
Trott Oct 23, 2019
2ac76e3
doc: remove "it is important to" phrasing
Trott Oct 24, 2019
0b6fb3d
tools: doc: improve async workflow of generate.js
tpoisseau Oct 24, 2019
c2108d4
doc: adjust code sample for stream.finished
imcotton Oct 15, 2019
28db999
doc: remove incorrect and outdated example
tniessen Oct 26, 2019
375f349
tools: update ESLint to 6.6.0
cjihrig Oct 25, 2019
8a31136
stream: extract Readable.from in its own file
mcollina Oct 26, 2019
b215b16
src: split up InitializeContext
codebytere Oct 22, 2019
66c6818
doc,meta: prefer aliases and stubs over Runtime Deprecations
Trott Oct 28, 2019
d0f5bc1
doc: fix an error in resolution algorithm steps
Oct 11, 2019
98d31da
doc: add options description for send APIs
dev-script Oct 7, 2019
0efe9a0
doc: move inactive Collaborators to emeriti
Trott Oct 30, 2019
b88314f
deps: update npm to 6.12.1
Oct 29, 2019
7b50474
doc: improve doc Http2Session:Timeout
dev-script Oct 29, 2019
468f203
build: fix pkg-config search for libnghttp2
bnoordhuis Oct 27, 2019
a71f210
doc: update AUTHORS list
targos Oct 27, 2019
c52b292
src: change env.h includes for forward declarations
alferpal Oct 26, 2019
df0fbf2
tools: git rm -r tools/v8_gypfiles/broken
cclauss Oct 27, 2019
c5d312f
build: find Python syntax errors in dependencies
cclauss Oct 27, 2019
6bc7a6d
deps: V8: cherry-pick e5dbc95
Oct 30, 2019
309c395
tools: undefined name opts -> args in gyptest.py
cclauss Oct 27, 2019
87cb6b2
tools: use print() function in buildbot_run.py
cclauss Oct 27, 2019
b654673
tools: fix Python 3 syntax error in mac_tool.py
cclauss Oct 27, 2019
d7bfc6c
doc: linkify `.fork()` in cluster documentation
addaleax Oct 29, 2019
b0837fe
meta: use contact_links instead of issue templates
targos Oct 30, 2019
ab03c29
src: isolate->Dispose() order consistency
codebytere Oct 30, 2019
9c4a9e7
doc: explain http2 aborted event callback
dev-script Oct 30, 2019
b159b91
doc: linkify `.setupMaster()` in cluster doc
trivikr Nov 1, 2019
33bd128
doc: add missing hash for header link
nschonni Oct 31, 2019
41d1f16
tools: fix Python 3 deprecation warning in test.py
Hellzed Nov 1, 2019
b1529c6
deps: V8: cherry-pick a7dffcd767be
cclauss Nov 3, 2019
680e9cc
buffer: improve performance caused by primordials
jizusun Nov 3, 2019
bcd2238
build: add workaround for WSL
gengjiawen Nov 2, 2019
2810f1a
tools: update tzdata to 2019c
MylesBorins Nov 13, 2019
b9fd18f
tools: pull xcode_emulation.py from node-gyp
cclauss Nov 5, 2019
56e986a
test: do not run release-npm test without crypto
targos Nov 5, 2019
525fd9c
2019-11-19, Version 12.13.1 'Erbium' (LTS)
targos Nov 10, 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
  •  
  •  
  •  
10 changes: 0 additions & 10 deletions .github/ISSUE_TEMPLATE/3-help.md

This file was deleted.

11 changes: 0 additions & 11 deletions .github/ISSUE_TEMPLATE/4-nodejs-org.md

This file was deleted.

8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: ⁉️ Need help with Node.js?
url: https://github.com/nodejs/help
about: Please file an issue in our help repo.
- name: 🌐 Found a problem with nodejs.org?
url: https://github.com/nodejs/nodejs.org/issues/new/choose
about: Please file an issue in the Node.js website repo.
7 changes: 6 additions & 1 deletion .mailmap
Expand Up @@ -270,7 +270,10 @@ Miguel Angel Asencio Hurtado <maasencioh@gmail.com> maasencioh <maasencioh@gmail
Mikael Bourges-Sevenier <mikeseven@gmail.com> <msevenier@motorola.com>
Mike Kaufman <mike.kaufman@microsoft.com> <mkaufman@microsoft.com>
Minqi Pan <pmq2001@gmail.com> P.S.V.R <pmq2001@gmail.com>
Minwoo Jung <jmwsoft@gmail.com> JungMinu <jmwsoft@gmail.com>
Minuk Park <parkm86@gmail.com>
Minwoo Jung <nodecorelab@gmail.com> JungMinu <jmwsoft@gmail.com>
Minwoo Jung <nodecorelab@gmail.com> <jmwsoft@gmail.com>
Minwoo Jung <nodecorelab@gmail.com> <minwoo@nodesource.com>
Miroslav Bajtoš <miroslav@strongloop.com> <miro.bajtos@gmail.com>
Mitar Milutinovic <mitar.git@tnode.com>
Myles Borins <myles.borins@gmail.com> <mborins@us.ibm.com>
Expand Down Expand Up @@ -336,6 +339,7 @@ Santiago Gimeno <santiago.gimeno@gmail.com> <santiago.gimeno@ionide.es>
Sarah Meyer <sarahsaltrick@gmail.com> sarahmeyer <sarahsaltrick@gmail.com>
Sartrey Lee <sartrey@163.com> sartrey <sartrey@163.com>
Saúl Ibarra Corretgé <s@saghul.net> <saghul@gmail.com>
Shobhit Chittora <chittorashobhit@gmail.com> <schittora@paypal.com>
Scott Blomquist <github@scott.blomqui.st> <sblom@microsoft.com>
Segu Riluvan <rilwan22@hotmail.com> <riluvan@gmail.com>
Sergey Kryzhanovsky <skryzhanovsky@gmail.com> <another@dhcp199-223-red.yandex.net>
Expand Down Expand Up @@ -382,6 +386,7 @@ Takahiro ANDO <takahiro.ando@gmail.com>
Tarun Batra <tarun.batra00@gmail.com> Tarun <tarun.batra00@gmail.com>
Ted Young <ted@radicaldesigns.org>
Teppei Sato <teppeis@gmail.com>
Theotime Poisseau <theotime.poisseau@gmail.com>
Thomas Hunter II <me@thomashunter.name> <tom@intrinsic.com>
Thomas Lee <thomas.lee@shinetech.com> <tom@tom-debian.sensis.com.au>
Thomas Reggi <thomas@reggi.com>
Expand Down
12 changes: 12 additions & 0 deletions .travis.yml
Expand Up @@ -91,3 +91,15 @@ jobs:
- if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then
bash -x tools/lint-pr-commit-message.sh ${TRAVIS_PULL_REQUEST};
fi

- name: "Find syntax errors in our Python dependencies"
language: python
python: 3.8
install:
- mv .flake8 disabled.flake8 # take the blinders off of flake8
- python3.8 -m pip install --upgrade pip
- python3.8 -m pip install flake8
script:
- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
allow_failures: # TODO (cclauss): remove this when dependencies are clean
- name: "Find syntax errors in our Python dependencies"
23 changes: 21 additions & 2 deletions AUTHORS
Expand Up @@ -773,7 +773,7 @@ Minqi Pan <pmq2001@gmail.com>
Jacob Edelman <edelman.jd@gmail.com>
Mike Atkins <mike.atkins@lanetix.com>
hackerjs <4141095@qq.com>
Minwoo Jung <jmwsoft@gmail.com>
Minwoo Jung <nodecorelab@gmail.com>
Marcin Cieślak <saper@marcincieslak.com>
Anne-Gaelle Colom <coloma@wmin.ac.uk>
Oleksandr Chekhovskyi <oleksandr.chekhovskyi@hansoft.com>
Expand Down Expand Up @@ -2653,7 +2653,6 @@ Furqan Shaikh <furqan_shaikh_1999@hotmail.com>
Roy Sommer <roy@sommer.co.il>
James Bunton <jbunton@atlassian.com>
Kevin Smith <Kevin.Smith@microsoft.com>
Minwoo Jung <minwoo@nodesource.com>
H1Gdev <h1g.z.ouroboros+github@gmail.com>
Julian Alimin <dmastag@yahoo.com>
Lakshmi Swetha Gopireddy <lakshmigopireddy@in.ibm.com>
Expand Down Expand Up @@ -2847,5 +2846,25 @@ Levhita <levhita@gmail.com>
claudiahdz <cghr1990@gmail.com>
Geoffrey Booth <GeoffreyBooth@users.noreply.github.com>
Javier Ledezma <juls0593@gmail.com>
Marian Rusnak <4215517+marian-r@users.noreply.github.com>
Jenia <jeniabrook@gmail.com>
Anton Gerasimov <agerasimov@twilio.com>
rickyes <mail@zhoumq.cn>
Simon A. Eugster <simon.eu@gmail.com>
TATSUNO Yasuhiro <ytatsuno.jp@gmail.com>
Robert Jensen <rjensen@butterflynetwork.com>
dokugo <dokugo@users.noreply.github.com>
Jakob Krigovsky <jakob@krigovsky.com>
Sergei Osipov <cubisto@ya.ru>
themez <themezeng@gmail.com>
Maria Paktiti <maria.paktiti@gmail.com>
Unlocked <10186337+TheUnlocked@users.noreply.github.com>
Huachao Mao <huachaomao@gmail.com>
Lucas Pardue <lucas.pardue@bbc.co.uk>
Nicolas Thumann <46975855+n-thumann@users.noreply.github.com>
akitsu-sanae <akitsu.sanae@gmail.com>
Minuk Park <parkm86@gmail.com>
Jim Schlight <jim@inspiredware.com>
Theotime Poisseau <theotime.poisseau@gmail.com>

# Generated by tools/update-authors.js
5 changes: 5 additions & 0 deletions BUILDING.md
Expand Up @@ -280,6 +280,11 @@ $ ./configure
$ 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.

The `-j4` option will cause `make` to run 4 simultaneous compilation jobs which
may reduce build time. For more information, see the
[GNU Make Documentation](https://www.gnu.org/software/make/manual/html_node/Parallel.html).
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.13.0">12.13.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V12.md#12.13.1">12.13.1</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.13.0">12.13.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.12.0">12.12.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.11.1">12.11.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V12.md#12.11.0">12.11.0</a><br/>
Expand Down
3 changes: 3 additions & 0 deletions COLLABORATOR_GUIDE.md
Expand Up @@ -341,6 +341,9 @@ Runtime Deprecations and End-of-Life APIs (internal or public) are breaking
changes (`semver-major`). The TSC may make exceptions, deciding that one of
these deprecations is not a breaking change.

Avoid Runtime Deprecations when an alias or a stub/no-op will suffice. An alias
or stub will have lower maintenance costs for end users and Node.js core.

All deprecations receive a unique and immutable identifier. Documentation,
warnings, and errors use the identifier when referring to the deprecation. The
documentation for the deprecation identifier must always remain in the API
Expand Down
8 changes: 4 additions & 4 deletions CPP_STYLE_GUIDE.md
Expand Up @@ -206,8 +206,8 @@ Use explicit comparisons to `nullptr` when testing pointers, i.e.

### Ownership and Smart Pointers

* [R.20]: Use `std::unique_ptr` or `std::shared_ptr` to represent ownership
* [R.21]: Prefer `unique_ptr` over `shared_ptr` unless you need to share
* [R.20][]: Use `std::unique_ptr` or `std::shared_ptr` to represent ownership
* [R.21][]: Prefer `unique_ptr` over `shared_ptr` unless you need to share
ownership

Use `std::unique_ptr` to make ownership transfer explicit. For example:
Expand Down Expand Up @@ -286,8 +286,8 @@ data[0] = 12345;

Further reading:

* [ES.48]: Avoid casts
* [ES.49]: If you must use a cast, use a named cast
* [ES.48][]: Avoid casts
* [ES.49][]: If you must use a cast, use a named cast

### Using `auto`

Expand Down
39 changes: 15 additions & 24 deletions Makefile
Expand Up @@ -347,24 +347,6 @@ test-valgrind: all
test-check-deopts: all
$(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) --check-deopts parallel sequential

benchmark/napi/function_call/build/$(BUILDTYPE)/binding.node: \
benchmark/napi/function_call/napi_binding.c \
benchmark/napi/function_call/binding.cc \
benchmark/napi/function_call/binding.gyp | all
$(NODE) deps/npm/node_modules/node-gyp/bin/node-gyp rebuild \
--python="$(PYTHON)" \
--directory="$(shell pwd)/benchmark/napi/function_call" \
--nodedir="$(shell pwd)"

benchmark/napi/function_args/build/$(BUILDTYPE)/binding.node: \
benchmark/napi/function_args/napi_binding.c \
benchmark/napi/function_args/binding.cc \
benchmark/napi/function_args/binding.gyp | all
$(NODE) deps/npm/node_modules/node-gyp/bin/node-gyp rebuild \
--python="$(PYTHON)" \
--directory="$(shell pwd)/benchmark/napi/function_args" \
--nodedir="$(shell pwd)"

DOCBUILDSTAMP_PREREQS = tools/doc/addon-verify.js doc/api/addons.md

ifeq ($(OSTYPE),aix)
Expand Down Expand Up @@ -470,6 +452,17 @@ test/node-api/.buildstamp: $(ADDONS_PREREQS) \
# TODO(bnoordhuis) Force rebuild after gyp or node-gyp update.
build-node-api-tests: | $(NODE_EXE) test/node-api/.buildstamp

BENCHMARK_NAPI_BINDING_GYPS := $(wildcard benchmark/napi/*/binding.gyp)

BENCHMARK_NAPI_BINDING_SOURCES := \
$(wildcard benchmark/napi/*/*.c) \
$(wildcard benchmark/napi/*/*.cc) \
$(wildcard benchmark/napi/*/*.h)

benchmark/napi/.buildstamp: $(ADDONS_PREREQS) \
$(BENCHMARK_NAPI_BINDING_GYPS) $(BENCHMARK_NAPI_BINDING_SOURCES)
@$(call run_build_addons,"$$PWD/benchmark/napi",$@)

.PHONY: clear-stalled
clear-stalled:
@echo "Clean up any leftover processes but don't error if found."
Expand Down Expand Up @@ -599,11 +592,10 @@ test-hash-seed: all
$(NODE) test/pummel/test-hash-seed.js

.PHONY: test-doc
test-doc: doc-only ## Builds, lints, and verifies the docs.
test-doc: doc-only lint ## Builds, lints, and verifies the docs.
@if [ "$(shell $(node_use_openssl))" != "true" ]; then \
echo "Skipping test-doc (no crypto)"; \
else \
$(MAKE) lint; \
$(PYTHON) tools/test.py $(PARALLEL_ARGS) doctool; \
fi

Expand Down Expand Up @@ -1163,13 +1155,12 @@ bench: bench-addons-build

# Build required addons for benchmark before running it.
.PHONY: bench-addons-build
bench-addons-build: benchmark/napi/function_call/build/$(BUILDTYPE)/binding.node \
benchmark/napi/function_args/build/$(BUILDTYPE)/binding.node
bench-addons-build: | $(NODE_EXE) benchmark/napi/.buildstamp

.PHONY: bench-addons-clean
bench-addons-clean:
$(RM) -r benchmark/napi/function_call/build
$(RM) -r benchmark/napi/function_args/build
$(RM) -r benchmark/napi/*/build
$(RM) benchmark/napi/.buildstamp

.PHONY: lint-md-rollup
lint-md-rollup:
Expand Down
20 changes: 11 additions & 9 deletions README.md
Expand Up @@ -338,26 +338,22 @@ For information about the governance of the Node.js project, see
**Jan Krems** &lt;jan.krems@gmail.com&gt; (he/him)
* [joaocgreis](https://github.com/joaocgreis) -
**João Reis** &lt;reis@janeasystems.com&gt;
* [joshgav](https://github.com/joshgav) -
**Josh Gavant** &lt;josh.gavant@outlook.com&gt;
* [joyeecheung](https://github.com/joyeecheung) -
**Joyee Cheung** &lt;joyeec9h3@gmail.com&gt; (she/her)
* [julianduque](https://github.com/julianduque) -
**Julian Duque** &lt;julianduquej@gmail.com&gt; (he/him)
* [JungMinu](https://github.com/JungMinu) -
**Minwoo Jung** &lt;minwoo@nodesource.com&gt; (he/him)
**Minwoo Jung** &lt;nodecorelab@gmail.com&gt; (he/him)
* [kfarnung](https://github.com/kfarnung) -
**Kyle Farnung** &lt;kfarnung@microsoft.com&gt; (he/him)
* [kunalspathak](https://github.com/kunalspathak) -
**Kunal Pathak** &lt;kunal.pathak@microsoft.com&gt;
* [lance](https://github.com/lance) -
**Lance Ball** &lt;lball@redhat.com&gt; (he/him)
* [legendecas](https://github.com/legendecas) -
**Chengzhong Wu** &lt;legendecas@gmail.com&gt; (he/him)
* [Leko](https://github.com/Leko) -
**Shingo Inoue** &lt;leko.noor@gmail.com&gt; (he/him)
* [lpinca](https://github.com/lpinca) -
**Luigi Pinca** &lt;luigipinca@gmail.com&gt; (he/him)
* [lucamaraschi](https://github.com/lucamaraschi) -
**Luca Maraschi** &lt;luca.maraschi@gmail.com&gt; (he/him)
* [lundibundi](https://github.com/lundibundi) -
**Denys Otrishko** &lt;shishugi@gmail.com&gt; (he/him)
* [maclover7](https://github.com/maclover7) -
Expand Down Expand Up @@ -430,8 +426,6 @@ For information about the governance of the Node.js project, see
**Sakthipriyan Vairamani** &lt;thechargingvolcano@gmail.com&gt; (he/him)
* [thekemkid](https://github.com/thekemkid) -
**Glen Keane** &lt;glenkeane.94@gmail.com&gt; (he/him)
* [thlorenz](https://github.com/thlorenz) -
**Thorsten Lorenz** &lt;thlorenz@gmx.de&gt;
* [TimothyGu](https://github.com/TimothyGu) -
**Tiancheng "Timothy" Gu** &lt;timothygu99@gmail.com&gt; (he/him)
* [tniessen](https://github.com/tniessen) -
Expand Down Expand Up @@ -479,6 +473,12 @@ For information about the governance of the Node.js project, see
**Isaac Z. Schlueter** &lt;i@izs.me&gt;
* [jhamhader](https://github.com/jhamhader) -
**Yuval Brik** &lt;yuval@brik.org.il&gt;
* [joshgav](https://github.com/joshgav) -
**Josh Gavant** &lt;josh.gavant@outlook.com&gt;
* [kunalspathak](https://github.com/kunalspathak) -
**Kunal Pathak** &lt;kunal.pathak@microsoft.com&gt;
* [lucamaraschi](https://github.com/lucamaraschi) -
**Luca Maraschi** &lt;luca.maraschi@gmail.com&gt; (he/him)
* [lxe](https://github.com/lxe) -
**Aleksey Smolenchuk** &lt;lxe@lxe.co&gt;
* [matthewloring](https://github.com/matthewloring) -
Expand Down Expand Up @@ -515,6 +515,8 @@ For information about the governance of the Node.js project, see
**Stefan Budeanu** &lt;stefan@budeanu.com&gt;
* [tellnes](https://github.com/tellnes) -
**Christian Tellnes** &lt;christian@tellnes.no&gt;
* [thlorenz](https://github.com/thlorenz) -
**Thorsten Lorenz** &lt;thlorenz@gmx.de&gt;
* [tunniclm](https://github.com/tunniclm) -
**Mike Tunnicliffe** &lt;m.j.tunnicliffe@gmail.com&gt;
* [vsemozhetbyt](https://github.com/vsemozhetbyt) -
Expand Down
2 changes: 1 addition & 1 deletion benchmark/README.md
Expand Up @@ -74,7 +74,7 @@ The common.js module is used by benchmarks for consistency across repeated
tasks. It has a number of helpful functions and properties to help with
writing benchmarks.

### createBenchmark(fn, configs[, options])
### createBenchmark(fn, configs\[, options\])

See [the guide on writing benchmarks](../doc/guides/writing-and-running-benchmarks.md#basics-of-a-benchmark).

Expand Down
51 changes: 51 additions & 0 deletions benchmark/fs/bench-opendir.js
@@ -0,0 +1,51 @@
'use strict';

const common = require('../common');
const fs = require('fs');
const path = require('path');

const bench = common.createBenchmark(main, {
n: [100],
dir: [ 'lib', 'test/parallel'],
mode: [ 'async', 'sync', 'callback' ]
});

async function main({ n, dir, mode }) {
const fullPath = path.resolve(__dirname, '../../', dir);

bench.start();

let counter = 0;
for (let i = 0; i < n; i++) {
if (mode === 'async') {
// eslint-disable-next-line no-unused-vars
for await (const entry of await fs.promises.opendir(fullPath))
counter++;
} else if (mode === 'callback') {
const dir = await fs.promises.opendir(fullPath);
await new Promise((resolve, reject) => {
function read() {
dir.read((err, entry) => {
if (err) {
reject(err);
} else if (entry === null) {
resolve(dir.close());
} else {
counter++;
read();
}
});
}

read();
});
} else {
const dir = fs.opendirSync(fullPath);
while (dir.readSync() !== null)
counter++;
dir.closeSync();
}
}

bench.end(counter);
}
1 change: 1 addition & 0 deletions benchmark/napi/ref/.gitignore
@@ -0,0 +1 @@
build/