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.12.0 proposal #35285

Merged
merged 73 commits into from Sep 22, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
fb89be6
doc: use correct Error type for EventEmitter.defaultMaxListener
Trott Sep 5, 2020
25f93f3
test: add more valid results to test-trace-atomics-wait
addaleax Sep 5, 2020
f3c45a1
Revert "build: require "allow edits" to be checked"
Trott Sep 7, 2020
9faaa65
test: separate the test fixtures between ICU and URL
Leko Sep 6, 2020
1cf9934
doc: make minor improvements to module.md
Trott Sep 6, 2020
bc38485
test: fix comment about DNS lookup test
tniessen Sep 6, 2020
3573545
crypto: improve randomInt out-of-range error message
Trott Sep 7, 2020
1bb0ed3
crypto: improve invalid arg type message for randomInt()
Trott Sep 7, 2020
6627c1f
test: remove setMaxListeners in test-crypto-random
tniessen Sep 6, 2020
0a2610a
doc: avoid double-while sentence in perf_hooks.md
Trott Sep 6, 2020
93e4d54
doc: add note about path.basename on Windows
tniessen Sep 5, 2020
379c5ce
test: revise test-policy-integrity
Trott Sep 8, 2020
314483c
module: fix specifier resolution option value
himself65 Sep 8, 2020
79c6d92
doc: fix broken links in deprecations.md
Trott Sep 8, 2020
f4e958f
doc: fix broken link in fs.md
Trott Sep 8, 2020
5c8d208
doc: fix broken link in http2.md
Trott Sep 9, 2020
aa93c1c
doc: fix broken link in perf_hooks.md
Trott Sep 9, 2020
b75822d
doc,test: specify and test CLI option precedence rules
addaleax Sep 8, 2020
6e622d6
esm: better package.json parser errors
guybedford Sep 9, 2020
122edad
doc: update security process
mhdawson Sep 8, 2020
d4389b5
deps: update to uvwasi 0.0.11
cjihrig Sep 8, 2020
46b9f4b
doc: add missing changes entry for breakEvalOnSigint REPL option
addaleax Sep 10, 2020
f4e714a
doc: update my email address
mhdawson Sep 8, 2020
4bde865
errors: simplify ERR_REQUIRE_ESM message generation
Trott Sep 9, 2020
df70861
doc: simplify circular dependencies text in modules.md
Trott Sep 9, 2020
977b0ed
http: allow Content-Length header for 304 responses
BlackYoup Aug 18, 2020
f21a5c6
meta: update my collab entry
devsnek Sep 12, 2020
5229ffa
buffer: adjust validation to account for buffer.kMaxLength
addaleax Sep 9, 2020
8ea2853
http: only set keep-alive when not exists
atian25 Sep 8, 2020
331142c
doc: update contact info for Ash Cripps
Sep 10, 2020
7dbcd24
doc: fix left nav color contrast
Trott Sep 10, 2020
e410514
doc: improve table accessibility
Trott Sep 10, 2020
ae85228
doc: perform minor cleanup on cli.md
Trott Sep 11, 2020
12f2934
meta: add links to OpenJSF Slack
mmarchini Sep 9, 2020
99785e4
doc: fix minor punctuation issue in path.md
amilajack Sep 9, 2020
f2cc1c2
build: filter issues & PRs to auto close by matching on stalled label
phillipj Sep 11, 2020
e8d479e
doc: perform cleanup on security-release-process.md
Trott Sep 11, 2020
dc4c569
doc: add missing copyFile change history
codebytere Sep 4, 2020
176e9e4
doc: fix broken links in modules.md
Trott Sep 14, 2020
32d1731
doc: update process.release
schamberg97 Sep 12, 2020
aea3f77
doc: update eventLoopUtilization documentation
addaleax Sep 11, 2020
0a97f44
tools: update ESLint to 7.9.0
cjihrig Sep 12, 2020
066148d
doc: remove problematic auto-linking of curl man pages
Trott Sep 13, 2020
49da459
test: improve pummel/test-timers.js
Trott Sep 13, 2020
76e24f9
module: use isURLInstance instead of instanceof
aduh95 Aug 27, 2020
beb75bd
fs: loosen validation to allow objects with an own toString function
ljharb Aug 31, 2020
910deff
doc: fix broken link in crypto.md
Trott Sep 14, 2020
c1e16d1
doc: fix deprecation documentation inconsistencies
aduh95 Sep 6, 2020
e5fffe2
doc: fix missing word in dgram.md
Nibbler999 Sep 16, 2020
70ec369
doc: replace "you should do X" with "do X"
Trott Sep 14, 2020
c1c93a6
doc: use command-line/command line consistently
Trott Sep 15, 2020
dbfd3b2
doc: remove "end user"
Trott Sep 15, 2020
92a14d3
doc: add technical values document
mhdawson Sep 10, 2020
3d78686
build: increase API requests for stale action
phillipj Sep 16, 2020
8357b56
test: add wasi readdir() test
cjihrig Sep 1, 2020
64ac5c6
doc: fix small grammatical issues in timers.md
wjabbour Sep 15, 2020
7f3b2b2
n-api: add more property defaults
Flarna Sep 15, 2020
2308be0
doc: fix header level for error code
Trott Sep 15, 2020
7610fe5
doc: add issue labels sections to release guide
targos Sep 16, 2020
6d4ab36
doc: update attributes used by n-api samples (#35220)
Flarna Sep 18, 2020
6119e95
doc: clarify use of NAPI_EXPERIMENTAL
mhdawson Sep 14, 2020
ca11816
n-api: create N-API version 7
Sep 15, 2020
d195d20
doc: relax prohibition on personal pronouns
Trott Jul 14, 2020
b9161f4
doc: sort repl references in ASCII order
Trott Sep 16, 2020
b62d9b4
doc: remove excessive formatting in dgram.md
Trott Sep 16, 2020
2bc335d
doc: clarify napi_property_attributes text
Trott Sep 18, 2020
e29e2da
test: improve assertions in pummel/test-timers
Trott Sep 15, 2020
d82dd0c
doc: revise stability section of values doc
Trott Sep 17, 2020
b860a7f
doc: standardize on _backward_
Trott Sep 17, 2020
4f4faa8
readline: fix key name for function keys with modifiers
elie-g Sep 19, 2020
d8b5714
https: set requestTimeout default to 0
ronag Sep 18, 2020
836680a
doc: use present tense in error messages
Trott Sep 12, 2020
efd5c83
2020-09-22, Version 14.12.0 (Current)
ruyadorno Sep 21, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/SUPPORT.md
Expand Up @@ -15,6 +15,7 @@ If you didn't find an answer in the resources above, try these unofficial
resources:

* [Questions tagged 'node.js' on Stack Overflow](https://stackoverflow.com/questions/tagged/node.js)
* [#nodejs](https://openjs-foundation.slack.com/archives/CK9Q4MB53) channel on the OpenJS Foundation Slack ([join here](https://slack-invite.openjsf.org/))
* [#node.js channel on chat.freenode.net](https://webchat.freenode.net?channels=node.js&uio=d4)
* [Node.js Slack Community](https://node-js.slack.com/)
* To register: [nodeslackers.com](https://www.nodeslackers.com/)
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/close-stalled.yml
Expand Up @@ -15,6 +15,10 @@ jobs:
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.
# used to filter issues to check whether or not should be closed, avoids hitting maximum operations allowed if needing to paginate through all open issues
only-labels: stalled
# max requests it will send per run to the GitHub API before it deliberately exits to avoid hitting API rate limits
operations-per-run: 500
# 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
Expand Down
14 changes: 0 additions & 14 deletions .github/workflows/require-allow-edits.yml

This file was deleted.

3 changes: 3 additions & 0 deletions .mailmap
Expand Up @@ -37,6 +37,9 @@ Artem Zaytsev <a.arepo@gmail.com>
Artur G Vieira <vieira.artur.g@gmail.com> Artur Vieira <vieira.artur.g@gmail.com>
Arnout Kazemier <info@3rd-Eden.com> <3rd-Eden@users.noreply.github.com>
Asaf David <asafdav2@gmail.com> asafdav2 <asafdav2@gmail.com>
Ash Cripps <acripps@redhat.com> <ashley.cripps@ibm.com>
Ash Cripps <acripps@redhat.com> <email@ashleycripps.co.uk>
Ash Cripps <acripps@redhat.com> <Ashley.Cripps@ibm.com>
Ashley Maceli <ashley.maceli@gmail.com> ashleyraymaceli <ashley.maceli@gmail.com>
Ashok Suthar <coderatlabs@gmail.com>
Ashutosh Kumar Singh <singhjug1994@gmail.com>
Expand Down
2 changes: 1 addition & 1 deletion AUTHORS
Expand Up @@ -2872,7 +2872,7 @@ Michael Perrotte <mike@npmjs.com>
Alexandre Ferrando <alferpal@gmail.com>
Loris Zinsou <lzinsou@protonmail.com>
Jizu Sun <jizu.sun@sap.com>
AshCripps <Ashley.Cripps@ibm.com>
Ash Cripps <acripps@redhat.com>
garygsc <garygsc@gmail.com>
Patrick Housley <patrick.f.housley@gmail.com>
Artem Maksimov <temamaksimov@gmail.com>
Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Expand Up @@ -31,7 +31,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V14.md#14.11.0">14.11.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V14.md#14.12.0">14.12.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V14.md#14.11.0">14.11.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V14.md#14.10.1">14.10.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V14.md#14.10.0">14.10.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V14.md#14.9.0">14.9.0</a><br/>
Expand Down
12 changes: 7 additions & 5 deletions README.md
Expand Up @@ -144,6 +144,7 @@ For information on reporting security vulnerabilities in Node.js, see
* [Contributing to the project][]
* [Working Groups][]
* [Strategic Initiatives][]
* [Technical values and prioritization][]

## Current Project Team Members

Expand Down Expand Up @@ -180,7 +181,7 @@ For information about the governance of the Node.js project, see
* [mcollina](https://github.com/mcollina) -
**Matteo Collina** &lt;matteo.collina@gmail.com&gt; (he/him)
* [mhdawson](https://github.com/mhdawson) -
**Michael Dawson** &lt;michael_dawson@ca.ibm.com&gt; (he/him)
**Michael Dawson** &lt;midawson@redhat.com&gt; (he/him)
* [mmarchini](https://github.com/mmarchini) -
**Mary Marchini** &lt;oss@mmarchini.me&gt; (she/her)
* [MylesBorins](https://github.com/MylesBorins) -
Expand Down Expand Up @@ -248,7 +249,7 @@ For information about the governance of the Node.js project, see
* [apapirovski](https://github.com/apapirovski) -
**Anatoli Papirovski** &lt;apapirovski@mac.com&gt; (he/him)
* [AshCripps](https://github.com/AshCripps) -
**Ash Cripps** &lt;ashley.cripps@ibm.com&gt;
**Ash Cripps** &lt;acripps@redhat.com&gt;
* [bcoe](https://github.com/bcoe) -
**Ben Coe** &lt;bencoe@gmail.com&gt; (he/him)
* [bengl](https://github.com/bengl) -
Expand Down Expand Up @@ -288,7 +289,7 @@ For information about the governance of the Node.js project, see
* [devnexen](https://github.com/devnexen) -
**David Carlier** &lt;devnexen@gmail.com&gt;
* [devsnek](https://github.com/devsnek) -
**Gus Caplan** &lt;me@gus.host&gt; (he/him)
**Gus Caplan** &lt;me@gus.host&gt; (they/them)
* [edsadr](https://github.com/edsadr) -
**Adrian Estrada** &lt;edsadr@gmail.com&gt; (he/him)
* [eugeneo](https://github.com/eugeneo) -
Expand Down Expand Up @@ -356,7 +357,7 @@ For information about the governance of the Node.js project, see
* [mcollina](https://github.com/mcollina) -
**Matteo Collina** &lt;matteo.collina@gmail.com&gt; (he/him)
* [mhdawson](https://github.com/mhdawson) -
**Michael Dawson** &lt;michael_dawson@ca.ibm.com&gt; (he/him)
**Michael Dawson** &lt;midawson@redhat.com&gt; (he/him)
* [mildsunrise](https://github.com/mildsunrise) -
**Alba Mendez** &lt;me@alba.sh&gt; (she/her)
* [misterdjules](https://github.com/misterdjules) -
Expand Down Expand Up @@ -633,5 +634,6 @@ Other keys used to sign some previous releases:
[Contributing to the project]: CONTRIBUTING.md
[Node.js Website]: https://nodejs.org/
[OpenJS Foundation]: https://openjsf.org/
[Working Groups]: https://github.com/nodejs/TSC/blob/master/WORKING_GROUPS.md
[Strategic Initiatives]: https://github.com/nodejs/TSC/blob/master/Strategic-Initiatives.md
[Technical values and prioritization]: doc/guides/technical-values.md
[Working Groups]: https://github.com/nodejs/TSC/blob/master/WORKING_GROUPS.md
2 changes: 1 addition & 1 deletion deps/uvwasi/include/uvwasi.h
Expand Up @@ -10,7 +10,7 @@ extern "C" {

#define UVWASI_VERSION_MAJOR 0
#define UVWASI_VERSION_MINOR 0
#define UVWASI_VERSION_PATCH 10
#define UVWASI_VERSION_PATCH 11
#define UVWASI_VERSION_HEX ((UVWASI_VERSION_MAJOR << 16) | \
(UVWASI_VERSION_MINOR << 8) | \
(UVWASI_VERSION_PATCH))
Expand Down
3 changes: 3 additions & 0 deletions deps/uvwasi/include/wasi_serdes.h
Expand Up @@ -103,6 +103,9 @@ IOVS_STRUCT(ciovec_t)
#define UVWASI_SERDES_SIZE_iovec_t 8
IOVS_STRUCT(iovec_t)

#define UVWASI_SERDES_SIZE_dirent_t 24
STRUCT(dirent_t)

#define UVWASI_SERDES_SIZE_fdstat_t 24
STRUCT(fdstat_t)

Expand Down
49 changes: 28 additions & 21 deletions deps/uvwasi/src/uvwasi.c
Expand Up @@ -13,6 +13,10 @@

#define UVWASI__READDIR_NUM_ENTRIES 1

#if !defined(_WIN32) && !defined(__ANDROID__)
# define UVWASI_FD_READDIR_SUPPORTED 1
#endif

#include "uvwasi.h"
#include "uvwasi_alloc.h"
#include "uv.h"
Expand All @@ -22,6 +26,7 @@
#include "path_resolver.h"
#include "poll_oneoff.h"
#include "wasi_rights.h"
#include "wasi_serdes.h"
#include "debug.h"

/* IBMi PASE does not support posix_fadvise() */
Expand Down Expand Up @@ -1268,7 +1273,7 @@ uvwasi_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi,
uvwasi_size_t buf_len,
uvwasi_dircookie_t cookie,
uvwasi_size_t* bufused) {
/* TODO(cjihrig): Support Windows where seekdir() and telldir() are used. */
#if defined(UVWASI_FD_READDIR_SUPPORTED)
/* TODO(cjihrig): Avoid opening and closing the directory on each call. */
struct uvwasi_fd_wrap_t* wrap;
uvwasi_dirent_t dirent;
Expand All @@ -1282,6 +1287,7 @@ uvwasi_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi,
long tell;
int i;
int r;
#endif /* defined(UVWASI_FD_READDIR_SUPPORTED) */

UVWASI_DEBUG("uvwasi_fd_readdir(uvwasi=%p, fd=%d, buf=%p, buf_len=%d, "
"cookie=%"PRIu64", bufused=%p)\n",
Expand All @@ -1295,6 +1301,7 @@ uvwasi_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi,
if (uvwasi == NULL || buf == NULL || bufused == NULL)
return UVWASI_EINVAL;

#if defined(UVWASI_FD_READDIR_SUPPORTED)
err = uvwasi_fd_table_get(uvwasi->fds,
fd,
&wrap,
Expand All @@ -1316,12 +1323,9 @@ uvwasi_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi,
dir->nentries = UVWASI__READDIR_NUM_ENTRIES;
uv_fs_req_cleanup(&req);

#ifndef _WIN32
/* TODO(cjihrig): Need a Windows equivalent of this logic. */
/* Seek to the proper location in the directory. */
if (cookie != UVWASI_DIRCOOKIE_START)
seekdir(dir->dir, cookie);
#endif

/* Read the directory entries into the provided buffer. */
err = UVWASI_ESUCCESS;
Expand All @@ -1333,25 +1337,20 @@ uvwasi_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi,
goto exit;
}

available = 0;

for (i = 0; i < r; i++) {
/* TODO(cjihrig): This should probably be serialized to the buffer
consistently across platforms. In other words, d_next should always
be 8 bytes, d_ino should always be 8 bytes, d_namlen should always be
4 bytes, and d_type should always be 1 byte. */
#ifndef _WIN32
tell = telldir(dir->dir);
if (tell < 0) {
err = uvwasi__translate_uv_error(uv_translate_sys_error(errno));
uv_fs_req_cleanup(&req);
goto exit;
}
#else
tell = 0; /* TODO(cjihrig): Need to support Windows. */
#endif /* _WIN32 */

name_len = strlen(dirents[i].name);
dirent.d_next = (uvwasi_dircookie_t) tell;
/* TODO(cjihrig): Missing ino libuv (and Windows) support. fstat()? */
/* TODO(cjihrig): libuv doesn't provide d_ino, and d_type is not
supported on all platforms. Use stat()? */
dirent.d_ino = 0;
dirent.d_namlen = name_len;

Expand Down Expand Up @@ -1381,21 +1380,24 @@ uvwasi_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi,
break;
}

/* Write dirent to the buffer. */
available = buf_len - *bufused;
size_to_cp = sizeof(dirent) > available ? available : sizeof(dirent);
memcpy((char*)buf + *bufused, &dirent, size_to_cp);
*bufused += size_to_cp;
/* Write the entry name to the buffer. */
/* Write dirent to the buffer if it will fit. */
if (UVWASI_SERDES_SIZE_dirent_t + *bufused > buf_len)
break;

uvwasi_serdes_write_dirent_t(buf, *bufused, &dirent);
*bufused += UVWASI_SERDES_SIZE_dirent_t;
available = buf_len - *bufused;

/* Write as much of the entry name to the buffer as possible. */
size_to_cp = name_len > available ? available : name_len;
memcpy((char*)buf + *bufused, &dirents[i].name, size_to_cp);
memcpy((char*)buf + *bufused, dirents[i].name, size_to_cp);
*bufused += size_to_cp;
available = buf_len - *bufused;
}

uv_fs_req_cleanup(&req);

if (*bufused >= buf_len)
if (available == 0)
break;
}

Expand All @@ -1408,6 +1410,10 @@ uvwasi_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi,
return uvwasi__translate_uv_error(r);

return err;
#else
/* TODO(cjihrig): Need a solution for Windows and Android. */
return UVWASI_ENOSYS;
#endif /* defined(UVWASI_FD_READDIR_SUPPORTED) */
}


Expand Down Expand Up @@ -2353,6 +2359,7 @@ uvwasi_errno_t uvwasi_poll_oneoff(uvwasi_t* uvwasi,
if (err != UVWASI_ESUCCESS)
return err;

timer_userdata = 0;
has_timeout = 0;
min_timeout = 0;

Expand Down
7 changes: 7 additions & 0 deletions deps/uvwasi/src/wasi_serdes.c
Expand Up @@ -84,6 +84,13 @@ uint8_t uvwasi_serdes_read_uint8_t(const void* ptr, size_t offset) {
ALIAS(userdata_t, uint64_t) \
ALIAS(whence_t, uint8_t) \
\
STRUCT(dirent_t) { \
FIELD( 0, dircookie_t, d_next); \
FIELD( 8, inode_t, d_ino); \
FIELD(16, uint32_t, d_namlen); \
FIELD(20, filetype_t, d_type); \
} \
\
STRUCT(fdstat_t) { \
FIELD( 0, filetype_t, fs_filetype); \
FIELD( 2, fdflags_t, fs_flags); \
Expand Down
4 changes: 2 additions & 2 deletions doc/api/async_hooks.md
Expand Up @@ -1157,14 +1157,14 @@ functions called by `foo`. Outside of `run`, calling `getStore` will return

In most cases your application or library code should have no issues with
`AsyncLocalStorage`. But in rare cases you may face situations when the
current store is lost in one of asynchronous operations. Then you should
current store is lost in one of asynchronous operations. In those cases,
consider the following options.

If your code is callback-based, it is enough to promisify it with
[`util.promisify()`][], so it starts working with native promises.

If you need to keep using callback-based API, or your code assumes
a custom thenable implementation, you should use [`AsyncResource`][] class
a custom thenable implementation, use the [`AsyncResource`][] class
to associate the asynchronous operation with the correct execution context.

[`AsyncResource`]: #async_hooks_class_asyncresource
Expand Down
4 changes: 2 additions & 2 deletions doc/api/buffer.md
Expand Up @@ -3229,12 +3229,12 @@ if `size` is less than or equal to half [`Buffer.poolSize`][]. Instances
returned by [`Buffer.allocUnsafeSlow()`][] *never* use the shared internal
memory pool.

### The `--zero-fill-buffers` command line option
### The `--zero-fill-buffers` command-line option
<!-- YAML
added: v5.10.0
-->

Node.js can be started using the `--zero-fill-buffers` command line option to
Node.js can be started using the `--zero-fill-buffers` command-line option to
cause all newly-allocated `Buffer` instances to be zero-filled upon creation by
default. Without the option, buffers created with [`Buffer.allocUnsafe()`][],
[`Buffer.allocUnsafeSlow()`][], and `new SlowBuffer(size)` are not zero-filled.
Expand Down
6 changes: 3 additions & 3 deletions doc/api/child_process.md
Expand Up @@ -449,7 +449,7 @@ changes:
* Returns: {ChildProcess}

The `child_process.spawn()` method spawns a new process using the given
`command`, with command line arguments in `args`. If omitted, `args` defaults
`command`, with command-line arguments in `args`. If omitted, `args` defaults
to an empty array.

**If the `shell` option is enabled, do not pass unsanitized user input to this
Expand Down Expand Up @@ -1398,7 +1398,7 @@ the child process if any, else `null`.

* {Array}

The `subprocess.spawnargs` property represents the full list of command line
The `subprocess.spawnargs` property represents the full list of command-line
arguments the child process was launched with.

### `subprocess.spawnfile`
Expand Down Expand Up @@ -1547,7 +1547,7 @@ to `stdout` although there are only 4 characters.
## Shell requirements

The shell should understand the `-c` switch. If the shell is `'cmd.exe'`, it
should understand the `/d /s /c` switches and command line parsing should be
should understand the `/d /s /c` switches and command-line parsing should be
compatible.

## Default Windows shell
Expand Down