Skip to content

Commit 31c27d3

Browse files
author
Giovanni Bucci
authored
Merge branch 'nodejs:main' into assert-make-myers-more-performant
2 parents f719438 + 6b3937a commit 31c27d3

File tree

584 files changed

+34238
-7182
lines changed

Some content is hidden

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

584 files changed

+34238
-7182
lines changed

.github/dependabot.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ updates:
88
interval: monthly
99
commit-message:
1010
prefix: meta
11-
open-pull-requests-limit: 10
11+
open-pull-requests-limit: ${{secrets.OPEN_PR_LIMIT}}
1212

1313
- package-ecosystem: npm
1414
directory: /tools/eslint
1515
schedule:
1616
interval: monthly
1717
commit-message:
1818
prefix: tools
19-
open-pull-requests-limit: 10
19+
open-pull-requests-limit: ${{secrets.OPEN_PR_LIMIT}}
2020
groups:
2121
eslint:
2222
applies-to: version-updates
@@ -29,7 +29,7 @@ updates:
2929
interval: monthly
3030
commit-message:
3131
prefix: tools
32-
open-pull-requests-limit: 10
32+
open-pull-requests-limit: ${{secrets.OPEN_PR_LIMIT}}
3333
groups:
3434
lint-md:
3535
applies-to: version-updates

.github/workflows/test-linux.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ jobs:
4040
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
4141
with:
4242
persist-credentials: false
43+
path: node
4344
- name: Set up Python ${{ env.PYTHON_VERSION }}
4445
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
4546
with:
@@ -51,6 +52,13 @@ jobs:
5152
- name: Environment Information
5253
run: npx envinfo
5354
- name: Build
54-
run: make build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn"
55+
run: make -C node build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn"
5556
- name: Test
56-
run: make run-ci -j4 V=1 TEST_CI_ARGS="-p actions --node-args='--test-reporter=spec' --node-args='--test-reporter-destination=stdout' --measure-flakiness 9"
57+
run: make -C node run-ci -j4 V=1 TEST_CI_ARGS="-p actions --node-args='--test-reporter=spec' --node-args='--test-reporter-destination=stdout' --measure-flakiness 9"
58+
- name: Re-run test in a folder whose name contains unusual chars
59+
run: |
60+
mv node "$DIR"
61+
cd "$DIR"
62+
./tools/test.py --flaky-tests keep_retrying -p actions -j 4
63+
env:
64+
DIR: dir%20with $unusual"chars?'åß∂ƒ©∆¬…`

.github/workflows/test-macos.yml

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@ permissions:
3838
jobs:
3939
test-macOS:
4040
if: github.event.pull_request.draft == false
41-
runs-on: macos-14
41+
strategy:
42+
fail-fast: false
43+
matrix:
44+
macos-version: [macos-13, macos-14]
45+
runs-on: ${{ matrix.macos-version }}
4246
env:
4347
CC: sccache gcc
4448
CXX: sccache g++
@@ -47,6 +51,7 @@ jobs:
4751
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
4852
with:
4953
persist-credentials: false
54+
path: node
5055
- name: Set up Python ${{ env.PYTHON_VERSION }}
5156
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
5257
with:
@@ -64,7 +69,7 @@ jobs:
6469
# happen anymore running this step here first, that's also useful
6570
# information.)
6671
- name: tools/doc/node_modules workaround
67-
run: make tools/doc/node_modules
72+
run: make -C node tools/doc/node_modules
6873
# This is needed due to https://github.com/nodejs/build/issues/3878
6974
- name: Cleanup
7075
run: |
@@ -80,8 +85,15 @@ jobs:
8085
df -h
8186
echo "::endgroup::"
8287
- name: Build
83-
run: make build-ci -j$(getconf _NPROCESSORS_ONLN) V=1 CONFIG_FLAGS="--error-on-warn"
88+
run: make -C node build-ci -j$(getconf _NPROCESSORS_ONLN) V=1 CONFIG_FLAGS="--error-on-warn"
8489
- name: Free Space After Build
8590
run: df -h
8691
- name: Test
87-
run: make run-ci -j$(getconf _NPROCESSORS_ONLN) V=1 TEST_CI_ARGS="-p actions --node-args='--test-reporter=spec' --node-args='--test-reporter-destination=stdout' --measure-flakiness 9"
92+
run: make -C node run-ci -j$(getconf _NPROCESSORS_ONLN) V=1 TEST_CI_ARGS="-p actions --node-args='--test-reporter=spec' --node-args='--test-reporter-destination=stdout' --measure-flakiness 9"
93+
- name: Re-run test in a folder whose name contains unusual chars
94+
run: |
95+
mv node "$DIR"
96+
cd "$DIR"
97+
./tools/test.py --flaky-tests keep_retrying -p actions -j 4
98+
env:
99+
DIR: dir%20with $unusual"chars?'åß∂ƒ©∆¬…`

BUILDING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,8 @@ Binaries at <https://nodejs.org/download/release/> are produced on:
162162
| Binary package | Platform and Toolchain |
163163
| ----------------------- | ------------------------------------------------------------------------------------------------------------- |
164164
| aix-ppc64 | AIX 7.2 TL04 on PPC64BE with GCC 12[^5] |
165-
| darwin-x64 | macOS 11, Xcode 13 with -mmacosx-version-min=11.0 |
166-
| darwin-arm64 (and .pkg) | macOS 11 (arm64), Xcode 13 with -mmacosx-version-min=11.0 |
165+
| darwin-x64 | macOS 13, Xcode 16 with -mmacosx-version-min=11.0 |
166+
| darwin-arm64 (and .pkg) | macOS 13 (arm64), Xcode 14 with -mmacosx-version-min=11.0 |
167167
| linux-arm64 | RHEL 8 with gcc-toolset-12[^6] |
168168
| linux-armv7l | Cross-compiled on RHEL 9 x64 with a [custom GCC toolchain](https://github.com/rvagg/rpi-newer-crosstools)[^7] |
169169
| linux-ppc64le | RHEL 8 with gcc-toolset-12[^6] |

CHANGELOG.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,17 @@ release.
3939
</tr>
4040
<tr>
4141
<td valign="top">
42-
<b><a href="doc/changelogs/CHANGELOG_V23.md#23.4.0">23.4.0</a></b><br/>
42+
<b><a href="doc/changelogs/CHANGELOG_V23.md#23.6.0">23.6.0</a></b><br/>
43+
<a href="doc/changelogs/CHANGELOG_V23.md#23.5.0">23.5.0</a><br/>
44+
<a href="doc/changelogs/CHANGELOG_V23.md#23.4.0">23.4.0</a><br/>
4345
<a href="doc/changelogs/CHANGELOG_V23.md#23.3.0">23.3.0</a><br/>
4446
<a href="doc/changelogs/CHANGELOG_V23.md#23.2.0">23.2.0</a><br/>
4547
<a href="doc/changelogs/CHANGELOG_V23.md#23.1.0">23.1.0</a><br/>
4648
<a href="doc/changelogs/CHANGELOG_V23.md#23.0.0">23.0.0</a><br/>
4749
</td>
4850
<td valign="top">
49-
<b><a href="doc/changelogs/CHANGELOG_V22.md#22.12.0">22.12.0</a></b><br/>
51+
<b><a href="doc/changelogs/CHANGELOG_V22.md#22.13.0">22.13.0</a></b><br/>
52+
<a href="doc/changelogs/CHANGELOG_V22.md#22.12.0">22.12.0</a><br/>
5053
<a href="doc/changelogs/CHANGELOG_V22.md#22.11.0">22.11.0</a><br/>
5154
<a href="doc/changelogs/CHANGELOG_V22.md#22.10.0">22.10.0</a><br/>
5255
<a href="doc/changelogs/CHANGELOG_V22.md#22.9.0">22.9.0</a><br/>

Makefile

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,6 @@ coverage-report-js: ## Report JavaScript coverage results.
294294
cctest: all ## Run the C++ tests using the built `cctest` executable.
295295
@out/$(BUILDTYPE)/$@ --gtest_filter=$(GTEST_FILTER)
296296
$(NODE) ./test/embedding/test-embedding.js
297-
$(NODE) ./test/sqlite/test-sqlite-extensions.mjs
298297

299298
.PHONY: list-gtests
300299
list-gtests: ## List all available C++ gtests.
@@ -312,7 +311,7 @@ v8: ## Build deps/v8.
312311
tools/make-v8.sh $(V8_ARCH).$(BUILDTYPE_LOWER) $(V8_BUILD_OPTIONS)
313312

314313
.PHONY: jstest
315-
jstest: build-addons build-js-native-api-tests build-node-api-tests ## Run addon tests and JS tests.
314+
jstest: build-addons build-js-native-api-tests build-node-api-tests build-sqlite-tests ## Run addon tests and JS tests.
316315
$(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) \
317316
$(TEST_CI_ARGS) \
318317
--skip-tests=$(CI_SKIP_TESTS) \
@@ -338,6 +337,7 @@ test: all ## Run default tests, linters, and build docs.
338337
$(MAKE) -s build-addons
339338
$(MAKE) -s build-js-native-api-tests
340339
$(MAKE) -s build-node-api-tests
340+
$(MAKE) -s build-sqlite-tests
341341
$(MAKE) -s cctest
342342
$(MAKE) -s jstest
343343

@@ -346,6 +346,7 @@ test-only: all ## Run default tests, without linters or building the docs.
346346
$(MAKE) build-addons
347347
$(MAKE) build-js-native-api-tests
348348
$(MAKE) build-node-api-tests
349+
$(MAKE) build-sqlite-tests
349350
$(MAKE) cctest
350351
$(MAKE) jstest
351352
$(MAKE) tooltest
@@ -356,6 +357,7 @@ test-cov: all ## Run coverage tests.
356357
$(MAKE) build-addons
357358
$(MAKE) build-js-native-api-tests
358359
$(MAKE) build-node-api-tests
360+
$(MAKE) build-sqlite-tests
359361
$(MAKE) cctest
360362
CI_SKIP_TESTS=$(COV_SKIP_TESTS) $(MAKE) jstest
361363

@@ -501,6 +503,23 @@ benchmark/napi/.buildstamp: $(ADDONS_PREREQS) \
501503
$(BENCHMARK_NAPI_BINDING_GYPS) $(BENCHMARK_NAPI_BINDING_SOURCES)
502504
@$(call run_build_addons,"$$PWD/benchmark/napi",$@)
503505

506+
SQLITE_BINDING_GYPS := $(wildcard test/sqlite/*/binding.gyp)
507+
508+
SQLITE_BINDING_SOURCES := \
509+
$(wildcard test/sqlite/*/*.c)
510+
511+
# Implicitly depends on $(NODE_EXE), see the build-sqlite-tests rule for rationale.
512+
test/sqlite/.buildstamp: $(ADDONS_PREREQS) \
513+
$(SQLITE_BINDING_GYPS) $(SQLITE_BINDING_SOURCES)
514+
@$(call run_build_addons,"$$PWD/test/sqlite",$@)
515+
516+
.PHONY: build-sqlite-tests
517+
# .buildstamp needs $(NODE_EXE) but cannot depend on it
518+
# directly because it calls make recursively. The parent make cannot know
519+
# if the subprocess touched anything so it pessimistically assumes that
520+
# .buildstamp is out of date and need a rebuild.
521+
build-sqlite-tests: | $(NODE_EXE) test/sqlite/.buildstamp ## Build SQLite tests.
522+
504523
.PHONY: clear-stalled
505524
clear-stalled: ## Clear any stalled processes.
506525
$(info Clean up any leftover processes but don't error if found.)
@@ -511,14 +530,18 @@ clear-stalled: ## Clear any stalled processes.
511530
fi
512531

513532
.PHONY: test-build
514-
test-build: | all build-addons build-js-native-api-tests build-node-api-tests ## Build all tests.
533+
test-build: | all build-addons build-js-native-api-tests build-node-api-tests build-sqlite-tests ## Build all tests.
515534

516535
.PHONY: test-build-js-native-api
517536
test-build-js-native-api: all build-js-native-api-tests ## Build JS Native-API tests.
518537

519538
.PHONY: test-build-node-api
520539
test-build-node-api: all build-node-api-tests ## Build Node-API tests.
521540

541+
.PHONY: test-build-sqlite
542+
test-build-sqlite: all build-sqlite-tests ## Build SQLite tests.
543+
544+
522545
.PHONY: test-all
523546
test-all: test-build ## Run default tests with both Debug and Release builds.
524547
$(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=debug,release
@@ -546,7 +569,7 @@ endif
546569

547570
# Related CI job: node-test-commit-arm-fanned
548571
test-ci-native: LOGLEVEL := info ## Build and test addons without building anything else.
549-
test-ci-native: | benchmark/napi/.buildstamp test/addons/.buildstamp test/js-native-api/.buildstamp test/node-api/.buildstamp
572+
test-ci-native: | benchmark/napi/.buildstamp test/addons/.buildstamp test/js-native-api/.buildstamp test/node-api/.buildstamp test/sqlite/.buildstamp
550573
$(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap --logfile test.tap \
551574
--mode=$(BUILDTYPE_LOWER) --flaky-tests=$(FLAKY_TESTS) \
552575
$(TEST_CI_ARGS) $(CI_NATIVE_SUITES)
@@ -569,13 +592,12 @@ test-ci-js: | clear-stalled ## Build and test JavaScript with building anything
569592
.PHONY: test-ci
570593
# Related CI jobs: most CI tests, excluding node-test-commit-arm-fanned
571594
test-ci: LOGLEVEL := info ## Build and test everything (CI).
572-
test-ci: | clear-stalled bench-addons-build build-addons build-js-native-api-tests build-node-api-tests doc-only
595+
test-ci: | clear-stalled bench-addons-build build-addons build-js-native-api-tests build-node-api-tests build-sqlite-tests doc-only
573596
out/Release/cctest --gtest_output=xml:out/junit/cctest.xml
574597
$(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap --logfile test.tap \
575598
--mode=$(BUILDTYPE_LOWER) --flaky-tests=$(FLAKY_TESTS) \
576599
$(TEST_CI_ARGS) $(CI_JS_SUITES) $(CI_NATIVE_SUITES) $(CI_DOC)
577600
$(NODE) ./test/embedding/test-embedding.js
578-
$(NODE) ./test/sqlite/test-sqlite-extensions.mjs
579601
$(info Clean up any leftover processes, error if found.)
580602
ps awwx | grep Release/node | grep -v grep | cat
581603
@PS_OUT=`ps awwx | grep Release/node | grep -v grep | awk '{print $$1}'`; \
@@ -609,6 +631,10 @@ test-debug: BUILDTYPE_LOWER=debug ## Run tests on a debug build.
609631
test-release test-debug: test-build ## Run tests on a release or debug build.
610632
$(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER)
611633

634+
.PHONY: test-test426
635+
test-test426: all ## Run the Web Platform Tests.
636+
$(PYTHON) tools/test.py $(PARALLEL_ARGS) test426
637+
612638
.PHONY: test-wpt
613639
test-wpt: all ## Run the Web Platform Tests.
614640
$(PYTHON) tools/test.py $(PARALLEL_ARGS) wpt
@@ -677,6 +703,16 @@ test-node-api-clean: ## Remove Node-API testing artifacts.
677703
$(RM) -r test/node-api/*/build
678704
$(RM) test/node-api/.buildstamp
679705

706+
.PHONY: test-sqlite
707+
test-sqlite: test-build-sqlite ## Run SQLite tests.
708+
$(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) sqlite
709+
710+
.PHONY: test-sqlite-clean
711+
.NOTPARALLEL: test-sqlite-clean
712+
test-sqlite-clean: ## Remove SQLite testing artifacts.
713+
$(RM) -r test/sqlite/*/build
714+
$(RM) test/sqlite/.buildstamp
715+
680716
.PHONY: test-addons
681717
test-addons: test-build test-js-native-api test-node-api ## Run addon tests.
682718
$(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) addons
@@ -1442,7 +1478,7 @@ LINT_CPP_FILES = $(filter-out $(LINT_CPP_EXCLUDE), $(wildcard \
14421478
test/cctest/*.h \
14431479
test/embedding/*.cc \
14441480
test/embedding/*.h \
1445-
test/sqlite/*.c \
1481+
test/sqlite/*/*.c \
14461482
test/fixtures/*.c \
14471483
test/js-native-api/*/*.cc \
14481484
test/node-api/*/*.cc \
@@ -1466,6 +1502,7 @@ FORMAT_CPP_FILES += $(wildcard \
14661502
test/js-native-api/*/*.h \
14671503
test/node-api/*/*.c \
14681504
test/node-api/*/*.h \
1505+
test/sqlite/*/*.c \
14691506
)
14701507

14711508
# Code blocks don't have newline at the end,

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,6 @@ For information about the governance of the Node.js project, see
180180
**Matteo Collina** <<[email protected]>> (he/him)
181181
* [mhdawson](https://github.com/mhdawson) -
182182
**Michael Dawson** <<[email protected]>> (he/him)
183-
* [MoLow](https://github.com/MoLow) -
184-
**Moshe Atlow** <<[email protected]>> (he/him)
185183
* [RafaelGSS](https://github.com/RafaelGSS) -
186184
**Rafael Gonzaga** <<[email protected]>> (he/him)
187185
* [richardlau](https://github.com/richardlau) -
@@ -211,6 +209,8 @@ For information about the governance of the Node.js project, see
211209
**Shelley Vohr** <<[email protected]>> (she/her)
212210
* [GeoffreyBooth](https://github.com/GeoffreyBooth) -
213211
**Geoffrey Booth** <<[email protected]>> (he/him)
212+
* [MoLow](https://github.com/MoLow) -
213+
**Moshe Atlow** <<[email protected]>> (he/him)
214214
* [Trott](https://github.com/Trott) -
215215
**Rich Trott** <<[email protected]>> (he/him)
216216

@@ -451,8 +451,6 @@ For information about the governance of the Node.js project, see
451451
**Vladimir Morozov** <<[email protected]>> (he/him)
452452
* [VoltrexKeyva](https://github.com/VoltrexKeyva) -
453453
**Mohammed Keyvanzadeh** <<[email protected]>> (he/him)
454-
* [watilde](https://github.com/watilde) -
455-
**Daijiro Wachi** <<[email protected]>> (he/him)
456454
* [zcbenz](https://github.com/zcbenz) -
457455
**Cheng Zhao** <<[email protected]>> (he/him)
458456
* [ZYSzys](https://github.com/ZYSzys) -
@@ -707,6 +705,8 @@ For information about the governance of the Node.js project, see
707705
**Vladimir Kurchatkin** <<[email protected]>>
708706
* [vsemozhetbyt](https://github.com/vsemozhetbyt) -
709707
**Vse Mozhet Byt** <<[email protected]>> (he/him)
708+
* [watilde](https://github.com/watilde) -
709+
**Daijiro Wachi** <<[email protected]>> (he/him)
710710
* [watson](https://github.com/watson) -
711711
**Thomas Watson** <<[email protected]>>
712712
* [whitlockjc](https://github.com/whitlockjc) -

0 commit comments

Comments
 (0)