Skip to content

Commit 9f0618c

Browse files
committed
Merge remote-tracking branch 'upstream/v8.10.0-proposal' into v8.10.0-proposal
2 parents 551bf31 + d532080 commit 9f0618c

File tree

2,651 files changed

+102041
-117770
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,651 files changed

+102041
-117770
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Contributors guide: https://github.com/nodejs/node/blob/master/CONTRIBUTING.md
1313
- [ ] `make -j4 test` (UNIX), or `vcbuild test` (Windows) passes
1414
- [ ] tests and/or benchmarks are included
1515
- [ ] documentation is changed or added
16-
- [ ] commit message follows [commit guidelines](https://github.com/nodejs/node/blob/master/CONTRIBUTING.md#commit-message-guidelines)
16+
- [ ] commit message follows [commit guidelines](https://github.com/nodejs/node/blob/master/doc/guides/contributing/pull-requests.md#commit-message-guidelines)
1717

1818
##### Affected core subsystem(s)
1919
<!-- Provide affected core subsystem(s) (like doc, cluster, crypto, etc). -->

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ _UpgradeReport_Files/
5959
ipch/
6060
*.sdf
6161
*.opensdf
62+
*.VC.db
6263
*.VC.opendb
6364
*.VC.db
6465
.vs/
@@ -119,3 +120,6 @@ icu_config.gypi
119120
deps/uv/.github/
120121
deps/uv/docs/code/
121122
deps/uv/docs/src/guide/
123+
124+
# do not override V8's .gitignore
125+
!deps/v8/**

.mailmap

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,8 @@ Kathy Truong <[email protected]> k3kathy <[email protected]>
188188
Kazuyuki Yamada <[email protected]>
189189
Keith M Wesolowski <[email protected]> <[email protected]>
190190
Kelsey Breseman <[email protected]>
191+
Khaidi Chu <[email protected]> XadillaX <[email protected]>
192+
191193
Kiyoshi Nomo <[email protected]> kysnm <[email protected]>
192194
Koichi Kobayashi <[email protected]>
193195
Kris Kowal <[email protected]>
@@ -264,6 +266,7 @@ Roman Klauke <[email protected]> <[email protected]>
264266
Roman Reiss <[email protected]>
265267
266268
Ron Korving <[email protected]> ronkorving <[email protected]>
269+
267270
268271
Ryan Dahl <[email protected]>
269272
Ryan Emery <[email protected]>

AUTHORS

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -911,7 +911,7 @@ HUANG Wei <[email protected]>
911911
912912
Daniel Turing <[email protected]>
913913
Julie Pagano <[email protected]>
914-
Ruben Bridgewater <ruben.bridgewater@fintura.de>
914+
Ruben Bridgewater <ruben@bridgewater.de>
915915
Felix Becker <[email protected]>
916916
Igor Klopov <[email protected]>
917917
Tsarevich Dmitry <[email protected]>
@@ -1493,7 +1493,7 @@ Sreepurna Jasti <[email protected]>
14931493
Rafael Fragoso <[email protected]>
14941494
Andrei Cioromila <[email protected]>
14951495
Frank Lanitz <[email protected]>
1496-
1496+
Khaidi Chu <[email protected]>
14971497
Akshay Iyer <[email protected]>
14981498
Rick Bullotta <[email protected]>
14991499
Rajaram Gaunker <[email protected]>
@@ -1532,7 +1532,6 @@ Dan Homola <[email protected]>
15321532
cornholio <[email protected]>
15331533
Tamás Hódi <[email protected]>
15341534
DuanPengfei <[email protected]>
1535-
Ruben Bridgewater <[email protected]>
15361535
Lakshmi Swetha Gopireddy <[email protected]>
15371536
15381537
Steven Winston <[email protected]>
@@ -2036,5 +2035,34 @@ Hannes Magnusson <[email protected]>
20362035
ChungNgoops <[email protected]>
20372036
Jose M. Palacios Diaz <[email protected]>
20382037
hmammedzadeh <[email protected]>
2038+
2039+
Francisco Gerardo Neri Andriano <[email protected]>
2040+
Shilo Mangam <[email protected]>
2041+
idandagan1 <[email protected]>
2042+
Cameron Moorehead <[email protected]>
2043+
TomerOmri <[email protected]>
2044+
Collins Abitekaniza <[email protected]>
2045+
Federico Kauffman <[email protected]>
2046+
Benno Fünfstück <[email protected]>
2047+
2048+
2049+
Will Clark <[email protected]>
2050+
Jem Bezooyen <[email protected]>
2051+
Haejin Jo <[email protected]>
2052+
Hakan Kimeiga <[email protected]>
2053+
2054+
Shinya Kanamaru <[email protected]>
2055+
2056+
routerman <[email protected]>
2057+
April Webster <[email protected]>
2058+
Jure Triglav <[email protected]>
2059+
2060+
2061+
2062+
2063+
Waleed Ashraf <[email protected]>
2064+
Mir Mufaqam Ali <[email protected]>
2065+
Nicholas Drane <[email protected]>
2066+
Shobhit Chittora <[email protected]>
20392067

20402068
# Generated by tools/update-authors.sh

BUILDING.md

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ Depending on host platform, the selection of toolchains may vary.
9595

9696
### Unix / macOS
9797

98-
Prerequisites:
98+
#### Prerequisites
9999

100100
* `gcc` and `g++` 4.9.4 or newer, or
101101
* `clang` and `clang++` 3.4.2 or newer (macOS: latest Xcode Command Line Tools)
@@ -121,6 +121,8 @@ directory and the symbolic `node` link in the project's root directory.
121121
On FreeBSD and OpenBSD, you may also need:
122122
* libexecinfo
123123

124+
#### Building Node.js
125+
124126
To build Node.js:
125127

126128
```console
@@ -139,13 +141,26 @@ for more information.
139141
Note that the above requires that `python` resolve to Python 2.6 or 2.7
140142
and not a newer version.
141143

142-
To run the tests:
144+
#### Running Tests
145+
146+
To verify the build:
147+
148+
```console
149+
$ make test-only
150+
```
151+
152+
At this point, you are ready to make code changes and re-run the tests.
153+
154+
If you are running tests prior to submitting a Pull Request, the recommended
155+
command is:
143156

144157
```console
145158
$ make test
146159
```
147160

148-
At this point you are ready to make code changes and re-run the tests!
161+
`make test` does a full check on the codebase, including running linters and
162+
documentation tests.
163+
149164
Optionally, continue below.
150165

151166
To run the tests and generate code coverage reports:
@@ -167,6 +182,8 @@ reports:
167182
$ make coverage-clean
168183
```
169184

185+
#### Building the documentation
186+
170187
To build the documentation:
171188

172189
This will build Node.js first (if necessary) and then use it to build the docs:
@@ -218,8 +235,11 @@ Prerequisites:
218235
* Basic Unix tools required for some tests,
219236
[Git for Windows](http://git-scm.com/download/win) includes Git Bash
220237
and tools which can be included in the global `PATH`.
238+
* **Optional** (to build the MSI): the [WiX Toolset v3.11](http://wixtoolset.org/releases/)
239+
and the [Wix Toolset Visual Studio 2017 Extension](https://marketplace.visualstudio.com/items?itemName=RobMensching.WixToolsetVisualStudio2017Extension).
221240

222-
If the path to your build directory contains a space, the build will likely fail.
241+
If the path to your build directory contains a space or a non-ASCII character, the
242+
build will likely fail.
223243

224244
```console
225245
> .\vcbuild
@@ -389,3 +409,26 @@ and [user guide](https://openssl.org/docs/fips/UserGuide-2.0.pdf).
389409
`/usr/local/ssl/fips-2.0`
390410
8. Build Node.js with `make -j`
391411
9. Verify with `node -p "process.versions.openssl"` (for example `1.0.2a-fips`)
412+
413+
## Building Node.js with external core modules
414+
415+
It is possible to specify one or more JavaScript text files to be bundled in
416+
the binary as builtin modules when building Node.js.
417+
418+
### Unix / macOS
419+
420+
This command will make `/root/myModule.js` available via
421+
`require('/root/myModule')` and `./myModule2.js` available via
422+
`require('myModule2')`.
423+
424+
```console
425+
$ ./configure --link-module '/root/myModule.js' --link-module './myModule2.js'
426+
```
427+
428+
### Windows
429+
430+
To make `./myCustomModule.js` available via `require('myCustomModule')`.
431+
432+
```console
433+
> .\vcbuild link-module './myCustomModule.js'
434+
```

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ release.
2727
</tr>
2828
<tr>
2929
<td valign="top">
30-
<b><a href="doc/changelogs/CHANGELOG_V8.md#8.9.4">8.9.4</a></b><br/>
30+
<b><a href="doc/changelogs/CHANGELOG_V8.md#8.10.0">8.10.0</a></b><br/>
31+
<a href="doc/changelogs/CHANGELOG_V8.md#8.9.4">8.9.4</a><br/>
3132
<a href="doc/changelogs/CHANGELOG_V8.md#8.9.3">8.9.3</a><br/>
3233
<a href="doc/changelogs/CHANGELOG_V8.md#8.9.2">8.9.2</a><br/>
3334
<a href="doc/changelogs/CHANGELOG_V8.md#8.9.1">8.9.1</a><br/>

COLLABORATOR_GUIDE.md

Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
* [Issues and Pull Requests](#issues-and-pull-requests)
66
- [Managing Issues and Pull Requests](#managing-issues-and-pull-requests)
7-
- [Welcoming First-Time Contributiors](#welcoming-first-time-contributiors)
7+
- [Welcoming First-Time Contributors](#welcoming-first-time-contributors)
88
- [Closing Issues and Pull Requests](#closing-issues-and-pull-requests)
99
* [Accepting Modifications](#accepting-modifications)
1010
- [Code Reviews and Consensus Seeking](#code-reviews-and-consensus-seeking)
@@ -33,7 +33,7 @@
3333
- [How is an LTS release cut?](#how-is-an-lts-release-cut)
3434

3535
This document contains information for Collaborators of the Node.js
36-
project regarding maintaining the code, documentation, and issues.
36+
project regarding managing the project's code, documentation, and issue tracker.
3737

3838
Collaborators should be familiar with the guidelines for new
3939
contributors in [CONTRIBUTING.md](./CONTRIBUTING.md) and also
@@ -52,11 +52,11 @@ may also notify other qualified parties for more input on an issue
5252
or a pull request.
5353
[See "Who to CC in issues"](./doc/onboarding-extras.md#who-to-cc-in-issues)
5454

55-
### Welcoming First-Time Contributiors
55+
### Welcoming First-Time Contributors
5656

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

6161
For first-time contributors, check if the commit author is the same as the
6262
pull request author, and ask if they have configured their git
@@ -116,18 +116,25 @@ oppose the PR, it can be landed. Where there is disagreement among TSC members
116116
or objections from one or more Collaborators, `semver-major` pull requests
117117
should be put on the TSC meeting agenda.
118118

119+
#### Helpful resources
120+
121+
* 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/)
122+
* [How to write a positive code review](https://css-tricks.com/code-review-etiquette/)
123+
119124
### Waiting for Approvals
120125

121126
Before landing pull requests, sufficient time should be left for input
122127
from other Collaborators. In general, leave at least 48 hours during the
123128
week and 72 hours over weekends to account for international time
124129
differences and work schedules. However, certain types of pull requests
125-
can be fast-tracked and may be landed after a shorter delay:
130+
can be fast-tracked and may be landed after a shorter delay. For example:
126131

127-
* Focused changes that affect only documentation and/or the test suite.
128-
`code-and-learn` and `good-first-issue` pull requests typically fall
129-
into this category.
130-
* Changes that fix regressions.
132+
* Focused changes that affect only documentation and/or the test suite:
133+
* `code-and-learn` tasks typically fall into this category.
134+
* `good-first-issue` pull requests may also be suitable.
135+
* Changes that fix regressions:
136+
* Regressions that break the workflow (red CI or broken compilation).
137+
* Regressions that happen right before a release, or reported soon after.
131138

132139
When a pull request is deemed suitable to be fast-tracked, label it with
133140
`fast-track`. The pull request can be landed once 2 or more Collaborators
@@ -142,6 +149,7 @@ test should *fail* before the change, and *pass* after the change.
142149
All pull requests that modify executable code should be subjected to
143150
continuous integration tests on the
144151
[project CI server](https://ci.nodejs.org/).
152+
The pull request should have a CI status indicator if possible.
145153

146154
#### Useful CI Jobs
147155

@@ -200,11 +208,10 @@ Node.js API are internal:
200208
- Any native C/C++ APIs/ABIs exported by the Node.js `*.h` header files that
201209
are hidden behind the `NODE_WANT_INTERNALS` flag are internal.
202210

203-
Exception to each of these points can be made if use or behavior of a given
204-
internal API can be demonstrated to be sufficiently relied upon by the Node.js
205-
ecosystem such that any changes would cause too much breakage. The threshold
206-
for what qualifies as too much breakage is to be decided on a case-by-case
207-
basis by the TSC.
211+
Exceptions can be made if use or behavior of a given internal API can be
212+
demonstrated to be sufficiently relied upon by the Node.js ecosystem such that
213+
any changes would cause too much breakage. The threshold for what qualifies as
214+
too much breakage is to be decided on a case-by-case basis by the TSC.
208215

209216
If it is determined that a currently undocumented object, property, method,
210217
argument, or event *should* be documented, then a pull request adding the
@@ -243,14 +250,14 @@ properties to an options argument) are semver-minor changes.
243250

244251
#### Breaking Changes and Deprecations
245252

246-
With a few notable exceptions outlined below, when backwards incompatible
247-
changes to a *Public* API are necessary, the existing API *must* be deprecated
248-
*first* and the new API either introduced in parallel or added after the next
249-
major Node.js version following the deprecation as a replacement for the
250-
deprecated API. In other words, as a general rule, existing *Public* APIs
251-
*must not* change (in a backwards incompatible way) without a deprecation.
253+
With a few exceptions outlined below, when backward-incompatible changes to a
254+
*Public* API are necessary, the existing API *must* be deprecated *first* and
255+
the new API either introduced in parallel or added after the next major Node.js
256+
version following the deprecation as a replacement for the deprecated API. In
257+
other words, as a general rule, existing *Public* APIs *must not* change (in a
258+
backward-incompatible way) without a deprecation.
252259

253-
Exception to this rule is given in the following cases:
260+
Exceptions to this rule may be made in the following cases:
254261

255262
* Adding or removing errors thrown or reported by a Public API;
256263
* Changing error messages;
@@ -351,7 +358,7 @@ recommended but not required.
351358
### Deprecations
352359

353360
_Deprecation_ refers to the identification of Public APIs that should no longer
354-
be used and that may be removed or modified in non-backwards compatible ways in
361+
be used and that may be removed or modified in backward-incompatible ways in
355362
a future major release of Node.js. Deprecation may be used with internal APIs if
356363
there is expected impact on the user community.
357364

@@ -430,7 +437,7 @@ The TSC should serve as the final arbiter where required.
430437
author when squashing.
431438

432439
Review the commit message to ensure that it adheres to the guidelines outlined
433-
in the [contributing](./CONTRIBUTING.md#commit-message-guidelines) guide.
440+
in the [contributing](./doc/guides/contributing/pull-requests.md#commit-message-guidelines) guide.
434441

435442
Add all necessary [metadata](#metadata) to commit messages before landing.
436443

@@ -460,7 +467,7 @@ $ git checkout master
460467
```
461468

462469
Update the tree (assumes your repo is set up as detailed in
463-
[CONTRIBUTING.md](CONTRIBUTING.md#step-1-fork)):
470+
[CONTRIBUTING.md](./doc/guides/contributing/pull-requests.md#step-1-fork)):
464471

465472
```text
466473
$ git fetch upstream
@@ -491,7 +498,7 @@ Check and re-review the changes:
491498
$ git diff upstream/master
492499
```
493500

494-
Check number of commits and commit messages:
501+
Check the number of commits and commit messages:
495502

496503
```text
497504
$ git log upstream/master...master
@@ -555,7 +562,7 @@ commit logs, ensure that they are properly formatted, and add
555562
`Reviewed-By` lines.
556563

557564
* The commit message text must conform to the
558-
[commit message guidelines](./CONTRIBUTING.md#commit-message-guidelines).
565+
[commit message guidelines](./doc/guides/contributing/pull-requests.md#commit-message-guidelines).
559566

560567
<a name="metadata"></a>
561568
* Modify the original commit message to include additional metadata regarding
@@ -616,7 +623,7 @@ error: failed to push some refs to 'https://github.com/nodejs/node'
616623
hint: Updates were rejected because the remote contains work that you do
617624
hint: not have locally. This is usually caused by another repository pushing
618625
hint: to the same ref. You may want to first integrate the remote changes
619-
hint: (e.g., 'git pull ...') before pushing again.
626+
hint: (e.g. 'git pull ...') before pushing again.
620627
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
621628
```
622629

@@ -652,7 +659,7 @@ commit final.
652659
#### What is LTS?
653660

654661
Long Term Support (often referred to as *LTS*) guarantees application developers
655-
a 30 month support cycle with specific versions of Node.js.
662+
a 30-month support cycle with specific versions of Node.js.
656663

657664
You can find more information
658665
[in the full release plan](https://github.com/nodejs/Release#release-plan).
@@ -665,7 +672,7 @@ certain performance improvements that can be demonstrated to not break existing
665672
applications. Semver-minor changes are only permitted if required for bug fixes
666673
and then only on a case-by-case basis with LTS WG and possibly Technical
667674
Steering Committee (TSC) review. Semver-major changes are permitted only if
668-
required for security related fixes.
675+
required for security-related fixes.
669676

670677
Once a Current branch moves into Maintenance mode, only **critical** bugs,
671678
**critical** security fixes, and documentation updates will be permitted.

0 commit comments

Comments
 (0)