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

lib: mask mode_t type of arguments with 0o777 #20636

Closed
wants to merge 3 commits into
base: master
from

Conversation

@joyeecheung
Member

joyeecheung commented May 9, 2018

doc: document file mode caveats on Windows

  • On Windows only the write permission (read-only attribute) can be
    manipulated, and there is no distinction among owner, group
    or others (no implementation to model the ACL after UNIX permissions).
  • mkdir on Windows does not support the mode argument.

lib: mask mode_t type of arguments with 0o777

  • Introduce the validateAndMaskMode validator that
    validates mode_t arguments and mask them with 0o777
    if they are 32-bit unsigned integer or octal string
    to be more consistent with POSIX APIs.
  • Use the validator in fs APIs and process.umask for
    consistency.
  • Add tests for 32-bit unsigned modes larger than 0o777.

Fixes: #20498

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • documentation is changed or added
  • commit message follows commit guidelines
@@ -62,7 +62,7 @@ function closeSync() {
}
// On Windows chmod is only able to manipulate read-only bit

This comment has been minimized.

@joyeecheung

joyeecheung May 9, 2018

Member

It feels pretty strange to talk about the read-only attribute on windows in this context (attempting to model the Windows permission model after the unix one) so I just changed this to write permission.

@joyeecheung

This comment has been minimized.

@vsemozhetbyt vsemozhetbyt added the fs label May 9, 2018

@@ -1089,6 +1089,9 @@ For example, the octal value `0o765` means:
* The group may read and write the file.
* Others may read and execute the file.
Caveats: on Windows only the write permission can be changed, and there is

This comment has been minimized.

@joyeecheung

joyeecheung May 9, 2018

Member

I have not tried all the combinations but I think on Windows effectively you can only change the permission to either 666 or 444 with our API

@@ -1987,7 +1990,7 @@ changes:
-->
* `path` {string|Buffer|URL}
* `mode` {integer} **Default:** `0o777`
* `mode` {integer} **Default:** `0o777`. Not supported on Windows.

This comment has been minimized.

@vsemozhetbyt

vsemozhetbyt May 9, 2018

Member

Nit: Default section usually goes last (and doctools expect it to be the last).

}
if (typeof value === 'string') {
if (!octalReg.test(value)) {

This comment has been minimized.

@mscdex

mscdex May 9, 2018

Contributor

Why do we need this? If the number is not a parseable octal value, NaN will be returned, which we check for anyway.

This comment has been minimized.

@targos

targos May 9, 2018

Member

parseInt will not return NaN for strings like '666abc'.
But I agree there seems to be redundancy. Could there be cases where the string passes the regex and the value cannot be parsed? I don't think so.

This comment has been minimized.

@joyeecheung

joyeecheung May 9, 2018

Member

@mscdex @targos Yes there are existing test cases ('123x') in our code base, it is currently only enforced in process.umask though. It does not seem quite right to remove the test IMO. Passing a number followed by invalid characters looks like a mistake that the user may want to know.

This comment has been minimized.

@joyeecheung

joyeecheung May 9, 2018

Member

By the way, https://github.com/tc39/proposal-number-fromstring (currently in Stage 1) is designed for this situation

This comment has been minimized.

@targos

targos May 9, 2018

Member

@joyeecheung what I meant is that the Number.isNaN(parsed) check can be removed. Unless I'm missing an edge case, it can never be true after the regex check.

if (typeof value === 'number') {
if (!Number.isInteger(value)) {
throw new ERR_OUT_OF_RANGE(name, 'an integer', value);

This comment has been minimized.

@mscdex

mscdex May 9, 2018

Contributor

Should we really be using an out of range error type when it's a value type issue?

This comment has been minimized.

@joyeecheung

joyeecheung May 9, 2018

Member

@mscdex JavaScript only has one number type (at least for now) so it could be seen both ways. I went with ERR_OUT_OF_RANGE so this can still be semver-patch.

@joyeecheung joyeecheung changed the title from Mode validator to lib: mask mode_t type of arguments with 0o777 May 9, 2018

@joyeecheung

This comment has been minimized.

Member

joyeecheung commented May 14, 2018

Updated the docs to move the defaults to the end of the explanation of arguments and removed the abundant isNaN check. @vsemozhetbyt @targos @mscdex PTAL, thanks!

CI: https://ci.nodejs.org/job/node-test-pull-request/14862/

@vsemozhetbyt

This comment has been minimized.

Member

vsemozhetbyt commented May 14, 2018

Doc LGTM)

@joyeecheung

This comment has been minimized.

Member

joyeecheung commented May 16, 2018

CI is green..can I have some reviews please? cc @nodejs/fs

@joyeecheung

This comment has been minimized.

@cjihrig cjihrig referenced this pull request May 16, 2018

Merged

v10.2.0 proposal #20724

@addaleax

This comment has been minimized.

Member

addaleax commented May 16, 2018

@joyeecheung Apart from CITGM, this is ready to land, right?

@joyeecheung

This comment has been minimized.

Member

joyeecheung commented May 16, 2018

@addaleax Yes

@cjihrig cjihrig referenced this pull request May 16, 2018

Merged

fs: improve fchmod{Sync} validation #20588

2 of 2 tasks complete
@joyeecheung

This comment has been minimized.

Member

joyeecheung commented May 17, 2018

CITGM failures looks irrelevant, two no space left on device failures, one rename with EPERM, and another known failures of thread-sleep

joyeecheung added some commits May 9, 2018

lib: mask mode_t type of arguments with 0o777
- Introduce the `validateAndMaskMode` validator that
  validates `mode_t` arguments and mask them with 0o777
  if they are 32-bit unsigned integer or octal string
  to be more consistent with POSIX APIs.
- Use the validator in fs APIs and process.umask for
  consistency.
- Add tests for 32-bit unsigned modes larger than 0o777.
doc: document file mode caveats on Windows
- On Windows only the write permission (read-only bit) can be
  manipulated, and there is no distinction among owner, group
  or others.
- mkdir on Windows does not support the mode argument.
@joyeecheung

This comment has been minimized.

Member

joyeecheung commented May 17, 2018

#19811 added tests that expect mode > 0o777 to be rejected. Replaced to expect those operations not to fail. It could use some better coverage to make sure the chmod in fs promises actually work but those can be done in a later PR IMO, since it doesn't do that for 0o666 anyway.

@joyeecheung

This comment has been minimized.

Member

joyeecheung commented May 17, 2018

@joyeecheung

This comment has been minimized.

Member

joyeecheung commented May 17, 2018

Landed in 0d9500d...f9de6f5, thanks!

joyeecheung added a commit that referenced this pull request May 17, 2018

lib: mask mode_t type of arguments with 0o777
- Introduce the `validateAndMaskMode` validator that
  validates `mode_t` arguments and mask them with 0o777
  if they are 32-bit unsigned integer or octal string
  to be more consistent with POSIX APIs.
- Use the validator in fs APIs and process.umask for
  consistency.
- Add tests for 32-bit unsigned modes larger than 0o777.

PR-URL: #20636
Fixes: #20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>

joyeecheung added a commit that referenced this pull request May 17, 2018

doc: document file mode caveats on Windows
- On Windows only the write permission (read-only bit) can be
  manipulated, and there is no distinction among owner, group
  or others.
- mkdir on Windows does not support the mode argument.

PR-URL: #20636
Fixes: #20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
@rubycon

This comment has been minimized.

rubycon commented May 17, 2018

@joyeecheung masking with 0o777 would always clear the S_ISUID, S_ISGID and S_ISVTX (sticky) bits. Shouldn't the clearing of these bits be handle by the underlying platform, as OS have their own strategies to handle these bits.

From chown manpage:

When the owner or group of an executable file is changed by an unprivileged user, the S_ISUID and S_ISGID mode bits are cleared. POSIX does not specify whether this also should happen when root does the chown(); [...] In case of a non-group-executable file (i.e., one for which the S_IXGRP bit is not set) the S_ISGID bit indicates mandatory locking, and is not cleared by a chown().

From mkdir manpage:

It is modified by the process's umask in the usual way: in the absence of a default ACL, the mode of the created directory is (mode & ~umask & 0777). Whether other mode bits are honored for the created directory depends on the operating system.

and

Under Linux, apart from the permission bits, the S_ISVTX mode bit is also honored.

targos added a commit that referenced this pull request Jun 7, 2018

lib: mask mode_t type of arguments with 0o777
- Introduce the `validateAndMaskMode` validator that
  validates `mode_t` arguments and mask them with 0o777
  if they are 32-bit unsigned integer or octal string
  to be more consistent with POSIX APIs.
- Use the validator in fs APIs and process.umask for
  consistency.
- Add tests for 32-bit unsigned modes larger than 0o777.

PR-URL: #20636
Fixes: #20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>

Backport-PR-URL: #21172

targos added a commit that referenced this pull request Jun 7, 2018

doc: document file mode caveats on Windows
- On Windows only the write permission (read-only bit) can be
  manipulated, and there is no distinction among owner, group
  or others.
- mkdir on Windows does not support the mode argument.

PR-URL: #20636
Fixes: #20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>

Backport-PR-URL: #21172

shisama added a commit to shisama/node that referenced this pull request Jun 9, 2018

lib: mask mode_t type of arguments with 0o777
- Introduce the `validateAndMaskMode` validator that
  validates `mode_t` arguments and mask them with 0o777
  if they are 32-bit unsigned integer or octal string
  to be more consistent with POSIX APIs.
- Use the validator in fs APIs and process.umask for
  consistency.
- Add tests for 32-bit unsigned modes larger than 0o777.

PR-URL: nodejs#20636
Fixes: nodejs#20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>

shisama added a commit to shisama/node that referenced this pull request Jun 9, 2018

doc: document file mode caveats on Windows
- On Windows only the write permission (read-only bit) can be
  manipulated, and there is no distinction among owner, group
  or others.
- mkdir on Windows does not support the mode argument.

PR-URL: nodejs#20636
Fixes: nodejs#20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>

shisama added a commit to shisama/node that referenced this pull request Jun 11, 2018

lib: mask mode_t type of arguments with 0o777
- Introduce the `validateAndMaskMode` validator that
  validates `mode_t` arguments and mask them with 0o777
  if they are 32-bit unsigned integer or octal string
  to be more consistent with POSIX APIs.
- Use the validator in fs APIs and process.umask for
  consistency.
- Add tests for 32-bit unsigned modes larger than 0o777.

PR-URL: nodejs#20636
Fixes: nodejs#20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>

shisama added a commit to shisama/node that referenced this pull request Jun 11, 2018

doc: document file mode caveats on Windows
- On Windows only the write permission (read-only bit) can be
  manipulated, and there is no distinction among owner, group
  or others.
- mkdir on Windows does not support the mode argument.

PR-URL: nodejs#20636
Fixes: nodejs#20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>

shisama added a commit to shisama/node that referenced this pull request Jun 12, 2018

lib: mask mode_t type of arguments with 0o777
- Introduce the `validateAndMaskMode` validator that
  validates `mode_t` arguments and mask them with 0o777
  if they are 32-bit unsigned integer or octal string
  to be more consistent with POSIX APIs.
- Use the validator in fs APIs and process.umask for
  consistency.
- Add tests for 32-bit unsigned modes larger than 0o777.

PR-URL: nodejs#20636
Fixes: nodejs#20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>

shisama added a commit to shisama/node that referenced this pull request Jun 12, 2018

doc: document file mode caveats on Windows
- On Windows only the write permission (read-only bit) can be
  manipulated, and there is no distinction among owner, group
  or others.
- mkdir on Windows does not support the mode argument.

PR-URL: nodejs#20636
Fixes: nodejs#20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>

targos added a commit that referenced this pull request Jun 13, 2018

lib: mask mode_t type of arguments with 0o777
- Introduce the `validateAndMaskMode` validator that
  validates `mode_t` arguments and mask them with 0o777
  if they are 32-bit unsigned integer or octal string
  to be more consistent with POSIX APIs.
- Use the validator in fs APIs and process.umask for
  consistency.
- Add tests for 32-bit unsigned modes larger than 0o777.

PR-URL: #20636
Fixes: #20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>

Backport-PR-URL: #21172

targos added a commit that referenced this pull request Jun 13, 2018

doc: document file mode caveats on Windows
- On Windows only the write permission (read-only bit) can be
  manipulated, and there is no distinction among owner, group
  or others.
- mkdir on Windows does not support the mode argument.

PR-URL: #20636
Fixes: #20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>

Backport-PR-URL: #21172

shisama added a commit to shisama/node that referenced this pull request Jun 17, 2018

lib: mask mode_t type of arguments with 0o777
- Introduce the `validateAndMaskMode` validator that
  validates `mode_t` arguments and mask them with 0o777
  if they are 32-bit unsigned integer or octal string
  to be more consistent with POSIX APIs.
- Use the validator in fs APIs and process.umask for
  consistency.
- Add tests for 32-bit unsigned modes larger than 0o777.

PR-URL: nodejs#20636
Fixes: nodejs#20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>

shisama added a commit to shisama/node that referenced this pull request Jun 17, 2018

doc: document file mode caveats on Windows
- On Windows only the write permission (read-only bit) can be
  manipulated, and there is no distinction among owner, group
  or others.
- mkdir on Windows does not support the mode argument.

PR-URL: nodejs#20636
Fixes: nodejs#20498
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>

@targos targos referenced this pull request Jun 19, 2018

Merged

v10.5.0 proposal #21400

targos added a commit that referenced this pull request Jun 20, 2018

2018-16-20, Version 10.5.0 (Current)
Notable changes:

* **crypto**:
  * Support for `crypto.scrypt()` has been added.
    [#20816](#20816)
* **fs**:
  * BigInt support has been added to `fs.stat` and `fs.watchFile`.
    [#20220](#20220)
  * APIs that take `mode` as arguments no longer throw on values larger
    than `0o777`. [#20636](#20636)
    [#20975](#20975)
    (Fixes: [$20498](#20498))
  * Fix crashes in closed event watchers.
    [#20985](#20985)
    (Fixes: [#20297](#20297))
* **Worker Threads**:
  * Support for multi-threading has been added behind the
    `--experimental-worker` flag in the `worker_threads` module.
    This feature is *experimental* and may receive breaking changes at
    any time. [#20876](#20876)

PR-URL: #21400

targos added a commit that referenced this pull request Jun 20, 2018

2018-16-20, Version 10.5.0 (Current)
Notable changes:

* **crypto**:
  * Support for `crypto.scrypt()` has been added.
    [#20816](#20816)
* **fs**:
  * BigInt support has been added to `fs.stat` and `fs.watchFile`.
    [#20220](#20220)
  * APIs that take `mode` as arguments no longer throw on values larger
    than `0o777`. [#20636](#20636)
    [#20975](#20975)
    (Fixes: [#20498](#20498))
  * Fix crashes in closed event watchers.
    [#20985](#20985)
    (Fixes: [#20297](#20297))
* **Worker Threads**:
  * Support for multi-threading has been added behind the
    `--experimental-worker` flag in the `worker_threads` module.
    This feature is *experimental* and may receive breaking changes at
    any time. [#20876](#20876)

PR-URL: #21400

targos added a commit that referenced this pull request Jun 20, 2018

2018-16-20, Version 10.5.0 (Current)
Notable changes:

* **crypto**:
  * Support for `crypto.scrypt()` has been added.
    [#20816](#20816)
* **fs**:
  * BigInt support has been added to `fs.stat` and `fs.watchFile`.
    [#20220](#20220)
  * APIs that take `mode` as arguments no longer throw on values larger
    than `0o777`. [#20636](#20636)
    [#20975](#20975)
    (Fixes: [#20498](#20498))
  * Fix crashes in closed event watchers.
    [#20985](#20985)
    (Fixes: [#20297](#20297))
* **Worker Threads**:
  * Support for multi-threading has been added behind the
    `--experimental-worker` flag in the `worker_threads` module.
    This feature is *experimental* and may receive breaking changes at
    any time. [#20876](#20876)

PR-URL: #21400

calebeby added a commit to Pigmice2733/scouting-frontend that referenced this pull request Jun 20, 2018

Update Node.js to v10.5.0 (#194)
This Pull Request updates dependency [node](https://github.com/nodejs/node) from `v10.4.1` to `v10.5.0`



<details>
<summary>Release Notes</summary>

### [`v10.5.0`](https://github.com/nodejs/node/releases/v10.5.0)
[Compare Source](nodejs/node@v10.4.1...v10.5.0)
##### Notable Changes
 
* **crypto**:
  * Support for `crypto.scrypt()` has been added. [#&#8203;20816](`nodejs/node#20816)
* **fs**:
  * BigInt support has been added to `fs.stat` and `fs.watchFile`. [#&#8203;20220](`nodejs/node#20220)
  * APIs that take `mode` as arguments no longer throw on values larger than
    `0o777`. [#&#8203;20636](`nodejs/node#20636) [#&#8203;20975](`nodejs/node#20975) (Fixes: [#&#8203;20498](`nodejs/node#20498))
  * Fix crashes in closed event watchers. [#&#8203;20985](`nodejs/node#20985) (Fixes: [#&#8203;20297](`nodejs/node#20297))
* **Worker Threads**:
  * Support for multi-threading has been added behind the
    `--experimental-worker` flag in the `worker_threads` module. This feature
    is *experimental* and may receive breaking changes at any time. [#&#8203;20876](`nodejs/node#20876)
##### Commits
 
* [[`a6986fe8b6`](nodejs/node@a6986fe)] - **async_hooks**: remove deprecated example (Mathias Buus) [#&#8203;20998](`nodejs/node#20998)
* [[`4b9817bf1e`](nodejs/node@4b9817b)] - **benchmark**: disable only the ESLint rule needing it (Rich Trott) [#&#8203;21133](`nodejs/node#21133)
* [[`ecba1c57b1`](nodejs/node@ecba1c5)] - **(SEMVER-MINOR)** **benchmark**: port cluster/echo to worker (Timothy Gu) [#&#8203;20876](`nodejs/node#20876)
* [[`02adb2d62c`](nodejs/node@02adb2d)] - **(SEMVER-MINOR)** **build**: expose openssl scrypt functions to addons (Ben Noordhuis) [#&#8203;20816](`nodejs/node#20816)
* [[`c3fbac432f`](nodejs/node@c3fbac4)] - **build**: install markdown linter for travis (Richard Lau) [#&#8203;21215](`nodejs/node#21215)
* [[`896017b134`](nodejs/node@896017b)] - **build**: build addon tests in parallel (Anna Henningsen) [#&#8203;21155](`nodejs/node#21155)
* [[`76927fc734`](nodejs/node@76927fc)] - **build**: stop distclean from deleting v8 files (Ujjwal Sharma) [#&#8203;21164](`nodejs/node#21164)
* [[`b044256f2a`](nodejs/node@b044256)] - **build**: use LC\_ALL of C for maximum compatibility (Rich Trott) [#&#8203;21222](`nodejs/node#21222)
* [[`78c7d666fb`](nodejs/node@78c7d66)] - **build**: don't change locale on smartos (Refael Ackermann) [#&#8203;21220](`nodejs/node#21220)
* [[`c688a00a6d`](nodejs/node@c688a00)] - **build**: fix 'gas\_version' check on localized environments (Evandro Oliveira) [#&#8203;20394](`nodejs/node#20394)
* [[`79b3423fb5`](nodejs/node@79b3423)] - **build**: initial .travis.yml implementation (Anna Henningsen) [#&#8203;21059](`nodejs/node#21059)
* [[`ea4be72f22`](nodejs/node@ea4be72)] - **child_process**: swallow errors in internal communication (Anatoli Papirovski) [#&#8203;21108](`nodejs/node#21108)
* [[`9981220e2a`](nodejs/node@9981220)] - **crypto**: fix behavior of createCipher in wrap mode (Tobias Nießen) [#&#8203;21287](`nodejs/node#21287)
* [[`d0cb9cbb35`](nodejs/node@d0cb9cb)] - **(SEMVER-MINOR)** **crypto**: drop Math.pow(), use static exponentation (Ben Noordhuis) [#&#8203;20816](`nodejs/node#20816)
* [[`2d9c3cc89d`](nodejs/node@2d9c3cc)] - **(SEMVER-MINOR)** **crypto**: refactor randomBytes() (Ben Noordhuis) [#&#8203;20816](`nodejs/node#20816)
* [[`6262fa44d6`](nodejs/node@6262fa4)] - **(SEMVER-MINOR)** **crypto**: refactor pbkdf2() and pbkdf2Sync() methods (Ben Noordhuis) [#&#8203;20816](`nodejs/node#20816)
* [[`c9b4592dbf`](nodejs/node@c9b4592)] - **(SEMVER-MINOR)** **crypto**: add scrypt() and scryptSync() methods (Ben Noordhuis) [#&#8203;20816](`nodejs/node#20816)
* [[`495756264a`](nodejs/node@4957562)] - **(SEMVER-MINOR)** **crypto**: DRY type checking (Ben Noordhuis) [#&#8203;20816](`nodejs/node#20816)
* [[`e4a7e0d28b`](nodejs/node@e4a7e0d)] - **deps**: float ea7abee from openssl / CVE-2018-0732 (Rod Vagg) [#&#8203;21282](`nodejs/node#21282)
* [[`0b90b071c4`](nodejs/node@0b90b07)] - **deps**: Upgrade node-inspect to 1.11.5 (Jan Krems) [#&#8203;21055](`nodejs/node#21055)
* [[`ffc29c12da`](nodejs/node@ffc29c1)] - **deps**: patch V8 to 6.7.288.46 (Myles Borins) [#&#8203;21260](`nodejs/node#21260)
* [[`14bb905d18`](nodejs/node@14bb905)] - **deps**: V8: cherry-pick a440efb27f from upstream (Yang Guo) [#&#8203;21022](`nodejs/node#21022)
* [[`65b9c427ac`](nodejs/node@65b9c42)] - **dns**: improve setServers() errors and performance (Jamie Davis) [#&#8203;20445](`nodejs/node#20445)
* [[`bc20ec0c0f`](nodejs/node@bc20ec0)] - **doc**: eliminate \_you\_ from N-API doc (Rich Trott) [#&#8203;21382](`nodejs/node#21382)
* [[`318d6831bf`](nodejs/node@318d683)] - **doc**: use imperative in COLLABORATOR\_GUIDE (Rich Trott) [#&#8203;21340](`nodejs/node#21340)
* [[`177a7c06a8`](nodejs/node@177a7c0)] - **doc**: remove obsolete wiki references from BUILDING (Rich Trott) [#&#8203;21369](`nodejs/node#21369)
* [[`15023df050`](nodejs/node@15023df)] - **doc**: add davisjam to collaborators (Jamie Davis) [#&#8203;21273](`nodejs/node#21273)
* [[`17c21b67ac`](nodejs/node@17c21b6)] - **doc**: fix indentation in console.md (Vse Mozhet Byt) [#&#8203;21367](`nodejs/node#21367)
* [[`ef74368416`](nodejs/node@ef74368)] - **doc**: fix heading of optional console method args (Michaël Zasso) [#&#8203;21311](`nodejs/node#21311)
* [[`4f17841c20`](nodejs/node@4f17841)] - **doc**: use Class Method label consistently (Rich Trott) [#&#8203;21357](`nodejs/node#21357)
* [[`4566ebacf4`](nodejs/node@4566eba)] - **doc**: wrap style guide at 80 characters (Rich Trott) [#&#8203;21361](`nodejs/node#21361)
* [[`6c41f33571`](nodejs/node@6c41f33)] - **doc**: wrap pull-requests.md at 80 characters (Rich Trott) [#&#8203;21361](`nodejs/node#21361)
* [[`b8213f17cc`](nodejs/node@b8213f1)] - **doc**: remove linking of url text to url (Rich Trott) [#&#8203;21361](`nodejs/node#21361)
* [[`3f78220c2b`](nodejs/node@3f78220)] - **doc**: correct styling of \_GitHub\_ in onboarding doc (Rich Trott) [#&#8203;21361](`nodejs/node#21361)
* [[`9e994cb119`](nodejs/node@9e994cb)] - **doc**: wrap releases.md at 80 chars (Rich Trott) [#&#8203;21361](`nodejs/node#21361)
* [[`e00e5e6d5d`](nodejs/node@e00e5e6)] - **doc**: switch the order of Writable and Readable (Joseph Gordon) [#&#8203;21333](`nodejs/node#21333)
* [[`e1b571d6b7`](nodejs/node@e1b571d)] - **doc**: make Deprecation cycle explanation more brief (Rich Trott) [#&#8203;21303](`nodejs/node#21303)
* [[`df0f7a3b4d`](nodejs/node@df0f7a3)] - **doc**: clarify async execute callback usage (Michael Dawson) [#&#8203;21217](`nodejs/node#21217)
* [[`c5a65594ef`](nodejs/node@c5a6559)] - **doc**: move 5 collaborators to emeritus status (Rich Trott) [#&#8203;21272](`nodejs/node#21272)
* [[`c1d53f86f8`](nodejs/node@c1d53f8)] - **doc**: update NODE\_OPTIONS section in cli.md (Vse Mozhet Byt) [#&#8203;21229](`nodejs/node#21229)
* [[`13fd09bfa7`](nodejs/node@13fd09b)] - **doc**: add build wg info to releases.md (Jon Moss) [#&#8203;21275](`nodejs/node#21275)
* [[`0da910f9a5`](nodejs/node@0da910f)] - **doc**: move Italo A. Casas to Release Emeritus (Myles Borins) [#&#8203;21315](`nodejs/node#21315)
* [[`6f7de0b8d9`](nodejs/node@6f7de0b)] - **doc**: trim deprecation level definition text (Rich Trott) [#&#8203;21241](`nodejs/node#21241)
* [[`dd2fc90dcf`](nodejs/node@dd2fc90)] - **doc**: fix reference to workerData in worker\_threads (Jeremiah Senkpiel) [#&#8203;21180](`nodejs/node#21180)
* [[`5e46c16371`](nodejs/node@5e46c16)] - **doc**: fix type in stream doc (Aliaksei Tuzik) [#&#8203;21178](`nodejs/node#21178)
* [[`85dc9ac418`](nodejs/node@85dc9ac)] - **doc**: add Michaël Zasso to Release team (Michaël Zasso) [#&#8203;21114](`nodejs/node#21114)
* [[`5fa5ab6c48`](nodejs/node@5fa5ab6)] - **doc**: naming function as suggested in addon docs (Tommaso Allevi) [#&#8203;21067](`nodejs/node#21067)
* [[`fe5d35123b`](nodejs/node@fe5d351)] - **(SEMVER-MINOR)** **doc**: document BigInt support in fs.Stats (Joyee Cheung) [#&#8203;20220](`nodejs/node#20220)
* [[`2c4f80ffba`](nodejs/node@2c4f80f)] - **doc**: remove spaces around slashes (Rich Trott) [#&#8203;21140](`nodejs/node#21140)
* [[`72e7e1da2d`](nodejs/node@72e7e1d)] - **doc**: alphabetize tls options (Rich Trott) [#&#8203;21139](`nodejs/node#21139)
* [[`06ac81e786`](nodejs/node@06ac81e)] - **doc**: streamline errors.md introductory material (Rich Trott) [#&#8203;21138](`nodejs/node#21138)
* [[`73b8975b41`](nodejs/node@73b8975)] - **doc**: simplify deprecation language (Rich Trott) [#&#8203;21136](`nodejs/node#21136)
* [[`6caa354377`](nodejs/node@6caa354)] - **(SEMVER-MINOR)** **doc**: explain Worker semantics in async\_hooks.md (Anna Henningsen) [#&#8203;20876](`nodejs/node#20876)
* [[`9f9355d6d2`](nodejs/node@9f9355d)] - **doc**: fix inconsistent documentation (host vs hostname) (Davis Okoth) [#&#8203;20933](`nodejs/node#20933)
* [[`a5c571424a`](nodejs/node@a5c5714)] - **doc**: document file mode caveats on Windows (Joyee Cheung) [#&#8203;20636](`nodejs/node#20636)
* [[`a75e44d135`](nodejs/node@a75e44d)] - **esm**: ensure require.main for CJS top-level loads (Guy Bedford) [#&#8203;21150](`nodejs/node#21150)
* [[`04e8f0749e`](nodejs/node@04e8f07)] - **(SEMVER-MINOR)** **fs**: support BigInt in fs.\*stat and fs.watchFile (Joyee Cheung) [#&#8203;20220](`nodejs/node#20220)
* [[`c09bfd81b7`](nodejs/node@c09bfd8)] - **fs**: do not crash when using a closed fs event watcher (Joyee Cheung) [#&#8203;20985](`nodejs/node#20985)
* [[`bacb2cb550`](nodejs/node@bacb2cb)] - **fs**: refactor fs module (James M Snell) [#&#8203;20764](`nodejs/node#20764)
* [[`db0bb5214a`](nodejs/node@db0bb52)] - **fs**: improve fchmod{Sync} validation (cjihrig) [#&#8203;20588](`nodejs/node#20588)
* [[`2ffb9d6b5c`](nodejs/node@2ffb9d6)] - **fs**: drop duplicate API in promises mode (Сковорода Никита Андреевич) [#&#8203;20559](`nodejs/node#20559)
* [[`fc0b3610e2`](nodejs/node@fc0b361)] - **fs**: don't limit ftruncate() length to 32 bits (cjihrig) [#&#8203;20851](`nodejs/node#20851)
* [[`469baa062e`](nodejs/node@469baa0)] - **fs**: add length validation to fs.truncate() (cjihrig) [#&#8203;20851](`nodejs/node#20851)
* [[`6aade4a765`](nodejs/node@6aade4a)] - **http**: remove a pair of outdated comments (Mark S. Everitt) [#&#8203;21214](`nodejs/node#21214)
* [[`bcaf59c739`](nodejs/node@bcaf59c)] - **http2**: fix memory leak for uncommon headers (Anna Henningsen) [#&#8203;21336](`nodejs/node#21336)
* [[`dee250fd77`](nodejs/node@dee250f)] - **http2**: safer Http2Session destructor (Anatoli Papirovski) [#&#8203;21194](`nodejs/node#21194)
* [[`296fd57324`](nodejs/node@296fd57)] - **inspector**: stop dragging platform pointer (Eugene Ostroukhov) 
* [[`fb71337bdf`](nodejs/node@fb71337)] - **(SEMVER-MINOR)** **lib**: rename checkIsArrayBufferView() (Ben Noordhuis) [#&#8203;20816](`nodejs/node#20816)
* [[`f3570f201b`](nodejs/node@f3570f2)] - **(SEMVER-MINOR)** **lib**: replace checkUint() with validateInt32() (Ben Noordhuis) [#&#8203;20816](`nodejs/node#20816)
* [[`b4b7d368be`](nodejs/node@b4b7d36)] - **lib**: unmask mode\_t values with 0o777 (Joyee Cheung) [#&#8203;20975](`nodejs/node#20975)
* [[`36e5100a39`](nodejs/node@36e5100)] - **lib**: support ranges in validateInt32() (cjihrig) [#&#8203;20588](`nodejs/node#20588)
* [[`2fe88d2218`](nodejs/node@2fe88d2)] - **lib**: mask mode\_t type of arguments with 0o777 (Joyee Cheung) [#&#8203;20636](`nodejs/node#20636)
* [[`a0cfb0c9d4`](nodejs/node@a0cfb0c)] - **lib**: add validateInteger() validator (cjihrig) [#&#8203;20851](`nodejs/node#20851)
* [[`740d9f1a0e`](nodejs/node@740d9f1)] - **lib,src**: make `StatWatcher` a `HandleWrap` (Anna Henningsen) [#&#8203;21244](`nodejs/node#21244)
* [[`a657984109`](nodejs/node@a657984)] - **lib,src**: remove openssl feature conditionals (Ben Noordhuis) [#&#8203;21094](`nodejs/node#21094)
* [[`653b20b26d`](nodejs/node@653b20b)] - **loader**: remove unused error code in module\_job (Gus Caplan) [#&#8203;21354](`nodejs/node#21354)
* [[`5d3dfedca2`](nodejs/node@5d3dfed)] - **meta**: remove CODEOWNERS (Rich Trott) [#&#8203;21161](`nodejs/node#21161)
* [[`169bff3e9e`](nodejs/node@169bff3)] - **n-api**: name CallbackBundle function fields (Anna Henningsen) [#&#8203;21240](`nodejs/node#21240)
* [[`1dc9330b3a`](nodejs/node@1dc9330)] - **n-api**: improve runtime perf of n-api func call (Kenny Yuan) [#&#8203;21072](`nodejs/node#21072)
* [[`9047c8182c`](nodejs/node@9047c81)] - **n-api**: remove unused napi\_env member (Gabriel Schulhof) [#&#8203;21127](`nodejs/node#21127)
* [[`18c057ab26`](nodejs/node@18c057a)] - **net**: emit 'close' when socket ends before connect (Brett Kiefer) [#&#8203;21290](`nodejs/node#21290)
* [[`a3fd1cd8ea`](nodejs/node@a3fd1cd)] - **perf_hooks**: remove less useful bootstrap marks (James M Snell) [#&#8203;21247](`nodejs/node#21247)
* [[`8fddf591c5`](nodejs/node@8fddf59)] - **perf_hooks**: set bootstrap complete in only one place (James M Snell) [#&#8203;21247](`nodejs/node#21247)
* [[`fc2956d37a`](nodejs/node@fc2956d)] - **process**: backport process/methods file (Michaël Zasso) [#&#8203;21172](`nodejs/node#21172)
* [[`78ad4e9dde`](nodejs/node@78ad4e9)] - **src**: remove unused argc var in node\_stat\_watcher (Daniel Bevenius) [#&#8203;21337](`nodejs/node#21337)
* [[`7fa1344143`](nodejs/node@7fa1344)] - **src**: use `%zx` in printf for size\_t (Anna Henningsen) [#&#8203;21323](`nodejs/node#21323)
* [[`671346ee8f`](nodejs/node@671346e)] - **src**: do proper error checking in `AsyncWrap::MakeCallback` (Anna Henningsen) [#&#8203;21189](`nodejs/node#21189)
* [[`aa468abc4c`](nodejs/node@aa468ab)] - **src**: unify native symbol inspection code (Anna Henningsen) [#&#8203;21238](`nodejs/node#21238)
* [[`e92b89a75d`](nodejs/node@e92b89a)] - **src**: fix http2 typos (Anatoli Papirovski) [#&#8203;21194](`nodejs/node#21194)
* [[`4f01168414`](nodejs/node@4f01168)] - **src**: do not persist fs\_poll handle in stat\_watcher (Anatoli Papirovski) [#&#8203;21093](`nodejs/node#21093)
* [[`685b9b2a6a`](nodejs/node@685b9b2)] - **src**: do not persist timer handle in cares\_wrap (Anatoli Papirovski) [#&#8203;21093](`nodejs/node#21093)
* [[`4757771db3`](nodejs/node@4757771)] - **src**: add consistency check to node\_platform.cc (Anna Henningsen) [#&#8203;21156](`nodejs/node#21156)
* [[`8e2e16721b`](nodejs/node@8e2e167)] - **src**: add node\_encoding.cc (James M Snell) [#&#8203;21112](`nodejs/node#21112)
* [[`39b38754eb`](nodejs/node@39b3875)] - **src**: cleanup beforeExit for consistency (James M Snell) [#&#8203;21113](`nodejs/node#21113)
* [[`314b47d1cf`](nodejs/node@314b47d)] - **(SEMVER-MINOR)** **src**: add Env::profiler\_idle\_notifier\_started() (Timothy Gu) [#&#8203;20876](`nodejs/node#20876)
* [[`5209ff9562`](nodejs/node@5209ff9)] - **(SEMVER-MINOR)** **src**: remove unused fields msg\_ and env\_ (Daniel Bevenius) [#&#8203;20876](`nodejs/node#20876)
* [[`9a734132f9`](nodejs/node@9a73413)] - **(SEMVER-MINOR)** **src**: make handle onclose property a Symbol (Anna Henningsen) [#&#8203;20876](`nodejs/node#20876)
* [[`e6f06807b1`](nodejs/node@e6f0680)] - **(SEMVER-MINOR)** **src**: simplify handle closing (Anna Henningsen) [#&#8203;20876](`nodejs/node#20876)
* [[`65924c70e8`](nodejs/node@65924c7)] - **(SEMVER-MINOR)** **src**: remove unused fields isolate\_ (Daniel Bevenius) [#&#8203;20876](`nodejs/node#20876)
* [[`de7403f813`](nodejs/node@de7403f)] - **(SEMVER-MINOR)** **src**: cleanup per-isolate state on platform on isolate unregister (Anna Henningsen) [#&#8203;20876](`nodejs/node#20876)
* [[`ba17c9e46b`](nodejs/node@ba17c9e)] - **src**: refactor bootstrap to use bootstrap object (James M Snell) [#&#8203;20917](`nodejs/node#20917)
* [[`cbdc1fdf44`](nodejs/node@cbdc1fd)] - **src, tools**: add check for left leaning pointers (Daniel Bevenius) [#&#8203;21010](`nodejs/node#21010)
* [[`935309325b`](nodejs/node@9353093)] - **test**: fix deprecation warning due to util.print (Tobias Nießen) [#&#8203;21265](`nodejs/node#21265)
* [[`d7ba75f8aa`](nodejs/node@d7ba75f)] - **test**: add test to check colorMode type of Console (Masashi Hirano) [#&#8203;21248](`nodejs/node#21248)
* [[`0b00172df8`](nodejs/node@0b00172)] - **test**: removing unnecessary parameter from assert call (djmgit) [#&#8203;21307](`nodejs/node#21307)
* [[`dea3ac7bff`](nodejs/node@dea3ac7)] - **test**: improve statwatcher async\_hooks test (Anna Henningsen) [#&#8203;21244](`nodejs/node#21244)
* [[`792335f712`](nodejs/node@792335f)] - **test**: add workerdata-sharedarraybuffer test (Jeremiah Senkpiel) [#&#8203;21180](`nodejs/node#21180)
* [[`e8d15cb149`](nodejs/node@e8d15cb)] - **test**: mark test-inspector-port-zero-cluster flaky (Rich Trott) [#&#8203;21251](`nodejs/node#21251)
* [[`688bdfef7f`](nodejs/node@688bdfe)] - **test**: add crypto check to test-http2-debug (Daniel Bevenius) [#&#8203;21205](`nodejs/node#21205)
* [[`2270ab2a12`](nodejs/node@2270ab2)] - **test**: remove string literals from assert.strictEqual() calls (James Kylstra) [#&#8203;21211](`nodejs/node#21211)
* [[`187951c0fc`](nodejs/node@187951c)] - **test**: move inspector-stress-http to sequential (Rich Trott) [#&#8203;21227](`nodejs/node#21227)
* [[`bda34ea203`](nodejs/node@bda34ea)] - **test**: check gc does not resurrect the loop (Anatoli Papirovski) [#&#8203;21093](`nodejs/node#21093)
* [[`4d782c4720`](nodejs/node@4d782c4)] - **test**: improve assert error messages (Hristijan Gjorgjievski) [#&#8203;21160](`nodejs/node#21160)
* [[`2655c7b194`](nodejs/node@2655c7b)] - **test**: mark fs-readfile-tostring-fail flaky for all (Rich Trott) [#&#8203;21177](`nodejs/node#21177)
* [[`17954c2b01`](nodejs/node@17954c2)] - **test**: improve internal/buffer.js test coverage (Masashi Hirano) [#&#8203;21061](`nodejs/node#21061)
* [[`2ff4704447`](nodejs/node@2ff4704)] - **test**: move test-readuint to test-buffer-readuint (Michaël Zasso) [#&#8203;21170](`nodejs/node#21170)
* [[`9c3a7bf076`](nodejs/node@9c3a7bf)] - **test**: make url-util-format engine agnostic (Rich Trott) [#&#8203;21141](`nodejs/node#21141)
* [[`3d8ec8f85c`](nodejs/node@3d8ec8f)] - **test**: make url-parse-invalid-input engine agnostic (Rich Trott) [#&#8203;21132](`nodejs/node#21132)
* [[`0b0370f884`](nodejs/node@0b0370f)] - **test**: remove unref in http2 test (Anatoli Papirovski) [#&#8203;21145](`nodejs/node#21145)
* [[`14a017cf8d`](nodejs/node@14a017c)] - **test**: apply promises API to fourth appendFile test (Rich Trott) [#&#8203;21131](`nodejs/node#21131)
* [[`aa9dbf666b`](nodejs/node@aa9dbf6)] - **test**: apply promises API to fourth appendFile test (Rich Trott) [#&#8203;21131](`nodejs/node#21131)
* [[`185b9e45d3`](nodejs/node@185b9e4)] - **test**: apply promises API to third appendFile test (Rich Trott) [#&#8203;21131](`nodejs/node#21131)
* [[`c400448e85`](nodejs/node@c400448)] - **test**: improve debug output in trace-events test (Rich Trott) [#&#8203;21120](`nodejs/node#21120)
* [[`a4ad9891e3`](nodejs/node@a4ad989)] - **test**: add test for Linux perf (Matheus Marchini) [#&#8203;20783](`nodejs/node#20783)
* [[`e16036c462`](nodejs/node@e16036c)] - **test**: create new directory v8-updates (Matheus Marchini) [#&#8203;20783](`nodejs/node#20783)
* [[`93ce63c89f`](nodejs/node@93ce63c)] - **(SEMVER-MINOR)** **test**: add test against unsupported worker features (Timothy Gu) [#&#8203;20876](`nodejs/node#20876)
* [[`94dcdfb898`](nodejs/node@94dcdfb)] - **test**: increase coverage for fs.promises.truncate (Masashi Hirano) [#&#8203;20638](`nodejs/node#20638)
* [[`c9cee63179`](nodejs/node@c9cee63)] - **test,tools**: refactor custom ESLint for readability (Rich Trott) [#&#8203;21134](`nodejs/node#21134)
* [[`ed05d9a821`](nodejs/node@ed05d9a)] - **(SEMVER-MINOR)** **test,tools**: enable running tests under workers (Anna Henningsen) [#&#8203;20876](`nodejs/node#20876)
* [[`6285fe94f6`](nodejs/node@6285fe9)] - **tools**: do not disable `quotes` rule in .eslintrc.js (Rich Trott) [#&#8203;21338](`nodejs/node#21338)
* [[`98346de08c`](nodejs/node@98346de)] - **tools**: lint doc/\*.md files (Rich Trott) [#&#8203;21361](`nodejs/node#21361)
* [[`521f8f1d95`](nodejs/node@521f8f1)] - **tools**: add BigInt64Array and BigUint64Array to globals (Joyee Cheung) [#&#8203;21255](`nodejs/node#21255)
* [[`a5c386d1ba`](nodejs/node@a5c386d)] - **tools**: add option to use custom template with js2c.py (Shelley Vohr) [#&#8203;21187](`nodejs/node#21187)
* [[`7f70fe83ef`](nodejs/node@7f70fe8)] - **tools**: add BigInt to globals (Nikolai Vavilov) [#&#8203;21237](`nodejs/node#21237)
* [[`4e742e379b`](nodejs/node@4e742e3)] - **tools**: update tooling to work with new macOS CLI … (Rich Trott) [#&#8203;21173](`nodejs/node#21173)
* [[`ed2b57bcd5`](nodejs/node@ed2b57b)] - **tools**: remove unused global types from type-parser (Rich Trott) [#&#8203;21135](`nodejs/node#21135)
* [[`d46446afc5`](nodejs/node@d46446a)] - **v8**: replace Buffer with FastBuffer in deserialize (Ujjwal Sharma) [#&#8203;21196](`nodejs/node#21196)
* [[`917960e0a1`](nodejs/node@917960e)] - **win, build**: add documentation support to vcbuild (Bartosz Sosnowski) [#&#8203;19663](`nodejs/node#19663)
* [[`03fbc9e749`](nodejs/node@03fbc9e)] - **(SEMVER-MINOR)** **worker**: rename to worker\_threads (Anna Henningsen) [#&#8203;20876](`nodejs/node#20876)
* [[`9ad42b766e`](nodejs/node@9ad42b7)] - **(SEMVER-MINOR)** **worker**: improve error (de)serialization (Anna Henningsen) [#&#8203;20876](`nodejs/node#20876)
* [[`6b1a887aa2`](nodejs/node@6b1a887)] - **(SEMVER-MINOR)** **worker**: enable stdio (Anna Henningsen) [#&#8203;20876](`nodejs/node#20876)
* [[`c97fb91e55`](nodejs/node@c97fb91)] - **(SEMVER-MINOR)** **worker**: restrict supported extensions (Timothy Gu) [#&#8203;20876](`nodejs/node#20876)
* [[`109c92e8fa`](nodejs/node@109c92e)] - **(SEMVER-MINOR)** **worker**: initial implementation (Anna Henningsen) [#&#8203;20876](`nodejs/node#20876)
* [[`d1f372f052`](nodejs/node@d1f372f)] - **(SEMVER-MINOR)** **worker**: add `SharedArrayBuffer` sharing (Anna Henningsen) [#&#8203;20876](`nodejs/node#20876)
* [[`f447acd87b`](nodejs/node@f447acd)] - **(SEMVER-MINOR)** **worker**: support MessagePort passing in messages (Anna Henningsen) [#&#8203;20876](`nodejs/node#20876)
* [[`337be58ee6`](nodejs/node@337be58)] - **(SEMVER-MINOR)** **worker**: implement `MessagePort` and `MessageChannel` (Anna Henningsen) [#&#8203;20876](`nodejs/node#20876)
* [[`4a54ebc3bd`](nodejs/node@4a54ebc)] - **worker,src**: display remaining handles if `uv\_loop\_close` fails (Anna Henningsen) [#&#8203;21238](`nodejs/node#21238)
* [[`529d24e3e8`](nodejs/node@529d24e)] - ***Revert*** "**workers,trace_events**: set thread name for workers" (James M Snell) [#&#8203;21363](`nodejs/node#21363)
* [[`dfb5cf6963`](nodejs/node@dfb5cf6)] - **workers,trace_events**: set thread name for workers (James M Snell) [#&#8203;21246](`nodejs/node#21246)

---

</details>




---

This PR has been generated by [Renovate Bot](https://renovatebot.com).

@targos targos added this to Backported in v10.x Sep 23, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment