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

v11.4.0 proposal #24854

Merged
merged 316 commits into from Dec 7, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
316 commits
Select commit Hold shift + click to select a range
0a08cd7
test: fix the arguments order in `assert.strictEqual`
jarthana Nov 17, 2018
21e9aa2
src: use STL containers instead of v8 values for static module data
joyeecheung Nov 14, 2018
bd8be40
repl: handle buffered string logic on finish
antsmartian Nov 18, 2018
4348ffe
test: fix arguments order in napi test_exception
kanishk30 Nov 17, 2018
b1dee7d
test: replace anonymous closure functions with arrow function
Amanpreet-03 Nov 17, 2018
957ecbe
test: use print() function on both Python 2 and 3
Nov 19, 2018
f5d4db1
benchmark: pre-generate data set for URL benchmarks
joyeecheung Nov 11, 2018
ef63bb2
benchmark: support URL inputs in create-clientrequest
joyeecheung Nov 11, 2018
2f0a5b6
test: favor arrow functions in callbacks
UjjwalUpadhyay123-bit Nov 17, 2018
21e59a6
build: use print() function in configure.py
Nov 19, 2018
237e479
test: change anonymous closure functions to arrow functions
oyenamit Nov 17, 2018
e9abf42
test: add typeerror test for EC crypto keygen
teorossi82 Nov 16, 2018
a499db7
doc: add filehandle.write(string[, position[, encoding]])
Nov 13, 2018
b1622a2
fs: inline typeof check
Nov 16, 2018
7d743e6
test: replace anonymous closure function with arrow function
snofty Nov 17, 2018
216f751
src: elevate v8 namespaces of node_trace_events.cc
Jayasankar-m Nov 19, 2018
3bfa953
test: replace closure with arrow functions
kanishk30 Nov 17, 2018
e14abfe
lib: refactor setupInspector in bootstrap/node.js
leeight Nov 17, 2018
9ab2bcf
doc: update 11.0.0 changelog with missing commit
Trott Nov 16, 2018
9e8f91d
util: remove unreachable branch
rahulshuklab4u Nov 17, 2018
39614ad
build: remove sudo:false from .travis.yml
Trott Nov 20, 2018
1f54499
http2: order declarations in http2.js
ZYSzys Nov 17, 2018
50005e7
console: improve code readability
gengjiawen Nov 15, 2018
dadc2eb
doc: describe certificate object properties
sam-github Nov 14, 2018
37f0bd7
tls: include elliptic curve X.509 public key info
sam-github Nov 9, 2018
f30c7c4
tls: include RSA bit size in X.509 public key info
sam-github Nov 15, 2018
d345271
doc: add Beth Griggs to release team
BethGriggs Nov 20, 2018
48852cc
doc: minor cleanup of tls.getProtocol()
sam-github Nov 20, 2018
b8ed930
src: elevate namespaces of repeated artifacts
Nov 17, 2018
ed714a2
test: modify order of parameters for assertion
msahacode Nov 17, 2018
f5e9bb1
http2: replace unreachable error with assertion
Trott Nov 16, 2018
33b5242
test: use Worker scope in WPT
joyeecheung Nov 16, 2018
b22e95d
readline: add support for async iteration
TimothyGu Oct 27, 2018
b214ae4
cli: add missing env vars to --help
cjihrig Nov 15, 2018
6e4a120
doc: add missing env variables to man page
cjihrig Nov 15, 2018
91494bf
doc: add NODE_DEBUG_NATIVE to API docs
cjihrig Nov 15, 2018
daeb348
lib: move encodeStr function to internal for reusable
ZYSzys Nov 8, 2018
6d147ef
doc: move Timothy to TSC emeritus
TimothyGu Nov 20, 2018
8f18f0d
test: add whatwg-encoding TextDecoder custom inspection with showHidden
ZauberNerd Nov 6, 2018
c15208c
test: replace anonymous closure with arrow funct
prabusubra Nov 17, 2018
fbb228b
test: replace anonymous closure functions with arrow function
Nov 17, 2018
f19dae3
test: replace anonymous closure functions with arrow functions
sagirk Nov 19, 2018
2565ff0
src: elevate namespaces for repeated entities
SarathGovind Nov 19, 2018
24acd53
net,http2: merge after-write code
addaleax Nov 3, 2018
ba1ebb4
stream: correctly pause and resume after once('readable')
mcollina Nov 14, 2018
672a31c
doc: edit COLLABORATOR_GUIDE.md on closing issues
Trott Nov 19, 2018
c45660f
test: replace anonymous closure with arrow functions
suman-mitra Nov 19, 2018
1a74fad
doc: add Ruben Bridgewater to release team
BridgeAR Oct 11, 2018
cd7df56
http2: throw from mapToHeaders
jasnell Nov 3, 2018
81a7056
http2: set js callbacks once
jasnell Nov 3, 2018
5051e1b
http2: cleanup endStream logic
jasnell Nov 7, 2018
580eb5b
doc: move trott to tsc emeritus
Trott Nov 19, 2018
4792bea
test: refactor test-http-write-empty-string to use arrow functions
sagirk Nov 19, 2018
41f2e36
doc: add readable and writable property to Readable and Writable
dexterleng Oct 28, 2018
230eb0d
deps: update llhttp to 1.0.1
indutny Nov 20, 2018
7463a7f
doc: revise `author ready` explanation
Trott Nov 21, 2018
e37c618
build: fix Python detection when depot_tools are in PATH in Windows
guybedford Aug 26, 2018
b9bd4e9
src: add include for standalone compile
bghgary Nov 21, 2018
2245e5e
doc,meta: update PR approving info
vsemozhetbyt Nov 21, 2018
dbf14ce
test: replcae anonymous closure with arrow function
SarathGovind Nov 19, 2018
4da44ad
doc: clarify who may land on an LTS staging branch
MylesBorins Nov 18, 2018
c4f16dd
test: replace callback with arrow functions
sreepurnajasti Nov 19, 2018
b309dd2
test: replace anonymous closure with arrow func
suman-mitra Nov 19, 2018
1cd73a8
test: using arrow functions
NoSkillGirl Nov 20, 2018
c28ec86
test: replace closure with arrow function
Nov 17, 2018
46b5df0
test: refactor test to use arrow functions
sagirk Nov 19, 2018
8fcf3b3
test: remove unused reject handlers
Nov 21, 2018
a1254a3
net,dgram: add ipv6Only option for net and dgram
oyyd Oct 21, 2018
7b0292a
test: favor arrow function in callback
kotAPI Nov 21, 2018
2c8c7b8
test: replace anonymous function with arrow function
codegagan Nov 20, 2018
e8c0fce
test: replace closure functions with arrow functions
codegagan Nov 20, 2018
9bf2659
test: change anonymous closure function to arrow function
nethraravindran Nov 17, 2018
61179e6
deps: cherry-pick 073073b from upstream V8
hashseed Nov 20, 2018
aa220cf
src: enable detailed source positions in V8
hashseed Nov 9, 2018
759ed86
test: replace anonymous function with arrow func
codegagan Nov 20, 2018
765a81e
test: add information to assertion
Trott Nov 22, 2018
6b88541
test: replace anonymous function with arrow
codegagan Nov 20, 2018
39adfc8
test: replace anonymous function with arrow
codegagan Nov 20, 2018
2a67a49
test: replace callback with arrow function
potham Nov 20, 2018
0c51fc5
n-api: handle reference delete before finalize
mhdawson Nov 16, 2018
4070152
test: replace callback with arrow functions
sreepurnajasti Nov 20, 2018
34b40af
test: fix test case in test-child-process-fork-dgram.js
gengjiawen Nov 20, 2018
363d3c6
test: use destructuring on require
juanarbol Nov 17, 2018
5796c6a
doc: mark napi_add_finalizer experimental
mhdawson Nov 22, 2018
1067653
test: replace callback with arrow functions
prodroy1 Nov 23, 2018
f80e7a1
doc: replace anonymous function with arrow function
yuriettys Nov 24, 2018
657d7a5
doc: use arrow function
sadnessOjisan Nov 24, 2018
8d550f7
doc: replace anonymous function with arrow function
ka2jun8 Nov 24, 2018
0afcb9a
deps: cherry-pick 88f8fe1 from upstream V8
hashseed Nov 20, 2018
663d1c8
doc: fix duplicate "this" and "the" on http2.md
kawanet Nov 24, 2018
82ef618
test: fix the arguments order in `assert.strictEqual`
sota1235 Nov 24, 2018
cd1aa2b
test: fix http2-binding strictEqual order
dominikeinkemmer Nov 24, 2018
091238a
http2: fix session[kSession] undefined issue
leeight Nov 21, 2018
16d7060
crypto: allow monkey patching of pseudoRandomBytes
Flarna Nov 5, 2018
54778a0
test: fix arguments order in assert.strictEqual
teppeis Nov 24, 2018
8a91fc1
src: elevate v8 namespaces for node_url.cc
Jayasankar-m Nov 23, 2018
12d7107
test: fix assert.strictEqual
sakit0 Nov 24, 2018
8849d80
test: cover path.basename when path and ext are the same
Nov 22, 2018
a701dfb
test: split out http2 from test-stream-pipeline
Trott Nov 24, 2018
3fa4def
build: replace `-not` with `!` in `find`
Trott Nov 25, 2018
7edea03
test: change anonymous function to arrow function
codegagan Nov 20, 2018
a82b420
test: convert callback to arrow function
jamesgeorge007 Nov 23, 2018
35a7646
lib: fix nits in lib/internal/bootstrap/cache.js
vsemozhetbyt Nov 23, 2018
b2c243f
lib: simplify own keys retrieval
vsemozhetbyt Nov 23, 2018
23d8152
tools: use print() function on both Python 2 and 3
Nov 19, 2018
d4491a4
doc: revise handling-own-pull-requests text
Trott Nov 23, 2018
b65ffd5
doc: use arrow function for anonymous callbacks
Nov 24, 2018
a8e93f7
lib: change anonymous function to arrow function
taishikato Nov 24, 2018
c15efce
crypto: convert to arrow function
ota-meshi Nov 24, 2018
955a8a7
src: replace new Array creation
koh110 Nov 24, 2018
b7aa312
test: fix arguments order in `assert.strictEqual`
tottokotkd Nov 24, 2018
dca1ecf
src: replace array implementation
kazupon Nov 24, 2018
59c2ee0
lib: convert to arrow function
HisadaNaojiro Nov 24, 2018
bd4df5b
build,src: sync src files with node.gyp
refack Nov 20, 2018
5a47c2e
doc: clarify symlink resolution for __filename
Trott Nov 24, 2018
3df8633
lib: suppress crypto related env vars in help msg
danbev Nov 21, 2018
9caad06
src: simplify uptime and ppid return values
cjihrig Nov 22, 2018
1063e0c
lib: fix comment nits in bootstrap\loaders.js
vsemozhetbyt Nov 23, 2018
955819e
build: only check REPLACEME & DEP...X for releases
rvagg May 11, 2017
abb1c64
test: replace anonymous closure functions with arrow functions
tpanthera Nov 17, 2018
1625329
tools,doc: fix version picker bug in html.js
Trott Nov 25, 2018
2ebb32b
doc: document fs.write limitation with TTY
mcollina Nov 22, 2018
d6fff0e
test: add test for socket.end callback
Ajido Nov 4, 2018
3b99191
test: fix argument order in assert.strictEqual
Nov 24, 2018
99b018b
stream: use arrow function for callback
DoiChris Nov 24, 2018
99dbdca
test: update strictEqual argument order
VeysonD Nov 24, 2018
85aa030
doc: revise accepting-modifications in guide
Trott Nov 26, 2018
9d54555
test: use arrow functions in callbacks
apoorvanand Nov 17, 2018
81b42d2
process: emit unhandled warning immediately
apapirovski Nov 24, 2018
7ef516a
n-api,test: remove last argument in assert.strictEqual()
susantruong Nov 23, 2018
8072a2b
test: fix arguments order in `assert.strictEqual`
na9amura Nov 24, 2018
e5c85ef
lib: convert to Arrow Function
Nov 24, 2018
0a492c7
test: use arrow function
sagirk Nov 19, 2018
3288c27
doc: add antsmartian to collaborators
antsmartian Nov 26, 2018
84249df
test: make test-uv-binding-constant JS engine neutral
Trott Nov 27, 2018
6f42b98
lib: convert to arrow function
horihiro Nov 24, 2018
f8acf73
test: fix arguments order in assert.strictEqual
grimrose Nov 24, 2018
992a904
test: fix arguments order in `assert.strictEqual`
sota1235 Nov 24, 2018
b3e77a5
doc: fix nits in http(s) server.headersTimeout
vsemozhetbyt Nov 28, 2018
83ab5f4
lib: rearm pre-existing signal event registrations
gireeshpunathil Nov 26, 2018
c708abb
src: use NativeModuleLoader to compile per_context.js
joyeecheung Nov 26, 2018
9e1c6eb
test: test and docs for detached fork process
nanomosfet Nov 20, 2018
68dc100
doc: describe current HTTP header size limit
sam-github Nov 28, 2018
053f3d6
test: validate fs.rename() when NODE_TEST_DIR on separate mount
drewfish Nov 28, 2018
1c4bc86
lib: chenged anonymous function to arrow function
kojiGit55 Nov 24, 2018
c26b10c
src: migrate to new V8 array API
kt3k Nov 24, 2018
97b803f
lib: change callbacks to arrow function
Naturalclar Nov 24, 2018
e96c60e
test: reach res._dump after abort ClientRequest
tadhgcreedon Nov 6, 2018
b1d3747
lib: convert to arrow function in fs.js
Nov 24, 2018
b554ff7
src: replace create new Array
koh110 Nov 24, 2018
a122ba5
src: simplify LibuvStreamWrap::DoWrite
addaleax Nov 24, 2018
969ae7a
test: fix the arguments order in `assert.strictEqual`
rt33 Nov 24, 2018
603bc27
test: fix the arguments order in assert.strictEqual
Nov 24, 2018
899e7c3
win, build: skip building cctest by default
bzoz Jun 19, 2018
383d809
build, tools, win: add .S files support to GYP
bzoz Nov 21, 2018
1035e36
test: mark test-vm-timeout-escape-nexttick flaky
gireeshpunathil Nov 29, 2018
effe307
process: fix omitting `--` from `process.execArgv`
addaleax Nov 26, 2018
d5bf736
test: fix the arguments order in assert.strictEqual
pastak Nov 24, 2018
61e0103
http2: add compat support for nested array headers
sebdeckers Nov 27, 2018
b809fa8
stream: make async iterator .next() always resolve
mcollina Nov 27, 2018
654bd65
doc: remove trailing whitespace
watilde Nov 26, 2018
e7fbdf5
tools: update remark-preset-lint-node to v1.3.1
watilde Nov 25, 2018
764d76f
Revert "util: change %o depth default"
BridgeAR Dec 3, 2018
66d8330
doc: sort bottom-of-file markdown links
sam-github Nov 27, 2018
5874a03
process: refactor the bootstrap mode branching for readability
joyeecheung Nov 27, 2018
87c864c
src: remove unused variables in node_util.cc
danbev Nov 29, 2018
0894899
test: use arrow syntax for anonymous callbacks
Shubhamurkade Nov 27, 2018
d77cf92
lib: move setupAllowedFlags() into per_thread.js
joyeecheung Nov 28, 2018
3c3ebe5
test: cover path empty string case
lakatostamas Nov 22, 2018
8ffe04f
test: verify order of error in h2 server stream
MylesBorins Nov 27, 2018
1743568
esm: refactor dynamic modules
MylesBorins Nov 22, 2018
eab981e
lib: do not register DOMException in a module
joyeecheung Nov 28, 2018
f31292d
src: move C++ binding/addon related code into node_binding{.h, .cc}
joyeecheung Nov 28, 2018
0148c1d
src: elevate v8 namespaces referenced
juanarbol Nov 26, 2018
10c2773
test: mark test_threadsafe_function/test as flaky
gireeshpunathil Nov 29, 2018
f28fdc9
src: remove unused context variable in node_serdes
danbev Nov 29, 2018
193f315
src: elevate v8 namespaces for node_process.cc
Jayasankar-m Nov 23, 2018
2ef6aed
tools: check for git tag before promoting release
rvagg Nov 27, 2018
e3649c8
tools: only sign release if promotion successful
rvagg Nov 27, 2018
9e5a79a
tools: don't use GH API for commit message checks
rvagg Nov 23, 2018
be54dc0
url: use SafeSet to filter known special protocols
mikesamuel Nov 28, 2018
3fe4498
build: fix c++ code coverage on macOS
refack Nov 20, 2018
d2e9b76
timers: fix setTimeout expiration logic
suguru03 Nov 7, 2018
96e6873
Revert "url: make the context non-enumerable"
TimothyGu Nov 13, 2018
0e88f44
src: set HAS_USERNAME/PASSWORD more strictly
TimothyGu Nov 13, 2018
0d7ee19
url: reuse existing context in href setter
TimothyGu Nov 13, 2018
540929d
url: simplify native URL object construction
TimothyGu Nov 20, 2018
026e03c
test: minor refactoring of onticketkeycallback
danbev Nov 29, 2018
ecbe616
src: use arraysize instead of hardcode number
leeight Nov 19, 2018
25e5164
doc: cookie is joined using '; '
Flarna Nov 30, 2018
085f5b6
test: show stdout and stderr in test-cli-syntax when it fails
joyeecheung Nov 29, 2018
3fe3bc9
http: fix error return in `Finish()`
indutny Nov 30, 2018
798504a
http2: make compat writeHead not crash if the stream is destroyed
mcollina Nov 29, 2018
e0e15da
build: fix line length off by one error
BridgeAR Nov 30, 2018
6b71099
build: add line break as soon tests are done
BridgeAR Nov 30, 2018
12feb9e
crypto: harden bignum-to-binary conversions
bnoordhuis Nov 29, 2018
2916b59
test: increase assert test coverage
BridgeAR Nov 18, 2018
7577e75
test: check invalid argument error for option
nanomosfet Nov 30, 2018
e13571c
util,console: handle symbols as defined in the spec
BridgeAR Oct 17, 2018
807c108
util: improve internal `isError()` validation
BridgeAR Nov 18, 2018
09cd2ec
tools: fix eslint usage for Node.js 8 and before
BridgeAR Nov 30, 2018
4d41c8f
doc: add missing changes entry
BridgeAR Nov 30, 2018
7fb8d31
assert: fix loose deepEqual map comparison
BridgeAR Nov 30, 2018
8905518
assert,util: fix sparse array comparison
BridgeAR Nov 30, 2018
5f58928
test: improve comparison coverage to 100%
BridgeAR Nov 30, 2018
c957adb
src: use custom TryCatch subclass
devsnek Nov 30, 2018
06011f5
doc: fix REPLACEME for tls min/max protocol option
sam-github Nov 30, 2018
c09ea83
doc: make release README link be consistent with text
ZYSzys Dec 2, 2018
751d961
doc: streamline Accepting Modifications in Collaborator Guide
Trott Dec 3, 2018
58e5c00
doc: fix added version of randomFill+randomFillSync
watson Dec 3, 2018
997c0e0
doc: hide undocumented object artifacts in async_hooks
gireeshpunathil Nov 30, 2018
1f8787c
http: destroy the socket on parse error
lpinca Nov 30, 2018
53b59b4
src: move READONLY_* macros into util.h
joyeecheung Nov 29, 2018
7c70b61
src: move version metadata into node_metadata{.h, .cc}
joyeecheung Dec 1, 2018
9572008
test: add flag scenario in test-fs-write-file-sync
gireeshpunathil Dec 1, 2018
5bd33f1
src: fix type mismatch warnings from missing priv
sam-github Nov 30, 2018
1ec4f8d
lib: remove duplicated noop function
ZYSzys Dec 1, 2018
a7a1cb4
test: check for the correct strict equal arguments order
BridgeAR Nov 18, 2018
cc133c4
test: use ES2017 syntax in test-fs-open-*
jy95 Sep 22, 2018
3d1853b
doc: add a note on usage scope of AliasedBuffer
gireeshpunathil Nov 29, 2018
63b06b5
test: fix `common.mustNotCall()` usage in HTTP test
addaleax Nov 30, 2018
124fca0
fs: simplify fs.promises warning logic
cjihrig Dec 2, 2018
2dfaa48
dns: simplify dns.promises warning logic
cjihrig Dec 2, 2018
566046c
doc: revise code review guidelines
Trott Dec 2, 2018
c227b1b
test: partition N-API tests
Nov 17, 2018
3a24c91
build: make tar.xz creation opt-out, fail if no xz
rvagg Nov 21, 2018
b8611a3
doc: use author's titles for linked resources
Trott Dec 4, 2018
162b3a1
doc: add triaging section to releases.md
BethGriggs Apr 19, 2018
7069ed7
test: add .gitignore file for node-api
Trott Dec 4, 2018
0ed669c
test: remove unused addons-napi directory
Trott Dec 4, 2018
bfec6a4
build: fix check-xz for platforms defaulting to sh
rvagg Dec 4, 2018
acb7351
tls: add min/max protocol version options
sam-github May 6, 2018
5b78d2c
doc: remove duplicate whitespaces in doc/api
kawanet Nov 24, 2018
5a853a0
Revert "util: change util.inspect depth default"
devsnek Nov 12, 2018
88a5449
src,lib: make process.binding('config') internal
Oct 8, 2018
71e520c
doc: add authority and scheme psuedo headers
kenigbolo Dec 2, 2018
4d9a265
win: do not use Boxstarter to install tools
joaocgreis Nov 27, 2018
1ea01c5
tools: replace rollup with ncc
Trott Dec 3, 2018
73786c8
buffer: remove checkNumberType()
cjihrig Dec 3, 2018
d800998
doc: list all versions WHATWG URL api was added
watson Dec 5, 2018
5a1fb1e
doc: mention util depth default change
BridgeAR Dec 3, 2018
d881b33
url: support LF, CR and TAB in pathToFileURL
demurgos Oct 17, 2018
6c8a73d
lib: remove some useless assignments
devsnek Sep 25, 2018
706bc41
build,win: pack the install-tools scripts for dist
refack Nov 7, 2018
a22ac0b
build: add '.git' to 'make lint-py' exclude list
Dec 3, 2018
c8d5e31
http: make parser choice a runtime flag
addaleax Nov 30, 2018
6fed6f5
Revert "repl: handle buffered string logic on finish"
BridgeAR Dec 3, 2018
73bc5fd
Revert "lib: repl multiline history support"
BridgeAR Dec 3, 2018
249c143
tools: prepare tools/install.py for Python 3
Dec 3, 2018
4f1297f
2018-12-07, Version 11.4.0 (Current)
BridgeAR Dec 5, 2018
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
  •  
  •  
  •  
5 changes: 4 additions & 1 deletion .eslintrc.js
Expand Up @@ -17,7 +17,10 @@ Module._findPath = (request, paths, isMain) => {
if (!r && hacks.includes(request)) {
try {
return require.resolve(`./tools/node_modules/${request}`);
} catch {
// Keep the variable in place to ensure that ESLint started by older Node.js
// versions work as expected.
// eslint-disable-next-line no-unused-vars
} catch (e) {
return require.resolve(
`./tools/node_modules/eslint/node_modules/${request}`);
}
Expand Down
1 change: 0 additions & 1 deletion .travis.yml
@@ -1,5 +1,4 @@
language: cpp
sudo: false
cache: ccache
os: linux
matrix:
Expand Down
10 changes: 10 additions & 0 deletions BUILDING.md
Expand Up @@ -253,6 +253,16 @@ $ ./node ./test/parallel/test-stream2-transform.js
Remember to recompile with `make -j4` in between test runs if you change code in
the `lib` or `src` directories.

The tests attempt to detect support for IPv6 and exclude IPv6 tests if
appropriate. If your main interface has IPv6 addresses, then your
loopback interface must also have '::1' enabled. For some default installations
on Ubuntu that does not seem to be the case. To enable '::1' on the
loopback interface on Ubuntu:

```bash
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
```

#### Running Coverage

It's good practice to ensure any code you add or change is covered by tests.
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_V11.md#11.3.0">11.3.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V11.md#11.4.0">11.4.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.3.0">11.3.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.2.0">11.2.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.1.0">11.1.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V11.md#11.0.0">11.0.0</a><br/>
Expand Down
125 changes: 58 additions & 67 deletions COLLABORATOR_GUIDE.md
Expand Up @@ -50,84 +50,71 @@ request. See [Who to CC in the issue tracker](#who-to-cc-in-the-issue-tracker).

### Welcoming First-Time Contributors

Courtesy should always be shown to individuals submitting issues and pull
requests to the Node.js project. Be welcoming to first-time contributors,
identified by the GitHub ![First-time contributor](./doc/first_timer_badge.png)
badge.
Always show courtesy to individuals submitting issues and pull requests. Be
welcoming to first-time contributors, identified by the GitHub
![First-time contributor](./doc/first_timer_badge.png) badge.

For first-time contributors, check if the commit author is the same as the
pull request author, and ask if they have configured their git
For first-time contributors, check if the commit author is the same as the pull
request author. This way, once their pull request lands, GitHub will show them
as a _Contributor_. Ask if they have configured their git
[username][git-username] and [email][git-email] to their liking.
This is to make sure they would be promoted to "contributor" once their
pull request lands.

### Closing Issues and Pull Requests

Collaborators may close any issue or pull request they believe is
not relevant for the future of the Node.js project. Where this is
unclear, the issue should be left open for several days to allow for
additional discussion. Where this does not yield input from Node.js
Collaborators or additional evidence that the issue has relevance, the
issue may be closed. Remember that issues can always be re-opened if
necessary.
Collaborators may close any issue or pull request that is not relevant to the
future of the Node.js project. Where this is unclear, leave the issue or pull
request open for several days to allow for discussion. Where this does not yield
evidence that the issue or pull request has relevance, close it. Remember that
issues and pull requests can always be re-opened if necessary.

### Author ready pull requests

A pull request that is still awaiting the minimum review time is considered
_author ready_ as soon as the CI has been started, it has at least two approvals
(one Collaborator approval is enough if the pull request has been open for more
than 7 days), and it has no outstanding review comments. Please always make sure
to add the `author ready` label to the PR in that case and remove it again as
soon as that condition is not met anymore.
A pull request is _author ready_ when:

* There is a CI run in progress or completed.
* There are at least two Collaborator approvals, or at least one approval if the
pull request is older than 7 days.
* There are no outstanding review comments.

Please always add the `author ready` label to the pull request in that case.
Please always remove it again as soon as the conditions are not met anymore.

### Handling own pull requests

When you open a pull request, it is recommended to start a CI right away (see
[testing and CI](#testing-and-ci) for instructions) and to post the link to it
in a comment in the pull request. Starting a new CI after each update is also
recommended (for example, after an additional code change or after rebasing).
When you open a pull request, [start a CI](#testing-and-ci) right away and post
the link to it in a comment in the pull request. Later, after new code changes
or rebasing, start a new CI.

As soon as the PR is ready to land, please do so. Landing your own pull requests
allows other Collaborators to focus on other pull requests. If your pull request
is still awaiting the [minimum time to land](#waiting-for-approvals), add the
`author ready` label so other Collaborators know it can land as soon as the time
ends. If instead you wish to land the PR yourself, indicate this intent by using
the "assign yourself" button, to self-assign the PR.
As soon as the pull request is ready to land, please do so. This allows other
Collaborators to focus on other pull requests. If your pull request is not ready
to land but is [author ready](#author-ready-pull-requests), add the
`author ready` label. If you wish to land the pull request yourself, use the
"assign yourself" link to self-assign it.

## Accepting Modifications

All modifications to the Node.js code and documentation should be performed via
GitHub pull requests, including modifications by Collaborators and TSC members.
A pull request must be reviewed, and must also be tested with CI, before being
landed into the codebase. There may be exceptions to the latter (the changed
code cannot be tested with a CI or similar). If that is the case, please leave a
comment that explains why the PR does not require a CI run.
Contributors propose modifications to Node.js using GitHub pull requests. This
includes modifications proposed by TSC members and other Collaborators. A pull
request must pass code review and CI before landing into the codebase.

### Code Reviews

At least two Collaborators must approve a pull request before the pull request
lands. (One Collaborator approval is enough if the pull request has been open
for more than 7 days.) Approving a pull request indicates that the Collaborator
accepts responsibility for the change. Approval must be from Collaborators who
are not authors of the change.
lands. One Collaborator approval is enough if the pull request has been open
for more than seven days.

Approving a pull request indicates that the Collaborator accepts responsibility
for the change.

Approval must be from Collaborators who are not authors of the change.

In some cases, it may be necessary to summon a GitHub team to a pull request for
review by @-mention.
See [Who to CC in the issue tracker](#who-to-cc-in-the-issue-tracker).

If you are unsure about the modification and are not prepared to take
full responsibility for the change, defer to another Collaborator.

If you are the first Collaborator to approve a pull request that has no CI yet,
please start one (see [testing and CI](#testing-and-ci) for further information
on how to do that) and post the link to the CI in the PR. Please also start a
new CI in case the PR creator pushed new code since the last CI run (due to
e.g., an addressed review comment or a rebase).

In case there are already enough approvals (`LGTM`), a CI run, and the PR is
open longer than the minimum waiting time without any open comments, please do
not (only) add another approval. Instead go ahead and land the PR after checking
the CI outcome.
please [start one](#testing-and-ci). Post the link to the CI in the PR. Please
also start a new CI if the PR creator pushed new code since the last CI run.

### Consensus Seeking

Expand All @@ -154,8 +141,9 @@ the TSC meeting agenda.

#### Helpful resources

* How to respectfully and usefully review code, part [one](https://mtlynch.io/human-code-reviews-1/) and [two](https://mtlynch.io/human-code-reviews-2/)
* [How to write a positive code review](https://css-tricks.com/code-review-etiquette/)
* [How to Do Code Reviews Like a Human (Part One)](https://mtlynch.io/human-code-reviews-1/)
* [How to Do Code Reviews Like a Human (Part Two)](https://mtlynch.io/human-code-reviews-2/)
* [Code Review Etiquette](https://css-tricks.com/code-review-etiquette/)

### Waiting for Approvals

Expand Down Expand Up @@ -794,8 +782,8 @@ TSC for further discussion.

#### How are LTS Branches Managed?

There are multiple LTS branches, e.g. `v8.x` and `v6.x`. Each of these is paired
with a staging branch: `v8.x-staging` and `v6.x-staging`.
There are multiple LTS branches, e.g. `v10.x` and `v8.x`. Each of these is
paired with a staging branch: `v10.x-staging` and `v8.x-staging`.

As commits land on the master branch, they are cherry-picked back to each
staging branch as appropriate. If the commit applies only to the LTS branch, the
Expand All @@ -804,9 +792,8 @@ pulled from the staging branch into the LTS branch only when a release is
being prepared and may be pulled into the LTS branch in a different order
than they were landed in staging.

Any Collaborator may land commits into a staging branch, but only the release
team should land commits into the LTS branch while preparing a new
LTS release.
Only the members of the @nodejs/backporters team should land commits onto
LTS staging branches.

#### How can I help?

Expand All @@ -817,14 +804,18 @@ on backporting, please see the [backporting guide][].

Several LTS related issue and PR labels have been provided:

* `lts-watch-v6.x` - tells the LTS WG that the issue/PR needs to be considered
for landing in the `v6.x-staging` branch.
* `lts-watch-v4.x` - tells the LTS WG that the issue/PR needs to be considered
for landing in the `v4.x-staging` branch.
* `lts-watch-v10.x` - tells the LTS WG that the issue/PR needs to be
considered for landing in the `v10.x-staging` branch.
* `lts-watch-v8.x` - tells the LTS WG that the issue/PR needs to be
considered for landing in the `v8.x-staging` branch.
* `lts-watch-v6.x` - tells the LTS WG that the issue/PR needs to be
considered for landing in the `v6.x-staging` branch.
* `land-on-v10.x` - tells the release team that the commit should be landed
in a future v10.x release.
* `land-on-v8.x` - tells the release team that the commit should be landed
in a future v8.x release.
* `land-on-v6.x` - tells the release team that the commit should be landed
in a future v6.x release
* `land-on-v4.x` - tells the release team that the commit should be landed
in a future v4.x release
in a future v6.x release.

Any Collaborator can attach these labels to any PR/issue. As commits are
landed into the staging branches, the `lts-watch-` label will be removed.
Expand Down
17 changes: 17 additions & 0 deletions CPP_STYLE_GUIDE.md
Expand Up @@ -21,6 +21,7 @@
* [Use explicit pointer comparisons](#use-explicit-pointer-comparisons)
* [Ownership and Smart Pointers](#ownership-and-smart-pointers)
* [Avoid non-const references](#avoid-non-const-references)
* [Use AliasedBuffers to manipulate TypedArrays](#use-aliasedbuffers-to-manipulate-typedarrays)
* [Others](#others)
* [Type casting](#type-casting)
* [Using `auto`](#using-auto)
Expand Down Expand Up @@ -257,6 +258,21 @@ class ExampleClass {
};
```

### Use AliasedBuffers to manipulate TypedArrays

When working with typed arrays that involve direct data modification
from C++, use an `AliasedBuffer` when possible. The API abstraction and
the usage scope of `AliasedBuffer` are documented in [aliased_buffer.h][].

```c++
// Create an AliasedBuffer.
AliasedBuffer<uint32_t, v8::Uint32Array> data;
...

// Modify the data through natural operator semantics.
data[0] = 12345;
```

## Others

### Type casting
Expand Down Expand Up @@ -382,3 +398,4 @@ even `try` and `catch` **will** break.
[Run Time Type Information]: https://en.wikipedia.org/wiki/Run-time_type_information
[cppref_auto_ptr]: https://en.cppreference.com/w/cpp/memory/auto_ptr
[without C++ exception handling]: https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_exceptions.html#intro.using.exception.no
[aliased_buffer.h]: https://github.com/nodejs/node/blob/master/src/aliased_buffer.h#L12