Skip to content

Commit ad4d427

Browse files
authored
Merge branch 'main' into file-cloneable
2 parents e39b1b5 + 595b2b3 commit ad4d427

File tree

168 files changed

+9135
-469
lines changed

Some content is hidden

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

168 files changed

+9135
-469
lines changed

.github/label-pr-config.yml

Lines changed: 37 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
## earlier entries override later entries
33
subSystemLabels:
44
# src subsystems
5-
/^src\/async-wrap/: c++, async_wrap
5+
/^src\/async_wrap/: c++, async_wrap
66
/^src\/(?:base64|node_buffer|string_)/: c++, buffer
77
/^src\/cares/: c++, cares
88
/^src\/(?:process_wrap|spawn_)/: c++, child_process
99
/^src\/(?:node_)?crypto/: c++, crypto
10-
/^src\/(?:debug-|node_debug)/: c++, debugger
10+
/^src\/debug_/: c++, debugger
1111
/^src\/udp_/: c++, dgram
1212
/^src\/(?:fs_|node_file|node_stat_watcher)/: c++, fs
1313
/^src\/node_http_parser/: c++, http_parser
@@ -16,14 +16,13 @@ subSystemLabels:
1616
/^src\/(?:connect(?:ion)?|pipe|tcp)_/: c++, net
1717
/^src\/node_os/: c++, os
1818
/^src\/(?:node_main|signal_)/: c++, process
19-
/^src\/timer_/: c++, timers
20-
/^src\/(?:CNNICHashWhitelist|node_root_certs|tls_)/: c++, tls
19+
/^src\/timer[_s]/: c++, timers
20+
/^src\/node_root_certs/: c++, tls
2121
/^src\/tty_/: c++, tty
2222
/^src\/node_url/: c++, whatwg-url
2323
/^src\/node_util/: c++, util
2424
/^src\/node_v8/: c++, v8 engine
2525
/^src\/node_contextify/: c++, vm
26-
/^src\/.*win32.*/: c++, windows
2726
/^src\/node_zlib/: c++, zlib
2827
/^src\/tracing/: c++, tracing
2928
/^src\/(?:node_api|js_native_api)/: c++, node-api
@@ -35,48 +34,44 @@ subSystemLabels:
3534
/^src\/node_bob*/: c++, quic, dont-land-on-v14.x
3635
/^src\/node_sea/: single-executable
3736

38-
# don't label python files as c++
39-
/^src\/.+\.py$/: python, needs-ci
40-
41-
# properly label changes to v8 inspector integration-related files
37+
# Properly label changes to V8 inspector integration-related files
4238
/^src\/inspector_/: c++, inspector, needs-ci
4339

44-
# don't want to label it a c++ update when we're "only" bumping the Node.js version
40+
# Don't want to label it a C++ update when we're "only" bumping the Node.js version
4541
/^src\/(?!node_version\.h)/: c++
4642
# BUILDING.md should be marked as 'build' in addition to 'doc'
4743
/^BUILDING\.md$/: build, doc
48-
# meta is a very specific label for things that are policy and or meta-info related
49-
/^([A-Z]+$|CODE_OF_CONDUCT|ROADMAP|WORKING_GROUPS|GOVERNANCE|CHANGELOG|\.mail|\.git.+)/: meta
50-
# things that edit top-level .md files are always a doc change
44+
# 'meta' is a very specific label for things that are policy and or meta-info related
45+
/^(?:[A-Z]+$|CODE_OF_CONDUCT|GOVERNANCE|CHANGELOG|\.mail|\.git.+)/: meta
46+
# Things that edit top-level .md files are always a doc change
5147
/^\w+\.md$/: doc
52-
# different variants of *Makefile and build files
53-
/^(tools\/)?(Makefile|BSDmakefile|create_android_makefiles|\.travis\.yml)$/: build, needs-ci
54-
/^tools\/(install\.py|genv8constants\.py|getnodeversion\.py|js2c\.py|utils\.py|configure\.d\/.*)$/: build, python, needs-ci
48+
# Different variants of Makefile and build files
49+
/^(?:tools\/)?(?:Makefile|BSDmakefile|create_android_makefiles)$/: build, needs-ci
50+
/^tools\/(?:install\.py|genv8constants\.py|getnodeversion\.py|js2c\.py|utils\.py|configure\.d\/.*)$/: build, python, needs-ci
5551
/^vcbuild\.bat$/: build, windows, needs-ci
56-
/^(android-)?configure|node\.gyp|common\.gypi$/: build, needs-ci
57-
# more specific tools
52+
/^(?:android-)?configure|node\.gyp|common\.gypi$/: build, needs-ci
53+
# More specific tools
5854
/^tools\/gyp/: tools, build, gyp, needs-ci, dont-land-on-v14.x
5955
/^tools\/doc\//: tools, doc
6056
/^tools\/icu\//: tools, i18n-api, icu, needs-ci
61-
/^tools\/(?:osx-pkg\.pmdoc|pkgsrc)\//: tools, macos, install
62-
/^tools\/(?:(?:mac)?osx-)/: tools, macos
57+
/^tools\/osx-/: tools, macos
6358
/^tools\/test-npm/: tools, test, npm
6459
/^tools\/test/: tools, test
6560
/^tools\/(?:certdata|mkssldef|mk-ca-bundle)/: tools, openssl, tls
6661
/^tools\/msvs\//: tools, windows, install, needs-ci
6762
/^tools\/[^/]+\.bat$/: tools, windows, needs-ci
6863
/^tools\/make-v8/: tools, v8 engine, needs-ci
6964
/^tools\/v8_gypfiles/: tools, v8 engine, needs-ci
70-
/^tools\/(code_cache|snapshot)/: needs-ci
65+
/^tools\/snapshot/: needs-ci
7166
/^tools\/build-addons.mjs/: needs-ci
72-
# all other tool changes should be marked as such
67+
# All other tool changes should be marked as such
7368
/^tools\//: tools
74-
/^\.eslint|\.remark|\.editorconfig/: tools
69+
/^\.eslint|\.editorconfig/: tools
7570
/^typings\//: typings
7671

7772
## Dependencies
7873
# libuv needs an explicit mapping, as the ordinary /deps/ mapping below would
79-
# end up as libuv changes labeled with "uv" (which is a non-existing label)
74+
# end up as libuv changes labeled with 'uv' (which is a non-existing label)
8075
/^deps\/uv\//: libuv
8176
/^deps\/v8\/tools\/gen-postmortem-metadata\.py/: v8 engine, python, post-mortem
8277
/^deps\/v8\//: v8 engine
@@ -85,18 +80,17 @@ subSystemLabels:
8580
/^deps\/nghttp2\/nghttp2\.gyp/: build, http2
8681
/^deps\/nghttp2\//: http2
8782
/^deps\/ngtcp2\//: quic, dont-land-on-v14.x
88-
/^deps\/nghttp3\//: quic, dont-land-on-v14.x
8983
/^deps\/([^/]+)/: dependencies, $1
9084

9185
## JS subsystems
9286
# Oddities first
93-
/^lib\/(punycode|\w+\/freelist|sys\.js)/: ''
87+
/^lib\/(?:punycode|\w+\/freelist|sys\.js)/: ''
9488
/^lib\/constants\.js$/: lib / src
95-
/^lib\/_(debug_agent|debugger)\.js$/: debugger
96-
/^lib(\/\w+)?\/(_)?link(ed)?list/: timers
97-
/^lib\/\w+\/bootstrap_node/: lib / src
98-
/^lib\/\w+\/v8_prof_/: tools
99-
/^lib\/\w+\/socket_list/: net
89+
/^lib\/internal/debugger$/: debugger
90+
/^lib\/internal\/linkedlist\.js$/: timers
91+
/^lib\/internal\/bootstrap/: lib / src
92+
/^lib\/internal\/v8_prof_/: tools
93+
/^lib\/internal\/socket(?:_list|address)\.js$/: net
10094
/^lib\/\w+\/streams$/: stream
10195
/^lib\/.*http2/: http2
10296
/^lib\/worker_threads.js$/: worker
@@ -112,22 +106,21 @@ subSystemLabels:
112106
/^lib(?:\/internal)?\/(\w+)(?:\/|$)/: $1 # Subfolders
113107

114108
exlusiveLabels:
115-
# more specific tests
109+
# More specific tests
116110
/^test\/addons\//: test, addons
117-
/^test\/debugger\//: test, debugger
111+
/^test\/debugger/: test, debugger
118112
/^test\/doctool\//: test, doc, tools
119-
/^test\/timers\//: test, timers
113+
/^test\/timers/: test, timers
120114
/^test\/pseudo-tty\//: test, tty
121-
/^test\/inspector\//: test, inspector
115+
/^test\/inspector/: test, inspector
122116
/^test\/cctest\/test_inspector/: test, inspector
123-
/^test\/cctest\/test_url/: test, whatwg-url
124117
/^test\/node-api\//: test, node-api
125118
/^test\/js-native-api\//: test, node-api
126119
/^test\/async-hooks\//: test, async_hooks
127120
/^test\/report\//: test, report
128121
/^test\/fixtures\/es-module/: test, esm
129122
/^test\/es-module\//: test, esm
130-
/^test\/fixtures\/wpt\/streams//: test, web streams
123+
/^test\/fixtures\/wpt\/streams\//: test, web streams
131124

132125
/^test\//: test
133126

@@ -138,11 +131,9 @@ exlusiveLabels:
138131
# node-api is treated separately since it is not a JS core module but is still
139132
# considered a subsystem of sorts
140133
/^doc\/api\/n-api.md$/: doc, node-api
141-
# quic
142-
/^doc\/api\/quic.md$/: doc, quic, dont-land-on-v14.x
143134
# Add worker label to PRs that affect doc/api/worker_threads.md
144135
/^doc\/api\/worker_threads.md$/: doc, worker
145-
# test runner documentation
136+
# test_runner documentation
146137
/^doc\/api\/test.md$/: doc, test_runner, dont-land-on-v14.x
147138
# Automatically tag JS subsystem-specific API doc changes
148139
/^doc\/api\/(\w+)\.md$/: doc, $1
@@ -154,7 +145,7 @@ exlusiveLabels:
154145

155146
# More specific benchmarks
156147
/^benchmark\/buffers\//: benchmark, buffer
157-
/^benchmark\/(?:arrays|es)\//: benchmark, v8 engine
148+
/^benchmark\/es\//: benchmark, v8 engine
158149
/^benchmark\/_http/: benchmark, http
159150
/^benchmark\/(?:misc|fixtures)\//: benchmark
160151
/^benchmark\/streams\//: benchmark, stream
@@ -173,6 +164,7 @@ allJsSubSystems:
173164
- crypto
174165
- debugger
175166
- dgram
167+
- diagnostics_channel
176168
- dns
177169
- domain
178170
- events
@@ -181,11 +173,14 @@ allJsSubSystems:
181173
- http
182174
- https
183175
- http2
176+
- inspector
184177
- module
185178
- net
186179
- os
187180
- path
181+
- perf_hooks
188182
- process
183+
- punycode
189184
- querystring
190185
- quic
191186
- readline
@@ -195,6 +190,7 @@ allJsSubSystems:
195190
- string_decoder
196191
- timers
197192
- tls
193+
- trace_events
198194
- tty
199195
- typings
200196
- url

.github/workflows/find-inactive-tsc.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,4 @@ jobs:
5959
commit-message: 'meta: move TSC voting member(s) to regular member(s)'
6060
labels: meta
6161
title: 'meta: move TSC voting member(s) to regular member(s)'
62+
update-pull-request-title-and-body: true

.github/workflows/timezone-update.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,4 @@ jobs:
5959
labels: dependencies
6060
title: 'deps: update timezone to ${{ env.new_version }}'
6161
reviewers: \@nodejs/i18n-api
62+
update-pull-request-title-and-body: true

.github/workflows/tools.yml

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,36 @@ on:
55
- cron: 5 0 * * 0
66

77
workflow_dispatch:
8+
inputs:
9+
id:
10+
description: The ID of the job to run
11+
required: true
12+
default: all
13+
type: choice
14+
options:
15+
- all
16+
- acorn
17+
- acorn-walk
18+
- ada
19+
- base64
20+
- brotli
21+
- c-ares
22+
- cjs-module-lexer
23+
- corepack
24+
- doc
25+
- eslint
26+
- googletest
27+
- libuv
28+
- lint-md-dependencies
29+
- llhttp
30+
- nghttp2
31+
- nghttp3
32+
- ngtcp2
33+
- postject
34+
- root-certificates
35+
- simdutf
36+
- undici
37+
- uvwasi
838

939
permissions:
1040
contents: read
@@ -161,6 +191,14 @@ jobs:
161191
cat temp-output
162192
tail -n1 temp-output | grep "NEW_VERSION=" >> "$GITHUB_ENV" || true
163193
rm temp-output
194+
- id: minimatch
195+
subsystem: deps
196+
label: dependencies
197+
run: |
198+
./tools/dep_updaters/update-minimatch.sh > temp-output
199+
cat temp-output
200+
tail -n1 temp-output | grep "NEW_VERSION=" >> "$GITHUB_ENV" || true
201+
rm temp-output
164202
- id: root-certificates
165203
subsystem: crypto
166204
label: crypto, notable-change
@@ -198,18 +236,37 @@ jobs:
198236
cat temp-output
199237
tail -n1 temp-output | grep "NEW_VERSION=" >> "$GITHUB_ENV" || true
200238
rm temp-output
239+
- id: zlib
240+
subsystem: deps
241+
label: dependencies
242+
run: |
243+
./tools/dep_updaters/update-zlib.sh > temp-output
244+
cat temp-output
245+
tail -n1 temp-output | grep "NEW_VERSION=" >> "$GITHUB_ENV" || true
246+
rm temp-output
247+
- id: googletest
248+
subsystem: deps
249+
label: dependencies, test
250+
run: |
251+
./tools/dep_updaters/update-googletest.sh > temp-output
252+
cat temp-output
253+
tail -n1 temp-output | grep "NEW_VERSION=" >> "$GITHUB_ENV" || true
254+
rm temp-output
201255
steps:
202256
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
257+
if: github.event_name == 'schedule' || inputs.id == 'all' || inputs.id == matrix.id
203258
with:
204259
persist-credentials: false
205260
- run: ${{ matrix.run }}
261+
if: github.event_name == 'schedule' || inputs.id == 'all' || inputs.id == matrix.id
206262
env:
207263
GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }}
208264
- name: Generate commit message if not set
209-
if: ${{ env.COMMIT_MSG == '' }}
265+
if: env.COMMIT_MSG == '' && (github.event_name == 'schedule' || inputs.id == 'all' || inputs.id == matrix.id)
210266
run: |
211267
echo "COMMIT_MSG=${{ matrix.subsystem }}: update ${{ matrix.id }} to ${{ env.NEW_VERSION }}" >> "$GITHUB_ENV"
212268
- uses: gr2m/create-or-update-pull-request-action@77596e3166f328b24613f7082ab30bf2d93079d5
269+
if: github.event_name == 'schedule' || inputs.id == 'all' || inputs.id == matrix.id
213270
# Creates a PR or update the Action's existing PR, or
214271
# no-op if the base branch is already up-to-date.
215272
env:
@@ -221,3 +278,4 @@ jobs:
221278
commit-message: ${{ env.COMMIT_MSG }}
222279
labels: ${{ matrix.label }}
223280
title: '${{ matrix.subsystem }}: update ${{ matrix.id }} to ${{ env.NEW_VERSION }}'
281+
update-pull-request-title-and-body: true

.github/workflows/update-openssl.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ jobs:
5151
labels: dependencies
5252
title: 'deps: update OpenSSL to ${{ env.NEW_VERSION }}'
5353
path: deps/openssl
54+
update-pull-request-title-and-body: true
5455
- name: Regenerate platform specific files
5556
if: env.HAS_UPDATE
5657
run: |

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
Select a Node.js version below to view the changelog history:
44

5+
* [Node.js 20](doc/changelogs/CHANGELOG_V20.md) **Current**
56
* [Node.js 19](doc/changelogs/CHANGELOG_V19.md) **Current**
67
* [Node.js 18](doc/changelogs/CHANGELOG_V18.md) **Long Term Support**
78
* [Node.js 17](doc/changelogs/CHANGELOG_V17.md) End-of-Life
@@ -28,13 +29,17 @@ release.
2829

2930
<table>
3031
<tr>
32+
<th title="Current"><a href="doc/changelogs/CHANGELOG_V20.md">20</a> (Current)</th>
3133
<th title="Current"><a href="doc/changelogs/CHANGELOG_V19.md">19</a> (Current)</th>
3234
<th title="LTS Until 2025-04"><a href="doc/changelogs/CHANGELOG_V18.md">18</a> (LTS)</th>
3335
<th title="LTS Until 2023-09"><a href="doc/changelogs/CHANGELOG_V16.md">16</a> (LTS)</th>
3436
<th title="LTS Until 2023-04"><a href="doc/changelogs/CHANGELOG_V14.md">14</a> (LTS)</th>
3537
</tr>
3638
<tr>
3739
<td valign="top">
40+
<b><a href="doc/changelogs/CHANGELOG_V20.md#20.0.0">20.0.0</a></b><br/>
41+
</td>
42+
<td valign="top">
3843
<b><a href="doc/changelogs/CHANGELOG_V19.md#19.9.0">19.9.0</a></b><br/>
3944
<a href="doc/changelogs/CHANGELOG_V19.md#19.8.1">19.8.1</a><br/>
4045
<a href="doc/changelogs/CHANGELOG_V19.md#19.8.0">19.8.0</a><br/>

LICENSE

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1365,6 +1365,25 @@ The externally maintained libraries used by Node.js are:
13651365
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
13661366
"""
13671367

1368+
- minimatch, located at deps/minimatch, is licensed as follows:
1369+
"""
1370+
The ISC License
1371+
1372+
Copyright (c) 2011-2023 Isaac Z. Schlueter and Contributors
1373+
1374+
Permission to use, copy, modify, and/or distribute this software for any
1375+
purpose with or without fee is hereby granted, provided that the above
1376+
copyright notice and this permission notice appear in all copies.
1377+
1378+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1379+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1380+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1381+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1382+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1383+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
1384+
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1385+
"""
1386+
13681387
- npm, located at deps/npm, is licensed as follows:
13691388
"""
13701389
The npm application

Makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -592,8 +592,7 @@ test-wpt: all
592592
test-wpt-report:
593593
$(RM) -r out/wpt
594594
mkdir -p out/wpt
595-
-WPT_REPORT=1 $(PYTHON) tools/test.py --shell $(NODE) $(PARALLEL_ARGS) wpt
596-
$(NODE) "$$PWD/tools/merge-wpt-reports.mjs"
595+
WPT_REPORT=1 $(PYTHON) tools/test.py --shell $(NODE) $(PARALLEL_ARGS) wpt
597596

598597
.PHONY: test-internet
599598
test-internet: all

0 commit comments

Comments
 (0)