From 1daab78cd7ea011381eaa742f7cf644365e71b99 Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Wed, 5 Jan 2022 13:51:11 +0100 Subject: [PATCH 01/55] skip tests until flag is supported --- test/parallel/parallel.status | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 3e129b6abcfb6e..05f97c9d2a36ab 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -9,6 +9,10 @@ prefix parallel test-repl-sigint-nested-eval: PASS, FLAKY # https://github.com/nodejs/node/issues/43084 test-worker-http2-stream-terminate: PASS, FLAKY +# Skip tests until --no-concurrent-array-buffer-sweeping is supported +# by the V8 version used in Node. +test-memory-usage: SKIP +test-zlib-unused-weak: SKIP [$system==win32] # https://github.com/nodejs/node/issues/24497 From 7aa009ad4b3b810bcd324055b5fa104323336fa5 Mon Sep 17 00:00:00 2001 From: Shu-yu Guo Date: Mon, 24 Feb 2020 17:21:52 -0800 Subject: [PATCH 02/55] Temporarily skip FinalizationGroup tests until rename lands in V8 --- test/parallel/parallel.status | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 05f97c9d2a36ab..7ed4975e97771f 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -13,6 +13,10 @@ test-worker-http2-stream-terminate: PASS, FLAKY # by the V8 version used in Node. test-memory-usage: SKIP test-zlib-unused-weak: SKIP +# Skip temporarily to land FinalizationGroup to FinalizationRegistry rename +test-finalization-group-error: SKIP +test-finalization-group-regular-gc: SKIP +test-finalization-group: SKIP [$system==win32] # https://github.com/nodejs/node/issues/24497 From 7d0cefebb55967d7d0618e1aadcea3cf1d99d1c9 Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Wed, 5 Feb 2020 19:41:04 +0100 Subject: [PATCH 03/55] Skip addons/zlib-binding test --- test/addons/addons.status | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/addons/addons.status b/test/addons/addons.status index b56e0aa461cc36..b182900a846fd4 100644 --- a/test/addons/addons.status +++ b/test/addons/addons.status @@ -5,6 +5,8 @@ prefix addons # sample-test : PASS,FLAKY [true] # This section applies to all platforms +# Building zlib in //third_party makes this test fail. +zlib-binding/test: SKIP [$arch==arm] # https://github.com/nodejs/node/issues/30786 From 34ae0e624b41c5488e3e19d2e3371b9fde8b2083 Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Fri, 24 Apr 2020 16:39:13 +0200 Subject: [PATCH 04/55] [test] Temporarily skip parallel/test-code-cache.js --- test/parallel/parallel.status | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 7ed4975e97771f..e8ca5953332c71 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -17,6 +17,8 @@ test-zlib-unused-weak: SKIP test-finalization-group-error: SKIP test-finalization-group-regular-gc: SKIP test-finalization-group: SKIP +# Skip flaky test +test-code-cache: SKIP [$system==win32] # https://github.com/nodejs/node/issues/24497 From 4c3ae290a01c78de5d2f052bf3d56d081ea1c045 Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Tue, 5 Jan 2021 11:15:48 +0100 Subject: [PATCH 05/55] Disable tests to update TypedArray size # Conflicts: # test/parallel/test-buffer-alloc.js # test/parallel/test-buffer-over-max-length.js --- test/parallel/test-buffer-alloc.js | 3 +++ test/parallel/test-buffer-over-max-length.js | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/test/parallel/test-buffer-alloc.js b/test/parallel/test-buffer-alloc.js index d2085d11802aee..8e887f1544cd60 100644 --- a/test/parallel/test-buffer-alloc.js +++ b/test/parallel/test-buffer-alloc.js @@ -1,6 +1,9 @@ 'use strict'; const common = require('../common'); +// crbug.com/1095721 +common.skip('Temporarily disabling to update TypedArray size.'); + const assert = require('assert'); const vm = require('vm'); diff --git a/test/parallel/test-buffer-over-max-length.js b/test/parallel/test-buffer-over-max-length.js index c263633d941cdd..f84592e27249a9 100644 --- a/test/parallel/test-buffer-over-max-length.js +++ b/test/parallel/test-buffer-over-max-length.js @@ -1,5 +1,8 @@ 'use strict'; -require('../common'); +const common = require('../common'); + +// crbug.com/1095721 +common.skip('Temporarily disabling to update TypedArray size.'); const assert = require('assert'); From 6e07864a13838b6c82102e7a361f079eba3e94ca Mon Sep 17 00:00:00 2001 From: Kim-Anh Tran Date: Fri, 19 Jun 2020 11:29:45 +0200 Subject: [PATCH 06/55] Update tests after increasing typed array size to 4GB --- test/parallel/test-buffer-alloc.js | 3 --- test/parallel/test-buffer-over-max-length.js | 5 +---- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/test/parallel/test-buffer-alloc.js b/test/parallel/test-buffer-alloc.js index 8e887f1544cd60..d2085d11802aee 100644 --- a/test/parallel/test-buffer-alloc.js +++ b/test/parallel/test-buffer-alloc.js @@ -1,9 +1,6 @@ 'use strict'; const common = require('../common'); -// crbug.com/1095721 -common.skip('Temporarily disabling to update TypedArray size.'); - const assert = require('assert'); const vm = require('vm'); diff --git a/test/parallel/test-buffer-over-max-length.js b/test/parallel/test-buffer-over-max-length.js index f84592e27249a9..c263633d941cdd 100644 --- a/test/parallel/test-buffer-over-max-length.js +++ b/test/parallel/test-buffer-over-max-length.js @@ -1,8 +1,5 @@ 'use strict'; -const common = require('../common'); - -// crbug.com/1095721 -common.skip('Temporarily disabling to update TypedArray size.'); +require('../common'); const assert = require('assert'); From e859baaca85baabf143d33fb8ba6aaf9bb3d181e Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Mon, 17 Aug 2020 10:54:20 +0200 Subject: [PATCH 07/55] [tests] Skips newly added async-cleanup-hook. --- test/addons/addons.status | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/addons/addons.status b/test/addons/addons.status index b182900a846fd4..008e83cdf01b8f 100644 --- a/test/addons/addons.status +++ b/test/addons/addons.status @@ -7,6 +7,8 @@ prefix addons [true] # This section applies to all platforms # Building zlib in //third_party makes this test fail. zlib-binding/test: SKIP +# Async-cleaup-hook fails. +async-cleanup-hook/test: SKIP [$arch==arm] # https://github.com/nodejs/node/issues/30786 From 66ff56a6e2a9d4c4467eff74599fdbc9dd3a3b38 Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Fri, 24 Apr 2020 17:24:13 +0200 Subject: [PATCH 08/55] [fuchsia] Filter out resource.h in uvwasi --- deps/uvwasi/src/clocks.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deps/uvwasi/src/clocks.c b/deps/uvwasi/src/clocks.c index 8dc5d6557ed2b5..4e2a729e3f434e 100644 --- a/deps/uvwasi/src/clocks.c +++ b/deps/uvwasi/src/clocks.c @@ -1,9 +1,9 @@ -#ifndef _WIN32 +#if !defined(_WIN32) && !defined(__Fuchsia__) # include # include # include # include -#endif /* _WIN32 */ +#endif /* _WIN32 && __Fuchsia */ #include "uv.h" #include "clocks.h" From 0684f4122ea8d29b985a4d30e0a23700ba64b9a2 Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Mon, 9 Aug 2021 12:32:25 +0200 Subject: [PATCH 09/55] [libuv/fuchsia] Fuchsia support to libuv --- deps/uv/include/uv.h | 7 ++- deps/uv/include/uv/unix.h | 7 +++ deps/uv/src/unix/core.c | 9 ++-- deps/uv/src/unix/fuchsia.c | 69 +++++++++++++++++++++++++++++ deps/uv/src/unix/loop.c | 2 +- deps/uv/src/unix/pipe.c | 6 +++ deps/uv/src/unix/process.c | 68 +++++++++++++++++++++++++--- deps/uv/src/unix/signal.c | 3 ++ deps/uv/src/unix/thread.c | 3 ++ deps/uv/test/runner-unix.c | 44 ++++++++++++++---- deps/uv/test/runner-unix.h | 8 ++++ deps/uv/test/task.h | 2 +- deps/uv/test/test-close-fd.c | 2 +- deps/uv/test/test-fs-copyfile.c | 3 +- deps/uv/test/test-list.h | 24 +++++++++- deps/uv/test/test-platform-output.c | 5 ++- deps/uv/test/test-spawn.c | 2 +- deps/uv/test/test-strscpy.c | 1 - 18 files changed, 237 insertions(+), 28 deletions(-) create mode 100644 deps/uv/src/unix/fuchsia.c diff --git a/deps/uv/include/uv.h b/deps/uv/include/uv.h index 606083c87de579..fdb4cdb9d177d4 100644 --- a/deps/uv/include/uv.h +++ b/deps/uv/include/uv.h @@ -1072,7 +1072,7 @@ enum uv_process_flags { struct uv_process_s { UV_HANDLE_FIELDS uv_exit_cb exit_cb; - int pid; + uv_pid_t pid; UV_PROCESS_PRIVATE_FIELDS }; @@ -1082,6 +1082,7 @@ UV_EXTERN int uv_spawn(uv_loop_t* loop, UV_EXTERN int uv_process_kill(uv_process_t*, int signum); UV_EXTERN int uv_kill(int pid, int signum); UV_EXTERN uv_pid_t uv_process_get_pid(const uv_process_t*); +UV_EXTERN uv_pid_t uv__waitpid(uv_pid_t pid, int *status, int options); /* @@ -1213,7 +1214,9 @@ typedef struct { uint64_t ru_nivcsw; /* involuntary context switches */ } uv_rusage_t; +#ifndef __Fuchsia__ UV_EXTERN int uv_getrusage(uv_rusage_t* rusage); +#endif UV_EXTERN int uv_os_homedir(char* buffer, size_t* size); UV_EXTERN int uv_os_tmpdir(char* buffer, size_t* size); @@ -1239,8 +1242,10 @@ UV_EXTERN uv_pid_t uv_os_getppid(void); # define UV_PRIORITY_HIGHEST -20 #endif +#ifndef __Fuchsia__ UV_EXTERN int uv_os_getpriority(uv_pid_t pid, int* priority); UV_EXTERN int uv_os_setpriority(uv_pid_t pid, int priority); +#endif UV_EXTERN int uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count); UV_EXTERN void uv_free_cpu_info(uv_cpu_info_t* cpu_infos, int count); diff --git a/deps/uv/include/uv/unix.h b/deps/uv/include/uv/unix.h index ea37d78768654e..0ec9045bbd4cda 100644 --- a/deps/uv/include/uv/unix.h +++ b/deps/uv/include/uv/unix.h @@ -69,6 +69,9 @@ defined(__QNX__) || \ defined(__GNU__) # include "uv/posix.h" +#elif defined(__Fuchsia__) +# include "uv/posix.h" +# include #endif #ifndef NI_MAXHOST @@ -126,7 +129,11 @@ typedef struct uv_buf_t { typedef int uv_file; typedef int uv_os_sock_t; typedef int uv_os_fd_t; +#ifdef __Fuchsia__ +typedef zx_handle_t uv_pid_t; +#else typedef pid_t uv_pid_t; +#endif #define UV_ONCE_INIT PTHREAD_ONCE_INIT diff --git a/deps/uv/src/unix/core.c b/deps/uv/src/unix/core.c index 71e9c525c4a77b..5ec0c43d861793 100644 --- a/deps/uv/src/unix/core.c +++ b/deps/uv/src/unix/core.c @@ -38,7 +38,9 @@ #include #include /* INT_MAX, PATH_MAX, IOV_MAX */ #include /* writev */ +#ifndef __Fuchsia__ #include /* getrusage */ +#endif #include #include #include @@ -975,6 +977,7 @@ int uv__fd_exists(uv_loop_t* loop, int fd) { } +#ifndef __Fuchsia__ int uv_getrusage(uv_rusage_t* rusage) { struct rusage usage; @@ -1006,7 +1009,7 @@ int uv_getrusage(uv_rusage_t* rusage) { return 0; } - +#endif // !__Fuchsia__ int uv__open_cloexec(const char* path, int flags) { #if defined(O_CLOEXEC) @@ -1413,7 +1416,7 @@ uv_pid_t uv_os_getppid(void) { return getppid(); } - +#ifndef __Fuchsia__ int uv_os_getpriority(uv_pid_t pid, int* priority) { int r; @@ -1440,7 +1443,7 @@ int uv_os_setpriority(uv_pid_t pid, int priority) { return 0; } - +#endif // !__Fuchsia__ int uv_os_uname(uv_utsname_t* buffer) { struct utsname buf; diff --git a/deps/uv/src/unix/fuchsia.c b/deps/uv/src/unix/fuchsia.c new file mode 100644 index 00000000000000..e7693b9214bd27 --- /dev/null +++ b/deps/uv/src/unix/fuchsia.c @@ -0,0 +1,69 @@ +#include "uv.h" +#include "internal.h" + +#include +#include + +#include + +int uv_exepath(char* buffer, size_t* size) { + if (buffer == NULL || size == NULL || *size == 0) return UV_EINVAL; + const char* path = "/pkg/"; + if (*size < strlen(path) + 1) return UV_EINVAL; + strcpy(buffer, "/pkg/"); + return 0; +} + +void uv_loadavg(double avg[3]) { + // Not implemented. As in the case of Windows, it returns [0, 0, 0]. + avg[0] = avg[1] = avg[2] = 0; +} + +int uv_uptime(double* uptime) { + if (uptime == NULL) return UV_EINVAL; + // TODO(victor): This is the number of nanoseconds since the system was + // powered on. It does not always reset on reboot and does not adjust during + // sleep, and thus should not be used as a reliable source of uptime. + zx_time_t time_ns = zx_clock_get_monotonic(); + *uptime = time_ns / 1000000000.0; // in seconds + return 0; +} + +int uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count) { + *cpu_infos = NULL; + *count = 0; + return UV_ENOSYS; +} + +uint64_t uv_get_free_memory(void) { + assert(0 && "uv_get_free_memory not supported on Fuchsia."); + return 0; +} + +uint64_t uv_get_constrained_memory(void) { + assert(0 && "uv_get_constrained_memory not supported on Fuchsia."); + return 0; +} + +uint64_t uv_get_total_memory(void) { + assert(0 && "uv_get_total_memory not supported on Fuchsia."); + return 0; +} + +int uv_resident_set_memory(size_t* rss) { + assert(0 && "uv_resident_set_memory not supported on Fuchsia."); + return 0; +} + +int uv_interface_addresses(uv_interface_address_t** addresses, int* count) { + *count = 0; + *addresses = NULL; + return UV_ENOSYS; +} + +void uv_free_interface_addresses(uv_interface_address_t* addresses, int count) { + for (int i = 0; i < count; i++) { + uv__free(addresses[i].name); + } + uv__free(addresses); +} diff --git a/deps/uv/src/unix/loop.c b/deps/uv/src/unix/loop.c index a88e71c339351f..4ce516d2ee01e3 100644 --- a/deps/uv/src/unix/loop.c +++ b/deps/uv/src/unix/loop.c @@ -31,7 +31,7 @@ int uv_loop_init(uv_loop_t* loop) { uv__loop_internal_fields_t* lfields; void* saved_data; int err; - + saved_data = loop->data; memset(loop, 0, sizeof(*loop)); diff --git a/deps/uv/src/unix/pipe.c b/deps/uv/src/unix/pipe.c index 788e038e8aaae9..51ecab59fb5210 100644 --- a/deps/uv/src/unix/pipe.c +++ b/deps/uv/src/unix/pipe.c @@ -160,11 +160,17 @@ int uv_pipe_open(uv_pipe_t* handle, uv_file fd) { return err; #endif /* defined(__APPLE__) */ +#ifdef __Fuchsia__ + // TODO(victor): fcntl is not returning the correct mode. + // As a temporary hack, we set both flags. + flags |= UV_HANDLE_READABLE | UV_HANDLE_WRITABLE; +#else mode &= O_ACCMODE; if (mode != O_WRONLY) flags |= UV_HANDLE_READABLE; if (mode != O_RDONLY) flags |= UV_HANDLE_WRITABLE; +#endif return uv__stream_open((uv_stream_t*)handle, fd, flags); } diff --git a/deps/uv/src/unix/process.c b/deps/uv/src/unix/process.c index 91bf3c507022b2..f9efb95da54511 100644 --- a/deps/uv/src/unix/process.c +++ b/deps/uv/src/unix/process.c @@ -34,6 +34,11 @@ #include #include +#ifdef __Fuchsia__ +# include +# include +#endif + #if defined(__APPLE__) && !TARGET_OS_IPHONE # include # define environ (*_NSGetEnviron()) @@ -49,6 +54,30 @@ extern char **environ; # include "zos-base.h" #endif +uv_pid_t uv__waitpid(uv_pid_t pid, int *status, int options) { +#ifdef __Fuchsia__ + // TODO(victor): ignoring options for now + assert(options == 0); + + zx_status_t result = zx_object_wait_one(pid, ZX_TASK_TERMINATED, ZX_TIME_INFINITE, NULL); + if (result != ZX_OK) + goto error; + + zx_info_process_t proc_info; + result = zx_object_get_info(pid, ZX_INFO_PROCESS, &proc_info, sizeof(proc_info), NULL, NULL); + if (result != ZX_OK) + goto error; + + *status = proc_info.return_code; + return 0; + +error: + errno = ECHILD; + return -1; +#else + return waitpid(pid, status, options); +#endif +} static void uv__chld(uv_signal_t* handle, int signum) { uv_process_t* process; @@ -56,7 +85,7 @@ static void uv__chld(uv_signal_t* handle, int signum) { int exit_status; int term_signal; int status; - pid_t pid; + uv_pid_t pid; QUEUE pending; QUEUE* q; QUEUE* h; @@ -73,7 +102,7 @@ static void uv__chld(uv_signal_t* handle, int signum) { q = QUEUE_NEXT(q); do - pid = waitpid(process->pid, &status, WNOHANG); + pid = uv__waitpid(process->pid, &status, WNOHANG); while (pid == -1 && errno == EINTR); if (pid == 0) @@ -188,6 +217,7 @@ static void uv__process_close_stream(uv_stdio_container_t* container) { } +#ifndef __Fuchsia__ static void uv__write_int(int fd, int val) { ssize_t n; @@ -200,6 +230,7 @@ static void uv__write_int(int fd, int val) { assert(n == sizeof(val)); } +#endif static void uv__write_errno(int error_fd) { @@ -208,7 +239,7 @@ static void uv__write_errno(int error_fd) { } -#if !(defined(__APPLE__) && (TARGET_OS_TV || TARGET_OS_WATCH)) +#if !(defined(__APPLE__) && (TARGET_OS_TV || TARGET_OS_WATCH)) && !defined(__Fuchsia__) /* execvp is marked __WATCHOS_PROHIBITED __TVOS_PROHIBITED, so must be * avoided. Since this isn't called on those targets, the function * doesn't even need to be defined for them. @@ -340,7 +371,6 @@ static void uv__process_child_init(const uv_process_options_t* options, } #endif - int uv_spawn(uv_loop_t* loop, uv_process_t* process, const uv_process_options_t* options) { @@ -355,7 +385,7 @@ int uv_spawn(uv_loop_t* loop, int (*pipes)[2]; int stdio_count; ssize_t r; - pid_t pid; + uv_pid_t pid; int err; int exec_errorno; int i; @@ -425,6 +455,29 @@ int uv_spawn(uv_loop_t* loop, /* Acquire write lock to prevent opening new fds in worker threads */ uv_rwlock_wrlock(&loop->cloexec_lock); +#ifdef __Fuchsia__ + const char *executable_path; + if (*options->file == 0) { + // TODO(victor): This is not necessarilly the name of the process!! + executable_path = "/pkg/uv_tests"; + } else { + executable_path = options->file; + } + + // TODO(victor): missing uv_process_child_init logic before spawning. + char err_msg_out[FDIO_SPAWN_ERR_MSG_MAX_LENGTH]; + zx_status_t zx_status = fdio_spawn_etc(ZX_HANDLE_INVALID, FDIO_SPAWN_CLONE_ALL, executable_path, + (const char* const *)options->args, + (const char* const *)options->env, 0, NULL, + &pid, err_msg_out); + if (zx_status != ZX_OK) { + err = UV__ERR(ENOENT); + uv_rwlock_wrunlock(&loop->cloexec_lock); + uv__close(signal_pipe[0]); + uv__close(signal_pipe[1]); + goto error; + } +#else /* Start the child with most signals blocked, to avoid any issues before we * can reset them, but allow program failures to exit (and not hang). */ sigfillset(&signewset); @@ -448,6 +501,7 @@ int uv_spawn(uv_loop_t* loop, if (pthread_sigmask(SIG_SETMASK, &sigoldset, NULL) != 0) abort(); +#endif /* Release lock in parent process */ uv_rwlock_wrunlock(&loop->cloexec_lock); @@ -469,12 +523,12 @@ int uv_spawn(uv_loop_t* loop, ; /* okay, EOF */ else if (r == sizeof(exec_errorno)) { do - err = waitpid(pid, &status, 0); /* okay, read errorno */ + err = uv__waitpid(pid, &status, 0); /* okay, read errorno */ while (err == -1 && errno == EINTR); assert(err == pid); } else if (r == -1 && errno == EPIPE) { do - err = waitpid(pid, &status, 0); /* okay, got EPIPE */ + err = uv__waitpid(pid, &status, 0); /* okay, got EPIPE */ while (err == -1 && errno == EINTR); assert(err == pid); } else diff --git a/deps/uv/src/unix/signal.c b/deps/uv/src/unix/signal.c index 1133c73a955525..c65f72167f0d56 100644 --- a/deps/uv/src/unix/signal.c +++ b/deps/uv/src/unix/signal.c @@ -63,6 +63,8 @@ RB_GENERATE_STATIC(uv__signal_tree_s, static void uv__signal_global_reinit(void); static void uv__signal_global_init(void) { +// TODO(victor): not sure if I can skip the lock here for fuchsia +#ifndef __Fuchsia__ if (uv__signal_lock_pipefd[0] == -1) /* pthread_atfork can register before and after handlers, one * for each child. This only registers one for the child. That @@ -72,6 +74,7 @@ static void uv__signal_global_init(void) { */ if (pthread_atfork(NULL, NULL, &uv__signal_global_reinit)) abort(); +#endif uv__signal_global_reinit(); } diff --git a/deps/uv/src/unix/thread.c b/deps/uv/src/unix/thread.c index c46450cc661270..54b71ba41a4e05 100644 --- a/deps/uv/src/unix/thread.c +++ b/deps/uv/src/unix/thread.c @@ -27,7 +27,10 @@ #include #include +#ifndef __Fuchsia__ #include /* getrlimit() */ +#endif + #include /* getpagesize() */ #include diff --git a/deps/uv/test/runner-unix.c b/deps/uv/test/runner-unix.c index a13648bc883878..0a2c16798a9023 100644 --- a/deps/uv/test/runner-unix.c +++ b/deps/uv/test/runner-unix.c @@ -21,6 +21,7 @@ #include "runner-unix.h" #include "runner.h" +#include "uv.h" #include #include /* uintptr_t */ @@ -40,6 +41,11 @@ #include #include +#ifdef __Fuchsia__ +# include +# include +#endif + extern char** environ; static void closefd(int fd) { @@ -75,23 +81,23 @@ void platform_init(int argc, char **argv) { snprintf(executable_path, sizeof(executable_path), "%s", argv[0]); } - /* Invoke "argv[0] test-name [test-part]". Store process info in *p. Make sure * that all stdio output of the processes is buffered up. */ int process_start(char* name, char* part, process_info_t* p, int is_helper) { FILE* stdout_file; int stdout_fd; - const char* arg; - char* args[16]; + const char* args[16]; int pipefd[2]; char fdstr[8]; ssize_t rc; int n; - pid_t pid; - arg = getenv("UV_USE_VALGRIND"); n = 0; +#ifndef __Fuchsia__ + const char* arg; + arg = getenv("UV_USE_VALGRIND"); + /* Disable valgrind for helpers, it complains about helpers leaking memory. * They're killed after the test and as such never get a chance to clean up. */ @@ -102,6 +108,7 @@ int process_start(char* name, char* part, process_info_t* p, int is_helper) { args[n++] = "--show-reachable=yes"; args[n++] = "--error-exitcode=125"; } +#endif args[n++] = executable_path; args[n++] = name; @@ -122,6 +129,7 @@ int process_start(char* name, char* part, process_info_t* p, int is_helper) { } snprintf(fdstr, sizeof(fdstr), "%d", pipefd[1]); + printf("setting UV_TEST_RUNNER_FD\n"); if (setenv("UV_TEST_RUNNER_FD", fdstr, /* overwrite */ 1)) { perror("setenv"); return -1; @@ -131,6 +139,17 @@ int process_start(char* name, char* part, process_info_t* p, int is_helper) { p->terminated = 0; p->status = 0; +#ifdef __Fuchsia__ + zx_status_t status; + + status = fdio_spawn(ZX_HANDLE_INVALID, FDIO_SPAWN_CLONE_ALL, executable_path, args, &p->pid); + if (status != ZX_OK) { + perror("fdio_spawn"); + return -1; + } +#else + pid_t pid; + pid = fork(); if (pid < 0) { @@ -151,6 +170,8 @@ int process_start(char* name, char* part, process_info_t* p, int is_helper) { /* parent */ p->pid = pid; +#endif + p->name = strdup(name); p->stdout_file = stdout_file; @@ -179,7 +200,6 @@ int process_start(char* name, char* part, process_info_t* p, int is_helper) { return 0; } - typedef struct { int pipe[2]; process_info_t* vec; @@ -199,7 +219,7 @@ static void* dowait(void* data) { for (i = 0; i < args->n; i++) { p = &args->vec[i]; if (p->terminated) continue; - r = waitpid(p->pid, &p->status, 0); + r = uv__waitpid(p->pid, &p->status, 0); if (r < 0) { perror("waitpid"); return NULL; @@ -219,7 +239,6 @@ static void* dowait(void* data) { return NULL; } - /* Wait for all `n` processes in `vec` to terminate. Time out after `timeout` * msec, or never if timeout == -1. Return 0 if all processes are terminated, * -1 on error, -2 on timeout. */ @@ -324,7 +343,11 @@ int process_wait(process_info_t* vec, int n, int timeout) { /* Timeout. Kill all the children. */ for (i = 0; i < n; i++) { p = &vec[i]; +#ifdef __Fuchsia__ + assert(0 && "kill not supported!"); +#else kill(p->pid, SIGTERM); +#endif } retval = -2; } @@ -414,7 +437,12 @@ char* process_get_name(process_info_t *p) { /* Terminate process `p`. */ int process_terminate(process_info_t *p) { +#ifdef __Fuchsia__ + assert(0 && "kill not supported"); + return -1; +#else return kill(p->pid, SIGTERM); +#endif } diff --git a/deps/uv/test/runner-unix.h b/deps/uv/test/runner-unix.h index e21847f92c0865..bfb163edbb1df6 100644 --- a/deps/uv/test/runner-unix.h +++ b/deps/uv/test/runner-unix.h @@ -25,9 +25,17 @@ #include #include /* FILE */ +#ifdef __Fuchsia__ +#include +#endif + typedef struct { FILE* stdout_file; +#ifdef __Fuchsia__ + zx_handle_t pid; +#else pid_t pid; +#endif char* name; int status; int terminated; diff --git a/deps/uv/test/task.h b/deps/uv/test/task.h index 925f1b1c0aeac6..44222889d9477e 100644 --- a/deps/uv/test/task.h +++ b/deps/uv/test/task.h @@ -36,7 +36,7 @@ # include #endif -#if !defined(_WIN32) +#if !defined(_WIN32) && !defined(__Fuchsia__) # include # include /* setrlimit() */ #endif diff --git a/deps/uv/test/test-close-fd.c b/deps/uv/test/test-close-fd.c index 0d3927f652ede0..8e046846ef43b6 100644 --- a/deps/uv/test/test-close-fd.c +++ b/deps/uv/test/test-close-fd.c @@ -44,7 +44,7 @@ static void read_cb(uv_stream_t* handle, ssize_t nread, const uv_buf_t* buf) { uv_close((uv_handle_t *) handle, NULL); break; default: - ASSERT(!"read_cb_called > 2"); + ASSERT(0 && "read_cb_called > 2"); } } diff --git a/deps/uv/test/test-fs-copyfile.c b/deps/uv/test/test-fs-copyfile.c index c785a4b51fbb10..4495a1b498a305 100644 --- a/deps/uv/test/test-fs-copyfile.c +++ b/deps/uv/test/test-fs-copyfile.c @@ -25,7 +25,8 @@ #if defined(__unix__) || defined(__POSIX__) || \ defined(__APPLE__) || defined(__sun) || \ defined(_AIX) || defined(__MVS__) || \ - defined(__HAIKU__) || defined(__QNX__) + defined(__HAIKU__) || defined(__QNX__) || \ + defined(__Fuchsia__) #include /* unlink, etc. */ #else # include diff --git a/deps/uv/test/test-list.h b/deps/uv/test/test-list.h index 1f566861a0e2e9..a3cfc2fc367e80 100644 --- a/deps/uv/test/test-list.h +++ b/deps/uv/test/test-list.h @@ -74,7 +74,9 @@ TEST_DECLARE (tty_full_reset) TEST_DECLARE (tty_escape_sequence_processing) #endif TEST_DECLARE (tty_file) +#ifndef __Fuchsia__ TEST_DECLARE (tty_pty) +#endif TEST_DECLARE (stdio_over_pipes) TEST_DECLARE (stdio_emulate_iocp) TEST_DECLARE (ip6_pton) @@ -230,7 +232,9 @@ TEST_DECLARE (idle_starvation) TEST_DECLARE (loop_handles) TEST_DECLARE (get_loadavg) TEST_DECLARE (walk_handles) +#ifndef __Fuchsia__ TEST_DECLARE (watcher_cross_stop) +#endif TEST_DECLARE (ref) TEST_DECLARE (idle_ref) TEST_DECLARE (async_ref) @@ -259,7 +263,9 @@ TEST_DECLARE (pipe_close_stdout_read_stdin) TEST_DECLARE (pipe_set_non_blocking) TEST_DECLARE (pipe_set_chmod) TEST_DECLARE (process_ref) +#ifndef __Fuchsia__ TEST_DECLARE (process_priority) +#endif TEST_DECLARE (has_ref) TEST_DECLARE (active) TEST_DECLARE (embed) @@ -481,7 +487,9 @@ TEST_DECLARE (spawn_with_an_odd_path) TEST_DECLARE (ipc_listen_after_bind_twice) TEST_DECLARE (win32_signum_number) #else +#ifndef __Fuchsia__ TEST_DECLARE (emfile) +#endif TEST_DECLARE (spawn_setuid_setgid) TEST_DECLARE (we_get_signal) TEST_DECLARE (we_get_signals) @@ -531,9 +539,11 @@ TEST_DECLARE (fork_threadpool_queue_work_simple) #endif #endif +#ifndef __Fuchsia__ TEST_DECLARE (idna_toascii) TEST_DECLARE (utf8_decode1) TEST_DECLARE (utf8_decode1_overrun) +#endif TEST_DECLARE (uname) TEST_DECLARE (metrics_idle_time) @@ -610,7 +620,9 @@ TASK_LIST_START TEST_ENTRY (tty_escape_sequence_processing) #endif TEST_ENTRY (tty_file) +#ifndef __Fuchsia__ TEST_ENTRY (tty_pty) +#endif TEST_ENTRY (stdio_over_pipes) TEST_ENTRY (stdio_emulate_iocp) TEST_ENTRY (ip6_pton) @@ -848,13 +860,17 @@ TASK_LIST_START TEST_ENTRY (pipe_ref4) TEST_HELPER (pipe_ref4, pipe_echo_server) TEST_ENTRY (process_ref) +#ifndef __Fuchsia__ TEST_ENTRY (process_priority) +#endif TEST_ENTRY (has_ref) TEST_ENTRY (loop_handles) TEST_ENTRY (walk_handles) +#ifndef __Fuchsia__ TEST_ENTRY (watcher_cross_stop) +#endif TEST_ENTRY (active) @@ -977,7 +993,9 @@ TASK_LIST_START TEST_ENTRY (ipc_listen_after_bind_twice) TEST_ENTRY (win32_signum_number) #else +#ifndef __Fuchsia__ TEST_ENTRY (emfile) +#endif TEST_ENTRY (spawn_setuid_setgid) TEST_ENTRY (we_get_signal) TEST_ENTRY (we_get_signals) @@ -1087,7 +1105,9 @@ TASK_LIST_START TEST_ENTRY (fs_get_system_error) TEST_ENTRY (get_osfhandle_valid_handle) TEST_ENTRY (open_osfhandle_valid_handle) +#ifndef __Fuchsia__ TEST_ENTRY (strscpy) +#endif TEST_ENTRY (threadpool_queue_work_simple) TEST_ENTRY (threadpool_queue_work_einval) TEST_ENTRY_CUSTOM (threadpool_multiple_event_loops, 0, 0, 60000) @@ -1136,12 +1156,14 @@ TASK_LIST_START #endif #endif +#ifndef __Fuchsia__ TEST_ENTRY (utf8_decode1) TEST_ENTRY (utf8_decode1_overrun) +#endif TEST_ENTRY (uname) /* Doesn't work on z/OS because that platform uses EBCDIC, not ASCII. */ -#ifndef __MVS__ +#if !defined(__MVS__) && !defined(__Fuchsia__) TEST_ENTRY (idna_toascii) #endif diff --git a/deps/uv/test/test-platform-output.c b/deps/uv/test/test-platform-output.c index 341c7ae54ed28b..5199d635a6381d 100644 --- a/deps/uv/test/test-platform-output.c +++ b/deps/uv/test/test-platform-output.c @@ -29,14 +29,12 @@ TEST_IMPL(platform_output) { #if defined(__QEMU__) RETURN_SKIP("Test does not currently work in QEMU"); #endif - char buffer[512]; size_t rss; size_t size; double uptime; uv_pid_t pid; uv_pid_t ppid; - uv_rusage_t rusage; uv_cpu_info_t* cpus; uv_interface_address_t* interfaces; uv_passwd_t pwd; @@ -71,6 +69,8 @@ TEST_IMPL(platform_output) { printf("uv_uptime: %f\n", uptime); #endif +#ifndef __Fuchsia__ + uv_rusage_t rusage; err = uv_getrusage(&rusage); ASSERT(err == 0); ASSERT(rusage.ru_utime.tv_sec >= 0); @@ -87,6 +87,7 @@ TEST_IMPL(platform_output) { printf(" page faults: %llu\n", (unsigned long long) rusage.ru_majflt); printf(" maximum resident set size: %llu\n", (unsigned long long) rusage.ru_maxrss); +#endif err = uv_cpu_info(&cpus, &count); #if defined(__CYGWIN__) || defined(__MSYS__) diff --git a/deps/uv/test/test-spawn.c b/deps/uv/test/test-spawn.c index 9f2eb24b2d6daf..d71bef24e8136f 100644 --- a/deps/uv/test/test-spawn.c +++ b/deps/uv/test/test-spawn.c @@ -214,7 +214,7 @@ TEST_IMPL(spawn_fails_check_for_waitpid_cleanup) { /* verify the child is successfully cleaned up within libuv */ do - err = waitpid(process.pid, &status, 0); + err = uv__waitpid(process.pid, &status, 0); while (err == -1 && errno == EINTR); ASSERT(err == -1); diff --git a/deps/uv/test/test-strscpy.c b/deps/uv/test/test-strscpy.c index 4e7db6ffec8ef2..43f3329f9ba7a1 100644 --- a/deps/uv/test/test-strscpy.c +++ b/deps/uv/test/test-strscpy.c @@ -23,7 +23,6 @@ #include "task.h" #include -#include "../src/strscpy.h" #include "../src/strscpy.c" TEST_IMPL(strscpy) { From ed51a89b3f44c1127f04aa7c12a96302d4b3fe6d Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Wed, 5 Jan 2022 13:52:18 +0100 Subject: [PATCH 10/55] [fuchsia] Fuchsia support to Node --- src/api/environment.cc | 2 ++ src/debug_utils.cc | 3 ++- src/inspector_agent.cc | 2 ++ src/node.cc | 10 +++++++++- src/node_os.cc | 13 +++++++++++-- src/node_process_methods.cc | 10 +++++++++- src/node_report.cc | 8 ++++++-- src/node_watchdog.cc | 5 ++++- 8 files changed, 45 insertions(+), 8 deletions(-) diff --git a/src/api/environment.cc b/src/api/environment.cc index bdf67521cbf80c..2e51745c930f18 100644 --- a/src/api/environment.cc +++ b/src/api/environment.cc @@ -211,6 +211,7 @@ void FreeArrayBufferAllocator(ArrayBufferAllocator* allocator) { } void SetIsolateCreateParamsForNode(Isolate::CreateParams* params) { +#ifndef __Fuchsia__ const uint64_t constrained_memory = uv_get_constrained_memory(); const uint64_t total_memory = constrained_memory > 0 ? std::min(uv_get_total_memory(), constrained_memory) : @@ -223,6 +224,7 @@ void SetIsolateCreateParamsForNode(Isolate::CreateParams* params) { } params->embedder_wrapper_object_index = BaseObject::InternalFields::kSlot; params->embedder_wrapper_type_index = std::numeric_limits::max(); +#endif } void SetIsolateErrorHandlers(v8::Isolate* isolate, const IsolateSettings& s) { diff --git a/src/debug_utils.cc b/src/debug_utils.cc index f721a672f10e67..27bf6116187ba4 100644 --- a/src/debug_utils.cc +++ b/src/debug_utils.cc @@ -14,7 +14,8 @@ #if defined(__linux__) && !defined(__GLIBC__) || \ defined(__UCLIBC__) || \ - defined(_AIX) + defined(_AIX) || \ + defined(__Fuchsia__) #define HAVE_EXECINFO_H 0 #else #define HAVE_EXECINFO_H 1 diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc index 34bb11e7d7122c..072767769d4ba2 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc @@ -129,11 +129,13 @@ static int StartDebugSignalHandler() { // receiving the signal would terminate the process. return -err; } +#ifndef __Fuchsia__ RegisterSignalHandler(SIGUSR1, StartIoThreadWakeup); // Unblock SIGUSR1. A pending SIGUSR1 signal will now be delivered. sigemptyset(&sigmask); sigaddset(&sigmask, SIGUSR1); CHECK_EQ(0, pthread_sigmask(SIG_UNBLOCK, &sigmask, nullptr)); +#endif return 0; } #endif // __POSIX__ diff --git a/src/node.cc b/src/node.cc index 2891c18bb9aa9a..acd0c79ed00c96 100644 --- a/src/node.cc +++ b/src/node.cc @@ -102,7 +102,9 @@ #define STDIN_FILENO 0 #else #include +#ifndef __Fuchsia__ #include // getrlimit, setrlimit +#endif #include // tcgetattr, tcsetattr #include // STDIN_FILENO, STDERR_FILENO #endif @@ -535,7 +537,7 @@ void TrapWebAssemblyOrContinue(int signo, siginfo_t* info, void* ucontext) { #endif // defined(_WIN32) #endif // NODE_USE_V8_WASM_TRAP_HANDLER -#ifdef __POSIX__ +#if defined(__POSIX__) && !defined(__Fuchsia__) void RegisterSignalHandler(int signal, sigaction_cb handler, bool reset_handler) { @@ -701,6 +703,7 @@ static void PlatformInit(ProcessInitializationFlags::Flags flags) { } while (min + 1 < max); } } +#endif // __Fuchsia__ #endif // __POSIX__ #ifdef _WIN32 if (!(flags & ProcessInitializationFlags::kNoStdioInitialization)) { @@ -730,6 +733,11 @@ void ResetStdio() { for (auto& s : stdio) { const int fd = &s - stdio; +#ifdef __Fuchsia__ + // In fuchsia stdin is not readily available. + if (fd == 0) continue; +#endif + struct stat tmp; if (-1 == fstat(fd, &tmp)) { CHECK_EQ(errno, EBADF); // Program closed file descriptor. diff --git a/src/node_os.cc b/src/node_os.cc index 23218310974b7b..1e84e65c169e29 100644 --- a/src/node_os.cc +++ b/src/node_os.cc @@ -78,7 +78,15 @@ static void GetHostname(const FunctionCallbackInfo& args) { static void GetOSInformation(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); uv_utsname_t info; - int err = uv_os_uname(&info); + int err = 0; +#ifdef __Fuchsia__ + // TODO(victor): Update uv_os_uname to get these informations for Fuchsia + info.sysname[0] = 0; + info.version[0] = 0; + info.release[0] = 0; +#else + err = uv_os_uname(&info); +#endif if (err != 0) { CHECK_GE(args.Length(), 1); @@ -336,6 +344,7 @@ static void GetUserInfo(const FunctionCallbackInfo& args) { args.GetReturnValue().Set(entry); } +#ifndef __Fuchsia__ static void SetPriority(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); @@ -375,7 +384,7 @@ static void GetPriority(const FunctionCallbackInfo& args) { args.GetReturnValue().Set(priority); } - +#endif // !__Fuchsia__ void Initialize(Local target, Local unused, diff --git a/src/node_process_methods.cc b/src/node_process_methods.cc index ae5f38ebf2c6b6..776d973384442b 100644 --- a/src/node_process_methods.cc +++ b/src/node_process_methods.cc @@ -29,7 +29,9 @@ typedef int mode_t; #else #include +#if !defined(__Fuchsia__) #include // getrlimit, setrlimit +#endif #include // tcgetattr, tcsetattr #endif @@ -100,6 +102,7 @@ inline Local get_fields_array_buffer( return arr->Buffer(); } +#ifndef __Fuchsia__ // CPUUsage use libuv's uv_getrusage() this-process resource usage accessor, // to access ru_utime (user CPU time used) and ru_stime (system CPU time used), // which are uv_timeval_t structs (long tv_sec, long tv_usec). @@ -122,6 +125,7 @@ static void CPUUsage(const FunctionCallbackInfo& args) { fields[0] = MICROS_PER_SEC * rusage.ru_utime.tv_sec + rusage.ru_utime.tv_usec; fields[1] = MICROS_PER_SEC * rusage.ru_stime.tv_sec + rusage.ru_stime.tv_usec; } +#endif static void Cwd(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); @@ -152,7 +156,7 @@ static void Kill(const FunctionCallbackInfo& args) { int sig; if (!args[1]->Int32Value(context).To(&sig)) return; - uv_pid_t own_pid = uv_os_getpid(); + int own_pid = uv_os_getpid(); if (sig > 0 && (pid == 0 || pid == -1 || pid == own_pid || pid == -own_pid) && !HasSignalJSHandler(sig)) { @@ -302,6 +306,7 @@ void GetActiveHandlesInfo(const FunctionCallbackInfo& args) { Array::New(env->isolate(), handles_info.data(), handles_info.size())); } +#ifndef __Fuchsia__ static void ResourceUsage(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); @@ -330,6 +335,7 @@ static void ResourceUsage(const FunctionCallbackInfo& args) { fields[14] = static_cast(rusage.ru_nvcsw); fields[15] = static_cast(rusage.ru_nivcsw); } +#endif #ifdef __POSIX__ static void DebugProcess(const FunctionCallbackInfo& args) { @@ -601,8 +607,10 @@ void RegisterExternalReferences(ExternalReferenceRegistry* registry) { registry->Register(RawDebug); registry->Register(MemoryUsage); registry->Register(Rss); +#ifndef __Fuchsia__ registry->Register(CPUUsage); registry->Register(ResourceUsage); +#endif registry->Register(GetActiveRequests); registry->Register(GetActiveRequestsInfo); diff --git a/src/node_report.cc b/src/node_report.cc index 455d5c4e875060..dae79243e208a8 100644 --- a/src/node_report.cc +++ b/src/node_report.cc @@ -13,7 +13,9 @@ #include #else // !_WIN32 #include +#ifndef __Fuchsia__ #include +#endif #include #endif @@ -651,6 +653,7 @@ static void PrintResourceUsage(JSONWriter* writer) { (uv_hrtime() - per_process::node_start_time) / (NANOS_PER_SEC); if (uptime == 0) uptime = 1; // avoid division by zero. +#ifndef __Fuchsia__ // Process and current thread usage statistics uv_rusage_t rusage; writer->json_objectstart("resourceUsage"); @@ -675,6 +678,7 @@ static void PrintResourceUsage(JSONWriter* writer) { writer->json_objectend(); } writer->json_objectend(); +#endif #ifdef RUSAGE_THREAD struct rusage stats; if (getrusage(RUSAGE_THREAD, &stats) == 0) { @@ -719,7 +723,7 @@ static void PrintSystemInformation(JSONWriter* writer) { writer->json_objectend(); -#ifndef _WIN32 +#if !defined(_WIN32) && !defined(__Fuchsia__) static struct { const char* description; int id; @@ -766,7 +770,7 @@ static void PrintSystemInformation(JSONWriter* writer) { } } writer->json_objectend(); -#endif // _WIN32 +#endif // _WIN32 && __Fuchsia__ PrintLoadedLibraries(writer); } diff --git a/src/node_watchdog.cc b/src/node_watchdog.cc index 7062d4aa661abb..68aff739e545e0 100644 --- a/src/node_watchdog.cc +++ b/src/node_watchdog.cc @@ -298,6 +298,7 @@ int SigintWatchdogHelper::Start() { return 0; } +#ifndef __Fuchsia__ #ifdef __POSIX__ CHECK_EQ(has_running_thread_, false); has_pending_signal_ = false; @@ -322,6 +323,7 @@ int SigintWatchdogHelper::Start() { } else { SetConsoleCtrlHandler(WinCtrlCHandlerRoutine, TRUE); } +#endif #endif return 0; @@ -350,6 +352,7 @@ bool SigintWatchdogHelper::Stop() { watchdogs_.clear(); } +#ifndef __Fuchsia__ #ifdef __POSIX__ if (!has_running_thread_) { has_pending_signal_ = false; @@ -370,7 +373,7 @@ bool SigintWatchdogHelper::Stop() { had_pending_signal = has_pending_signal_; has_pending_signal_ = false; - +#endif return had_pending_signal; } From f6f8fa498a6579f9506476eb68bbda286240504f Mon Sep 17 00:00:00 2001 From: Camillo Bruni Date: Thu, 22 Oct 2020 13:53:39 +0200 Subject: [PATCH 11/55] skip tests --- test/parallel/parallel.status | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index e8ca5953332c71..7428369dc33c82 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -19,6 +19,8 @@ test-finalization-group-regular-gc: SKIP test-finalization-group: SKIP # Skip flaky test test-code-cache: SKIP +# .js tools have been deprecated (migrated to modules) +test-tick-processor-arguments: SKIP [$system==win32] # https://github.com/nodejs/node/issues/24497 From 314c088ddffee5079d14948f51073fe3410701bc Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Tue, 5 Jan 2021 11:36:24 +0100 Subject: [PATCH 12/55] [test] Skip test-child-process-stdio-overlapped The test is currently failing when updating V8's Node-CI --- test/parallel/parallel.status | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 7428369dc33c82..5493aeb62cdaa3 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -21,6 +21,8 @@ test-finalization-group: SKIP test-code-cache: SKIP # .js tools have been deprecated (migrated to modules) test-tick-processor-arguments: SKIP +# Skip tests failing in V8 bots when updating Node +test-child-process-stdio-overlapped: SKIP [$system==win32] # https://github.com/nodejs/node/issues/24497 From 4de6f894fe30f2b0f73e936de67e4464d2f2d95d Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Tue, 6 Apr 2021 17:48:07 +0200 Subject: [PATCH 13/55] removing js tools from gyp --- node.gyp | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/node.gyp b/node.gyp index 9563073fd6c898..987c193caa0d01 100644 --- a/node.gyp +++ b/node.gyp @@ -35,17 +35,6 @@ '<@(node_library_files)', ], 'deps_files': [ - 'deps/v8/tools/splaytree.mjs', - 'deps/v8/tools/codemap.mjs', - 'deps/v8/tools/consarray.mjs', - 'deps/v8/tools/csvparser.mjs', - 'deps/v8/tools/profile.mjs', - 'deps/v8/tools/profile_view.mjs', - 'deps/v8/tools/logreader.mjs', - 'deps/v8/tools/arguments.mjs', - 'deps/v8/tools/tickprocessor.mjs', - 'deps/v8/tools/sourcemap.mjs', - 'deps/v8/tools/tickprocessor-driver.mjs', 'deps/acorn/acorn/dist/acorn.js', 'deps/acorn/acorn-walk/dist/walk.js', 'deps/cjs-module-lexer/lexer.js', From 699dfe021f96ef79fcb9ec82e0d28768f6645894 Mon Sep 17 00:00:00 2001 From: Niek van der Maas Date: Tue, 16 Mar 2021 11:30:24 +0100 Subject: [PATCH 14/55] [#11570] Disable Proxy test in parallel/test-v8-serdes.js See: https://bugs.chromium.org/p/v8/issues/detail?id=11570 This PR disables the Proxy test in test/parallel/test-v8-serdes.js while https://chromium-review.googlesource.com/c/v8/v8/+/2739980 is being merged. Will do another PR to re-enabled the (fixed) test once the 2739980 has landed. --- test/parallel/test-v8-serdes.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/parallel/test-v8-serdes.js b/test/parallel/test-v8-serdes.js index 1b6638ac1a90bd..e7b162bce71e02 100644 --- a/test/parallel/test-v8-serdes.js +++ b/test/parallel/test-v8-serdes.js @@ -55,6 +55,9 @@ const hostObject = new (internalBinding('js_stream').JSStream)(); } } +/* +// TODO(v8:11570): We disable the following test, while https://chromium-review.googlesource.com/c/v8/v8/+/2739980 is being merged +// After merging, a follow-up PR will be made to re-enable this test with changed behavior { const ser = new v8.DefaultSerializer(); ser._getDataCloneError = common.mustCall((message) => { @@ -68,6 +71,7 @@ const hostObject = new (internalBinding('js_stream').JSStream)(); ser.writeValue(new Proxy({}, {})); }, /foobar/); } +*/ { const ser = new v8.DefaultSerializer(); From 51316c1e4026601f9f8bb1f5e8b4af7854ad9237 Mon Sep 17 00:00:00 2001 From: Niek van der Maas Date: Tue, 16 Mar 2021 11:57:44 +0100 Subject: [PATCH 15/55] Fix JS lint issue --- test/parallel/test-v8-serdes.js | 36 +++++++++++++++++---------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/test/parallel/test-v8-serdes.js b/test/parallel/test-v8-serdes.js index e7b162bce71e02..02097da81ad518 100644 --- a/test/parallel/test-v8-serdes.js +++ b/test/parallel/test-v8-serdes.js @@ -55,23 +55,25 @@ const hostObject = new (internalBinding('js_stream').JSStream)(); } } -/* -// TODO(v8:11570): We disable the following test, while https://chromium-review.googlesource.com/c/v8/v8/+/2739980 is being merged -// After merging, a follow-up PR will be made to re-enable this test with changed behavior -{ - const ser = new v8.DefaultSerializer(); - ser._getDataCloneError = common.mustCall((message) => { - assert.strictEqual(message, '# could not be cloned.'); - return new Error('foobar'); - }); - - ser.writeHeader(); - - assert.throws(() => { - ser.writeValue(new Proxy({}, {})); - }, /foobar/); -} -*/ +// TODO(v8:11570): We disable the following test, while patch +// 2739980 is being merged +// After merging, a follow-up PR will be made to re-enable this test +// with changed behavior +// +// { +// const ser = new v8.DefaultSerializer(); +// ser._getDataCloneError = common.mustCall((message) => { +// assert.strictEqual(message, '[object Object] could not be cloned.'); +// return new Error('foobar'); +// }); +// +// ser.writeHeader(); +// +// assert.throws(() => { +// ser.writeValue(new Proxy({}, {})); +// }, /foobar/); +// } +// { const ser = new v8.DefaultSerializer(); From 4dfb4a24b52402d1d01028765921fd199ea60832 Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Tue, 6 Apr 2021 18:45:33 +0200 Subject: [PATCH 16/55] [js2c] Remove .mjs tools files --- test/parallel/test-process-versions.js | 2 ++ tools/js2c.py | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/test/parallel/test-process-versions.js b/test/parallel/test-process-versions.js index e63848b1faff90..aa59ef6feff507 100644 --- a/test/parallel/test-process-versions.js +++ b/test/parallel/test-process-versions.js @@ -10,7 +10,9 @@ const expected_keys = [ 'uv', 'v8', 'zlib', + 'ngtcp2', 'nghttp2', + 'nghttp3', 'napi', 'llhttp', ]; diff --git a/tools/js2c.py b/tools/js2c.py index e295949a18508d..e48bd6dda06d77 100755 --- a/tools/js2c.py +++ b/tools/js2c.py @@ -141,8 +141,9 @@ def JS2C(source_files, target): for filename in source_files['.js']: AddModule(filename, definitions, initializers) - for filename in source_files['.mjs']: - AddModule(filename, definitions, initializers) + # TODO(victorgomes): mjs tools are removed from node.gyp + # for filename in source_files['.mjs']: + # AddModule(filename, definitions, initializers) config_def, config_size = handle_config_gypi(source_files['config.gypi']) definitions.append(config_def) @@ -223,7 +224,8 @@ def main(): source_files = functools.reduce(SourceFileByExt, sources, {}) # Should have exactly 3 types: `.js`, `.mjs` and `.gypi` - assert len(source_files) == 3 + # TODO(victorgomes): mjs tools are removed from node.gyp + assert len(source_files) == 2 # Currently config.gypi is the only `.gypi` file allowed assert source_files['.gypi'] == ['config.gypi'] source_files['config.gypi'] = source_files.pop('.gypi')[0] From 7b57c4c9985d60ab30afc4ca8df879d8d3c2aa6a Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Wed, 7 Apr 2021 11:39:58 +0200 Subject: [PATCH 17/55] [test] Skip addons/openssl-binding Reason: https://bugs.chromium.org/p/v8/issues/detail\?id\=11550 --- test/addons/addons.status | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/addons/addons.status b/test/addons/addons.status index 008e83cdf01b8f..d57ee3ece981bd 100644 --- a/test/addons/addons.status +++ b/test/addons/addons.status @@ -10,9 +10,11 @@ zlib-binding/test: SKIP # Async-cleaup-hook fails. async-cleanup-hook/test: SKIP -[$arch==arm] +# [$arch==arm] # https://github.com/nodejs/node/issues/30786 -openssl-binding/test: PASS,FLAKY +# openssl-binding/test: PASS,FLAKY +# https://bugs.chromium.org/p/v8/issues/detail?id=11550 +openssl-binding/test: SKIP [$system==ibmi] openssl-binding/test: SKIP From 4a74082efc91398d57d88169c0f1bf18c29558e1 Mon Sep 17 00:00:00 2001 From: pthier Date: Thu, 17 Jun 2021 14:27:06 +0000 Subject: [PATCH 18/55] [test] Temproraily skip test parallel/test-fs-read until V8 roll --- test/parallel/parallel.status | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 5493aeb62cdaa3..1220c5a21d1fa2 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -24,6 +24,9 @@ test-tick-processor-arguments: SKIP # Skip tests failing in V8 bots when updating Node test-child-process-stdio-overlapped: SKIP +# Temporarily skip for https://crrev.com/c/2960211 +test-fs-read: SKIP + [$system==win32] # https://github.com/nodejs/node/issues/24497 test-timers-immediate-queue: PASS,FLAKY From f5459ebfcaa577651cf01011f4a53ca18dc3842b Mon Sep 17 00:00:00 2001 From: Timothy Gu Date: Sun, 20 Jun 2021 13:53:10 -0700 Subject: [PATCH 19/55] [test] skip parallel/test-util-inspect until V8 roll --- test/parallel/parallel.status | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 1220c5a21d1fa2..420c69ceb27645 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -27,6 +27,9 @@ test-child-process-stdio-overlapped: SKIP # Temporarily skip for https://crrev.com/c/2960211 test-fs-read: SKIP +# Temporarily skip for https://crrev.com/c/2974772 +test-util-inspect: SKIP + [$system==win32] # https://github.com/nodejs/node/issues/24497 test-timers-immediate-queue: PASS,FLAKY From 9601c4733d2796b173c7e1979d0df0f616e84703 Mon Sep 17 00:00:00 2001 From: Jakob Gruber Date: Mon, 23 Aug 2021 09:50:05 +0200 Subject: [PATCH 20/55] [test] Temporarily skip parallel/test-repl .. for crrev.com/c/3106647. --- test/parallel/parallel.status | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 420c69ceb27645..deb54800bc66c9 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -30,6 +30,9 @@ test-fs-read: SKIP # Temporarily skip for https://crrev.com/c/2974772 test-util-inspect: SKIP +# Temporarily skip for crrev.com/c/3106647 +test-repl: SKIP + [$system==win32] # https://github.com/nodejs/node/issues/24497 test-timers-immediate-queue: PASS,FLAKY From 4305e6150b6f20168b0aa1c9104da42f3396b79a Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Fri, 8 Apr 2022 10:44:38 +0200 Subject: [PATCH 21/55] [github] Remove unecessary CI --- .github/workflows/auto-start-ci.yml | 70 ------------------- .github/workflows/build-tarball.yml | 97 --------------------------- .github/workflows/build-windows.yml | 53 --------------- .github/workflows/close-stalled.yml | 38 ----------- .github/workflows/comment-labeled.yml | 40 ----------- .github/workflows/daily.yml | 33 --------- .github/workflows/doc.yml | 43 ------------ .github/workflows/label-pr.yml | 18 ----- .github/workflows/test-asan.yml | 61 ----------------- .github/workflows/test-linux.yml | 49 -------------- .github/workflows/test-macos.yml | 63 ----------------- 11 files changed, 565 deletions(-) delete mode 100644 .github/workflows/auto-start-ci.yml delete mode 100644 .github/workflows/build-tarball.yml delete mode 100644 .github/workflows/build-windows.yml delete mode 100644 .github/workflows/close-stalled.yml delete mode 100644 .github/workflows/comment-labeled.yml delete mode 100644 .github/workflows/daily.yml delete mode 100644 .github/workflows/doc.yml delete mode 100644 .github/workflows/label-pr.yml delete mode 100644 .github/workflows/test-asan.yml delete mode 100644 .github/workflows/test-linux.yml delete mode 100644 .github/workflows/test-macos.yml diff --git a/.github/workflows/auto-start-ci.yml b/.github/workflows/auto-start-ci.yml deleted file mode 100644 index 98f562fd00b767..00000000000000 --- a/.github/workflows/auto-start-ci.yml +++ /dev/null @@ -1,70 +0,0 @@ -name: Auto Start CI - -on: - schedule: - # Runs every five minutes (fastest the scheduler can run). Five minutes is - # optimistic, it can take longer to run. - # To understand why `schedule` is used instead of other events, refer to - # ./doc/contributing/commit-queue.md - - cron: '*/5 * * * *' - -concurrency: ${{ github.workflow }} - -env: - NODE_VERSION: lts/* - -permissions: - contents: read - -jobs: - get-prs-for-ci: - permissions: - pull-requests: read - if: github.repository == 'nodejs/node' - runs-on: ubuntu-latest - outputs: - numbers: ${{ steps.get_prs_for_ci.outputs.numbers }} - steps: - - name: Get Pull Requests - id: get_prs_for_ci - run: > - gh pr list \ - --repo ${{ github.repository }} \ - --label 'request-ci' \ - --json 'number' \ - -t '::set-output name=numbers::{{ range . }}{{ .number }} {{ end }}' \ - --limit 100 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - start-ci: - permissions: - contents: read - pull-requests: write - needs: get-prs-for-ci - if: needs.get-prs-for-ci.outputs.numbers != '' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - persist-credentials: false - - - name: Install Node.js - uses: actions/setup-node@v3 - with: - node-version: ${{ env.NODE_VERSION }} - - - name: Install node-core-utils - run: npm install -g node-core-utils - - - name: Setup node-core-utils - run: | - ncu-config set username ${{ secrets.JENKINS_USER }} - ncu-config set token none - ncu-config set jenkins_token ${{ secrets.JENKINS_TOKEN }} - ncu-config set owner "${{ github.repository_owner }}" - ncu-config set repo "$(echo ${{ github.repository }} | cut -d/ -f2)" - - - name: Start the CI - run: ./tools/actions/start-ci.sh ${{ needs.get-prs-for-ci.outputs.numbers }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml deleted file mode 100644 index 2ced884f35c539..00000000000000 --- a/.github/workflows/build-tarball.yml +++ /dev/null @@ -1,97 +0,0 @@ -name: Build from tarball - -on: - pull_request: - types: [opened, synchronize, reopened, ready_for_review] - paths-ignore: - - .mailmap - - '**.md' - - AUTHORS - - doc/** - - .github/** - - '!.github/workflows/build-tarball.yml' - push: - branches: - - main - - v[0-9]+.x-staging - - v[0-9]+.x - paths-ignore: - - .mailmap - - '**.md' - - AUTHORS - - doc/** - - .github/** - - '!.github/workflows/build-tarball.yml' - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -env: - PYTHON_VERSION: '3.10' - FLAKY_TESTS: keep_retrying - -permissions: - contents: read - -jobs: - build-tarball: - if: github.event.pull_request.draft == false - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - persist-credentials: false - - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v3 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Environment Information - run: npx envinfo - - name: Make tarball - run: | - export DISTTYPE=nightly - export DATESTRING=`date "+%Y-%m-%d"` - export COMMIT=$(git rev-parse --short=10 "$GITHUB_SHA") - ./configure && make tar -j8 SKIP_XZ=1 - mkdir tarballs - mv *.tar.gz tarballs - - name: Upload tarball artifact - uses: actions/upload-artifact@v3 - with: - name: tarballs - path: tarballs - test-tarball-linux: - needs: build-tarball - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - persist-credentials: false - - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v3 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Environment Information - run: npx envinfo - - name: Download tarball - uses: actions/download-artifact@v3 - with: - name: tarballs - path: tarballs - - name: Extract tarball - run: | - tar xzf tarballs/*.tar.gz -C $RUNNER_TEMP - echo "TAR_DIR=$RUNNER_TEMP/`basename tarballs/*.tar.gz .tar.gz`" >> $GITHUB_ENV - - name: Copy directories needed for testing - run: | - cp -r tools/node_modules $TAR_DIR/tools - cp -r tools/eslint-rules $TAR_DIR/tools - - name: Build - run: | - cd $TAR_DIR - make build-ci -j2 V=1 - - name: Test - run: | - cd $TAR_DIR - make run-ci -j2 V=1 TEST_CI_ARGS="-p dots --measure-flakiness 9" diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml deleted file mode 100644 index af376d3aa5c533..00000000000000 --- a/.github/workflows/build-windows.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: Build Windows - -on: - pull_request: - paths-ignore: - - README.md - - .github/** - - '!.github/workflows/build-windows.yml' - types: [opened, synchronize, reopened, ready_for_review] - push: - branches: - - main - - canary - - v[0-9]+.x-staging - - v[0-9]+.x - paths-ignore: - - README.md - - .github/** - - '!.github/workflows/build-windows.yml' - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -env: - PYTHON_VERSION: '3.10' - FLAKY_TESTS: keep_retrying - -permissions: - contents: read - -jobs: - build-windows: - if: github.event.pull_request.draft == false - strategy: - matrix: - windows: [windows-2019] - fail-fast: false - runs-on: ${{ matrix.windows }} - steps: - - uses: actions/checkout@v3 - with: - persist-credentials: false - - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v3 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Install deps - run: choco install nasm - - name: Environment Information - run: npx envinfo - - name: Build - run: ./vcbuild.bat diff --git a/.github/workflows/close-stalled.yml b/.github/workflows/close-stalled.yml deleted file mode 100644 index 509d79056f97e3..00000000000000 --- a/.github/workflows/close-stalled.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Close stalled issues and PRs -on: - schedule: - - cron: 0 0 * * * - -env: - CLOSE_MESSAGE: > - Closing this because it has stalled. Feel free to reopen if this issue/PR - is still relevant, or to ping the collaborator who labelled it stalled if - you have any questions. - -permissions: - contents: read - -jobs: - stale: - permissions: - issues: write # for actions/stale to close stale issues - pull-requests: write # for actions/stale to close stale PRs - if: github.repository == 'nodejs/node' - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v4 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - days-before-close: 30 - stale-pr-label: stalled - stale-issue-label: stalled - close-issue-message: ${{ env.CLOSE_MESSAGE }} - close-pr-message: ${{ env.CLOSE_MESSAGE }} - # used to filter issues to check whether or not should be closed, avoids hitting maximum operations allowed if needing to paginate through all open issues - only-labels: stalled - # max requests it will send per run to the GitHub API before it deliberately exits to avoid hitting API rate limits - operations-per-run: 500 - # deactivates automatic removal of stalled label if issue gets any activity - remove-stale-when-updated: false - # deactivates automatic stale labelling as we prefer to do that manually - days-before-stale: -1 diff --git a/.github/workflows/comment-labeled.yml b/.github/workflows/comment-labeled.yml deleted file mode 100644 index 5f59a48bb5a6d0..00000000000000 --- a/.github/workflows/comment-labeled.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Comment on issues and PRs when labeled -on: - issues: - types: [labeled] - pull_request_target: - types: [labeled] - -env: - STALE_MESSAGE: > - This issue/PR was marked as stalled, it will be automatically closed in 30 days. - If it should remain open, please leave a comment explaining why it should remain open. - FAST_TRACK_MESSAGE: Fast-track has been requested by @${{ github.actor }}. Please 👍 to approve. - -permissions: - contents: read - -jobs: - stale-comment: - permissions: - issues: write - pull-requests: write - if: github.repository == 'nodejs/node' && github.event.label.name == 'stalled' - runs-on: ubuntu-latest - steps: - - name: Post stalled comment - env: - NUMBER: ${{ github.event.issue.number || github.event.pull_request.number }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh issue comment "$NUMBER" --repo ${{ github.repository }} --body "$STALE_MESSAGE" - - fast-track: - permissions: - pull-requests: write - if: github.repository == 'nodejs/node' && github.event_name == 'pull_request_target' && github.event.label.name == 'fast-track' - runs-on: ubuntu-latest - steps: - - name: Request Fast-Track - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh pr comment ${{ github.event.pull_request.number }} --repo ${{ github.repository }} --body "$FAST_TRACK_MESSAGE" diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml deleted file mode 100644 index f14bde4c7fb629..00000000000000 --- a/.github/workflows/daily.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Node.js daily job - -on: - workflow_dispatch: - schedule: - - cron: 0 0 * * * - -env: - NODE_VERSION: lts/* - -permissions: - contents: read - -jobs: - build-lto: - runs-on: ubuntu-latest - # not working on gcc-8 and gcc-9 see https://github.com/nodejs/node/issues/38570 - container: gcc:11 - steps: - - uses: actions/checkout@v3 - with: - persist-credentials: false - - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@v3 - with: - node-version: ${{ env.NODE_VERSION }} - - name: Environment Information - run: npx envinfo - - name: Build lto - run: | - apt-get update && apt-get install ninja-build python-is-python3 -y - ./configure --enable-lto --ninja - ninja -C out/Release diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml deleted file mode 100644 index 76660343ca2f46..00000000000000 --- a/.github/workflows/doc.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: Test and upload documentation to artifacts - -on: - pull_request: - types: [opened, synchronize, reopened, ready_for_review] - push: - branches: - - main - - v[0-9]+.x-staging - - v[0-9]+.x - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -env: - NODE_VERSION: lts/* - -permissions: - contents: read - -jobs: - build-docs: - if: github.event.pull_request.draft == false - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - persist-credentials: false - - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@v3 - with: - node-version: ${{ env.NODE_VERSION }} - - name: Environment Information - run: npx envinfo - - name: Build - run: NODE=$(command -v node) make doc-only - - uses: actions/upload-artifact@v3 - with: - name: docs - path: out/doc - - name: Test - run: NODE=$(command -v node) make test-doc-ci TEST_CI_ARGS="-p actions --measure-flakiness 9" diff --git a/.github/workflows/label-pr.yml b/.github/workflows/label-pr.yml deleted file mode 100644 index 922a9359f5ed20..00000000000000 --- a/.github/workflows/label-pr.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Label PRs - -on: - pull_request_target: - types: [opened] - -permissions: - contents: read - -jobs: - label: - runs-on: ubuntu-latest - - steps: - - uses: nodejs/node-pr-labeler@v1 - with: - repo-token: ${{ secrets.GH_USER_TOKEN }} - configuration-path: .github/label-pr-config.yml diff --git a/.github/workflows/test-asan.yml b/.github/workflows/test-asan.yml deleted file mode 100644 index c8e7a09e2e4efd..00000000000000 --- a/.github/workflows/test-asan.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: Test ASan - -on: - pull_request: - types: [opened, synchronize, reopened, ready_for_review] - paths-ignore: - - .mailmap - - '**.md' - - AUTHORS - - doc/** - - .github/** - - '!.github/workflows/test-asan.yml' - push: - branches: - - main - - canary - - v[0-9]+.x-staging - - v[0-9]+.x - paths-ignore: - - .mailmap - - '**.md' - - AUTHORS - - doc/** - - .github/** - - '!.github/workflows/test-asan.yml' - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -env: - ASAN_OPTIONS: intercept_tls_get_addr=0 - PYTHON_VERSION: '3.10' - FLAKY_TESTS: keep_retrying - -permissions: - contents: read - -jobs: - test-asan: - if: github.event.pull_request.draft == false - runs-on: ubuntu-latest - env: - CC: clang - CXX: clang++ - LINK: clang++ - CONFIG_FLAGS: --enable-asan - steps: - - uses: actions/checkout@v3 - with: - persist-credentials: false - - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v3 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Environment Information - run: npx envinfo - - name: Build - run: make build-ci -j2 V=1 - - name: Test - run: make run-ci -j2 V=1 TEST_CI_ARGS="-p actions -t 300 --measure-flakiness 9" diff --git a/.github/workflows/test-linux.yml b/.github/workflows/test-linux.yml deleted file mode 100644 index 24196849d1bac8..00000000000000 --- a/.github/workflows/test-linux.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Test Linux - -on: - pull_request: - paths-ignore: - - README.md - - .github/** - - '!.github/workflows/test-linux.yml' - types: [opened, synchronize, reopened, ready_for_review] - push: - branches: - - main - - canary - - v[0-9]+.x-staging - - v[0-9]+.x - paths-ignore: - - README.md - - .github/** - - '!.github/workflows/test-linux.yml' - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -env: - PYTHON_VERSION: '3.10' - FLAKY_TESTS: keep_retrying - -permissions: - contents: read - -jobs: - test-linux: - if: github.event.pull_request.draft == false - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - persist-credentials: false - - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v3 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Environment Information - run: npx envinfo - - name: Build - run: make build-ci -j2 V=1 CONFIG_FLAGS="--error-on-warn" - - name: Test - run: make run-ci -j2 V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9" diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml deleted file mode 100644 index 7faddc8eaedaec..00000000000000 --- a/.github/workflows/test-macos.yml +++ /dev/null @@ -1,63 +0,0 @@ -name: Test macOS - -on: - pull_request: - types: [opened, synchronize, reopened, ready_for_review] - paths-ignore: - - .mailmap - - '**.md' - - AUTHORS - - doc/** - - .github/** - - '!.github/workflows/test-macos.yml' - push: - branches: - - main - - canary - - v[0-9]+.x-staging - - v[0-9]+.x - paths-ignore: - - .mailmap - - '**.md' - - AUTHORS - - doc/** - - .github/** - - '!.github/workflows/test-macos.yml' - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -env: - PYTHON_VERSION: '3.10' - FLAKY_TESTS: keep_retrying - -permissions: - contents: read - -jobs: - test-macOS: - if: github.event.pull_request.draft == false - runs-on: macos-latest - steps: - - uses: actions/checkout@v3 - with: - persist-credentials: false - - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v3 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Environment Information - run: npx envinfo - # The `npm ci` for this step fails a lot as part of the Test step. Run it - # now so that we don't have to wait 2 hours for the Build step to pass - # first before that failure happens. (And if there's something about - # `make run-ci -j2` that is causing the failure and the failure doesn't - # happen anymore running this step here first, that's also useful - # information.) - - name: tools/doc/node_modules workaround - run: make tools/doc/node_modules - - name: Build - run: make build-ci -j2 V=1 CONFIG_FLAGS="--error-on-warn" - - name: Test - run: make run-ci -j2 V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9" From bc60f70b8356a67bcf8b0d0571254085d06d85a7 Mon Sep 17 00:00:00 2001 From: pthier Date: Mon, 6 Sep 2021 09:27:18 +0000 Subject: [PATCH 22/55] [test] Update and re-enable test/parallel/test-fs-read.js Update error message and re-enable test. --- test/parallel/parallel.status | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index deb54800bc66c9..5db7858cc7a895 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -24,9 +24,6 @@ test-tick-processor-arguments: SKIP # Skip tests failing in V8 bots when updating Node test-child-process-stdio-overlapped: SKIP -# Temporarily skip for https://crrev.com/c/2960211 -test-fs-read: SKIP - # Temporarily skip for https://crrev.com/c/2974772 test-util-inspect: SKIP From d59e124d7fccdcef7c70f84abd6f0eb0652a56e0 Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Tue, 12 Oct 2021 17:08:52 +0200 Subject: [PATCH 23/55] [jinja2] Use Python2 --- test/parallel/test-process-versions.js | 2 -- tools/inspector_protocol/jinja2/tests.py | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/parallel/test-process-versions.js b/test/parallel/test-process-versions.js index aa59ef6feff507..e63848b1faff90 100644 --- a/test/parallel/test-process-versions.js +++ b/test/parallel/test-process-versions.js @@ -10,9 +10,7 @@ const expected_keys = [ 'uv', 'v8', 'zlib', - 'ngtcp2', 'nghttp2', - 'nghttp3', 'napi', 'llhttp', ]; diff --git a/tools/inspector_protocol/jinja2/tests.py b/tools/inspector_protocol/jinja2/tests.py index b14f85ff148c1c..316df4a1026c87 100644 --- a/tools/inspector_protocol/jinja2/tests.py +++ b/tools/inspector_protocol/jinja2/tests.py @@ -10,7 +10,9 @@ """ import operator import re -from collections.abc import Mapping +# Commenting for PY2 compatibility. +# from collections.abc import Mapping +from collections import Mapping from jinja2.runtime import Undefined from jinja2._compat import text_type, string_types, integer_types import decimal From e877f059fdaa31ffb297018dfb96f620e77ad256 Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Mon, 18 Oct 2021 14:47:15 +0200 Subject: [PATCH 24/55] [test] Skip parallel/test-v8-stats --- test/parallel/parallel.status | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 5db7858cc7a895..50efbd53d66c60 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -30,6 +30,8 @@ test-util-inspect: SKIP # Temporarily skip for crrev.com/c/3106647 test-repl: SKIP +test-v8-stats: SKIP + [$system==win32] # https://github.com/nodejs/node/issues/24497 test-timers-immediate-queue: PASS,FLAKY From 429e10c2dd92b3dbf3bad296cd80cb8eb46a139b Mon Sep 17 00:00:00 2001 From: Shu-yu Guo Date: Mon, 1 Nov 2021 10:53:57 -0700 Subject: [PATCH 25/55] [test] Skip parallel/test-datetime-change-notify pending merge --- test/parallel/parallel.status | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 50efbd53d66c60..6067948666f482 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -32,6 +32,9 @@ test-repl: SKIP test-v8-stats: SKIP +# Skip until next merge with upstream for https://github.com/nodejs/node/pull/40670 +test-datetime-change-notify: SKIP + [$system==win32] # https://github.com/nodejs/node/issues/24497 test-timers-immediate-queue: PASS,FLAKY From 8b69f5e9a51aad167c7d096b663a732d7dd48b09 Mon Sep 17 00:00:00 2001 From: pthier Date: Fri, 19 Nov 2021 12:56:39 +0000 Subject: [PATCH 26/55] [test] Re-enable parallel/test-datetime-change-notify --- test/parallel/parallel.status | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 6067948666f482..50efbd53d66c60 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -32,9 +32,6 @@ test-repl: SKIP test-v8-stats: SKIP -# Skip until next merge with upstream for https://github.com/nodejs/node/pull/40670 -test-datetime-change-notify: SKIP - [$system==win32] # https://github.com/nodejs/node/issues/24497 test-timers-immediate-queue: PASS,FLAKY From 4be5f591ad44ee0a69e977791f0d2b7f9aa3307c Mon Sep 17 00:00:00 2001 From: pthier Date: Thu, 9 Dec 2021 14:43:52 +0000 Subject: [PATCH 27/55] [test] Temporary disable test/parallel/test-npm-install See https://crbug.com/v8/12491 --- test/parallel/parallel.status | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 50efbd53d66c60..b9b1e2296280e5 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -24,6 +24,9 @@ test-tick-processor-arguments: SKIP # Skip tests failing in V8 bots when updating Node test-child-process-stdio-overlapped: SKIP +# Temporarily skip until https://crbug.com/v8/12491 is resolved +test-npm-install: SKIP + # Temporarily skip for https://crrev.com/c/2974772 test-util-inspect: SKIP From 4ac7d30b69e5a5d3bc4098a2023fc3b75544a805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marja=20H=C3=B6ltt=C3=A4?= Date: Fri, 14 Jan 2022 13:31:17 +0100 Subject: [PATCH 28/55] Skip a test which prevents updating the ValueSerializer format --- test/parallel/parallel.status | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index b9b1e2296280e5..d09d872154099a 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -33,6 +33,9 @@ test-util-inspect: SKIP # Temporarily skip for crrev.com/c/3106647 test-repl: SKIP +# Skip a test which prevents updating the ValueSerialier format +test-v8-serdes: SKIP + test-v8-stats: SKIP [$system==win32] From dc4aa7fea85146d7fe994a6d0499ce75df825949 Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Fri, 14 Jan 2022 13:48:18 +0100 Subject: [PATCH 29/55] Fix typo --- test/parallel/parallel.status | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index d09d872154099a..b82de7d87fabb6 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -33,7 +33,7 @@ test-util-inspect: SKIP # Temporarily skip for crrev.com/c/3106647 test-repl: SKIP -# Skip a test which prevents updating the ValueSerialier format +# Skip a test which prevents updating the ValueSerialiser format test-v8-serdes: SKIP test-v8-stats: SKIP From 1bf6ed22dac5cc6e35a68fe59346c1a1119b3a19 Mon Sep 17 00:00:00 2001 From: pthier Date: Tue, 15 Feb 2022 14:45:40 +0000 Subject: [PATCH 30/55] [test] Re-enable test/parallel/test-npm-install --- test/parallel/parallel.status | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index b82de7d87fabb6..49190a88dfbd18 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -24,9 +24,6 @@ test-tick-processor-arguments: SKIP # Skip tests failing in V8 bots when updating Node test-child-process-stdio-overlapped: SKIP -# Temporarily skip until https://crbug.com/v8/12491 is resolved -test-npm-install: SKIP - # Temporarily skip for https://crrev.com/c/2974772 test-util-inspect: SKIP From b9b5f2efcb3e947d1aa6cc2d891d8af8679bd140 Mon Sep 17 00:00:00 2001 From: Nikolaos Papaspyrou Date: Thu, 24 Feb 2022 19:02:20 +0100 Subject: [PATCH 31/55] [test] Temporarily disable test/parallel/test-trace-events-{all,v8} --- test/parallel/parallel.status | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 49190a88dfbd18..8bfd5120395664 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -24,6 +24,10 @@ test-tick-processor-arguments: SKIP # Skip tests failing in V8 bots when updating Node test-child-process-stdio-overlapped: SKIP +# Temporarily skip for https://crrev.com/c/3487548 +test-trace-events-all: SKIP +test-trace-events-v8: SKIP + # Temporarily skip for https://crrev.com/c/2974772 test-util-inspect: SKIP From 3f4599d25751433b10ef71778c04ca50ec0924e0 Mon Sep 17 00:00:00 2001 From: Nikolaos Papaspyrou Date: Wed, 9 Mar 2022 13:30:46 +0100 Subject: [PATCH 32/55] [test] Re-enable test/parallel/test-trace-events-{all,v8} --- test/parallel/parallel.status | 4 ---- 1 file changed, 4 deletions(-) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 8bfd5120395664..49190a88dfbd18 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -24,10 +24,6 @@ test-tick-processor-arguments: SKIP # Skip tests failing in V8 bots when updating Node test-child-process-stdio-overlapped: SKIP -# Temporarily skip for https://crrev.com/c/3487548 -test-trace-events-all: SKIP -test-trace-events-v8: SKIP - # Temporarily skip for https://crrev.com/c/2974772 test-util-inspect: SKIP From affd8247e72a0ed921e1a61e9fed49eae32cd336 Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Wed, 16 Mar 2022 10:28:48 +0100 Subject: [PATCH 33/55] Reenable test/parallel/test-repl.js --- test/parallel/parallel.status | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 49190a88dfbd18..ab0cac6c73bda8 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -27,9 +27,6 @@ test-child-process-stdio-overlapped: SKIP # Temporarily skip for https://crrev.com/c/2974772 test-util-inspect: SKIP -# Temporarily skip for crrev.com/c/3106647 -test-repl: SKIP - # Skip a test which prevents updating the ValueSerialiser format test-v8-serdes: SKIP From 6d276b90ee1fb816c6007e452cc7379efd7d6312 Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Thu, 24 Mar 2022 16:42:21 +0100 Subject: [PATCH 34/55] Skip test/parallel/test-repl-mode.js --- test/parallel/parallel.status | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index ab0cac6c73bda8..9da4d6963be75b 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -23,6 +23,8 @@ test-code-cache: SKIP test-tick-processor-arguments: SKIP # Skip tests failing in V8 bots when updating Node test-child-process-stdio-overlapped: SKIP +# https://github.com/nodejs/node/issues/42458 +test-repl-mode: SKIP # Temporarily skip for https://crrev.com/c/2974772 test-util-inspect: SKIP From 52d6e61055de6a00869b0cf301ad2c144b4945d9 Mon Sep 17 00:00:00 2001 From: Benedikt Meurer Date: Mon, 4 Apr 2022 12:07:04 +0200 Subject: [PATCH 35/55] Skip tests to unblock https://crrev.com/c/3565724 --- test/message/message.status | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/test/message/message.status b/test/message/message.status index bd3f488b7bedd6..612b8442a9f411 100644 --- a/test/message/message.status +++ b/test/message/message.status @@ -5,6 +5,33 @@ prefix message # sample-test : PASS,FLAKY [true] # This section applies to all platforms +# https://crrev.com/c/3565724 +async_error_nexttick_main: SKIP +core_line_numbers: SKIP +error_aggregateTwoErrors: SKIP +error_exit: SKIP +error_with_nul: SKIP +events_unhandled_error_common_trace: SKIP +events_unhandled_error_nexttick: SKIP +events_unhandled_error_sameline: SKIP +events_unhandled_error_subclass: SKIP +if-error-has-good-stack: SKIP +nexttick_throw: SKIP +source_map_disabled_by_api: SKIP +source_map_enabled_by_api: SKIP +source_map_enclosing_function: SKIP +source_map_reference_error_tabs: SKIP +source_map_throw_catch: SKIP +source_map_throw_first_tick: SKIP +source_map_throw_icu: SKIP +source_map_throw_set_immediate: SKIP +test-no-extra-info-on-fatal-exception: SKIP +timeout_throw: SKIP +undefined_reference_in_new_context: SKIP +vm_display_runtime_error: SKIP +vm_display_syntax_error: SKIP +vm_dont_display_runtime_error: SKIP +vm_dont_display_syntax_error: SKIP [$system==win32] From e94755e4b93fd72ccc868ec9239c494ee036106d Mon Sep 17 00:00:00 2001 From: Benedikt Meurer Date: Mon, 4 Apr 2022 15:42:44 +0200 Subject: [PATCH 36/55] Skip message tests correctly. --- test/message/message.status | 52 ++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/test/message/message.status b/test/message/message.status index 612b8442a9f411..aa1e23879edd63 100644 --- a/test/message/message.status +++ b/test/message/message.status @@ -6,32 +6,32 @@ prefix message [true] # This section applies to all platforms # https://crrev.com/c/3565724 -async_error_nexttick_main: SKIP -core_line_numbers: SKIP -error_aggregateTwoErrors: SKIP -error_exit: SKIP -error_with_nul: SKIP -events_unhandled_error_common_trace: SKIP -events_unhandled_error_nexttick: SKIP -events_unhandled_error_sameline: SKIP -events_unhandled_error_subclass: SKIP -if-error-has-good-stack: SKIP -nexttick_throw: SKIP -source_map_disabled_by_api: SKIP -source_map_enabled_by_api: SKIP -source_map_enclosing_function: SKIP -source_map_reference_error_tabs: SKIP -source_map_throw_catch: SKIP -source_map_throw_first_tick: SKIP -source_map_throw_icu: SKIP -source_map_throw_set_immediate: SKIP -test-no-extra-info-on-fatal-exception: SKIP -timeout_throw: SKIP -undefined_reference_in_new_context: SKIP -vm_display_runtime_error: SKIP -vm_display_syntax_error: SKIP -vm_dont_display_runtime_error: SKIP -vm_dont_display_syntax_error: SKIP +async_error_nexttick_main.js: SKIP +core_line_numbers.js: SKIP +error_aggregateTwoErrors.js: SKIP +error_exit.js: SKIP +error_with_nul.js: SKIP +events_unhandled_error_common_trace.js: SKIP +events_unhandled_error_nexttick.js: SKIP +events_unhandled_error_sameline.js: SKIP +events_unhandled_error_subclass.js: SKIP +if-error-has-good-stack.js: SKIP +nexttick_throw.js: SKIP +source_map_disabled_by_api.js: SKIP +source_map_enabled_by_api.js: SKIP +source_map_enclosing_function.js: SKIP +source_map_reference_error_tabs.js: SKIP +source_map_throw_catch.js: SKIP +source_map_throw_first_tick.js: SKIP +source_map_throw_icu.js: SKIP +source_map_throw_set_immediate.js: SKIP +test-no-extra-info-on-fatal-exception.js: SKIP +timeout_throw.js: SKIP +undefined_reference_in_new_context.js: SKIP +vm_display_runtime_error.js: SKIP +vm_display_syntax_error.js: SKIP +vm_dont_display_runtime_error.js: SKIP +vm_dont_display_syntax_error.js: SKIP [$system==win32] From 58c878c38f8acadd03bc330584395a65b4d0ca31 Mon Sep 17 00:00:00 2001 From: pthier Date: Fri, 13 May 2022 08:48:41 +0000 Subject: [PATCH 37/55] [test] Temproarily skip tests --- test/es-module/es-module.status | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/es-module/es-module.status b/test/es-module/es-module.status index 971d634c2a6ccf..52b1770eeefeb1 100644 --- a/test/es-module/es-module.status +++ b/test/es-module/es-module.status @@ -5,3 +5,7 @@ prefix es-module # sample-test : PASS,FLAKY [true] # This section applies to all platforms + +# Skip tests to unblock https://crbug.com/v8/6551 +test-esm-data-urls: SKIP +test-esm-invalid-pjson: SKIP From 680f67856d1ec4dfa21d667426f0c0920abedd26 Mon Sep 17 00:00:00 2001 From: Clemens Backes Date: Mon, 13 Jun 2022 12:38:15 +0200 Subject: [PATCH 38/55] Disable freezing V8 flags on initialization (#141) Node still changes flags after initializationg; either because tests need to set their own flags (which V8 tests also still allow), or because it's explicitly requested via the "v8.setFlagsFromString" method that Node provides. --- src/node.cc | 5 +++++ test/cctest/node_test_fixture.cc | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/node.cc b/src/node.cc index acd0c79ed00c96..f7fdb3b94be6d5 100644 --- a/src/node.cc +++ b/src/node.cc @@ -893,6 +893,11 @@ int InitializeNodeWithArgs(std::vector* argv, // used in diagnostic reports. per_process::cli_options->cmdline = *argv; + // Node provides a "v8.setFlagsFromString" method to dynamically change flags. + // Hence do not freeze flags when initializing V8. In a browser setting, this + // is security relevant, for Node it's less important. + V8::SetFlagsFromString("--no-freeze-flags-after-init"); + #if defined(NODE_V8_OPTIONS) // Should come before the call to V8::SetFlagsFromCommandLine() // so the user can disable a flag --foo at run-time by passing diff --git a/test/cctest/node_test_fixture.cc b/test/cctest/node_test_fixture.cc index 8179c7864436b1..f0e5b48d4a84e1 100644 --- a/test/cctest/node_test_fixture.cc +++ b/test/cctest/node_test_fixture.cc @@ -24,6 +24,11 @@ void NodeTestEnvironment::SetUp() { #endif cppgc::InitializeProcess( NodeZeroIsolateTestFixture::platform->GetPageAllocator()); + + // Before initializing V8, disable the --freeze-flags-after-init flag, so + // individual tests can set their own flags. + v8::V8::SetFlagsFromString("--no-freeze-flags-after-init"); + v8::V8::Initialize(); } From 6dcbec9fc6e5b1dc9fe962a1ce711001bda37a1f Mon Sep 17 00:00:00 2001 From: pthier Date: Tue, 14 Jun 2022 14:07:37 +0000 Subject: [PATCH 39/55] Fix lint-cpp errors --- src/node_os.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/node_os.cc b/src/node_os.cc index 1e84e65c169e29..ee1266442816f7 100644 --- a/src/node_os.cc +++ b/src/node_os.cc @@ -384,7 +384,7 @@ static void GetPriority(const FunctionCallbackInfo& args) { args.GetReturnValue().Set(priority); } -#endif // !__Fuchsia__ +#endif // !__Fuchsia__ void Initialize(Local target, Local unused, From bdbd7ceb4a3b6180aa64282e78085f9296c83032 Mon Sep 17 00:00:00 2001 From: pthier Date: Tue, 14 Jun 2022 14:08:33 +0000 Subject: [PATCH 40/55] Update jinja for Python3 --- tools/inspector_protocol/jinja2/tests.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tools/inspector_protocol/jinja2/tests.py b/tools/inspector_protocol/jinja2/tests.py index 316df4a1026c87..b14f85ff148c1c 100644 --- a/tools/inspector_protocol/jinja2/tests.py +++ b/tools/inspector_protocol/jinja2/tests.py @@ -10,9 +10,7 @@ """ import operator import re -# Commenting for PY2 compatibility. -# from collections.abc import Mapping -from collections import Mapping +from collections.abc import Mapping from jinja2.runtime import Undefined from jinja2._compat import text_type, string_types, integer_types import decimal From 8914f20c9cc8f977c2e33cf4307cfa8f51ae96cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marja=20H=C3=B6ltt=C3=A4?= Date: Tue, 5 Jul 2022 11:32:01 +0200 Subject: [PATCH 41/55] Skip tests asserting an exact error message (#142) Merging based on marja@ request. --- test/parallel/parallel.status | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 9da4d6963be75b..2b0fc3501d62f5 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -113,3 +113,7 @@ test-http-server-unconsume: PASS, FLAKY test-http-upgrade-advertise: PASS, FLAKY test-tls-client-mindhsize: PASS, FLAKY test-tls-write-error: PASS, FLAKY +# https://github.com/nodejs/node/issues/43676 +parallel/test-repl-pretty-stack: SKIP +parallel/test-repl-pretty-custom-stack: SKIP + From c83ac5aa9295238c52d4b58b8e63a1f649404ab2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marja=20H=C3=B6ltt=C3=A4?= Date: Mon, 11 Jul 2022 09:43:26 +0200 Subject: [PATCH 42/55] Fix skipping tests --- test/parallel/parallel.status | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 2b0fc3501d62f5..5d4c64e23096d9 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -114,6 +114,5 @@ test-http-upgrade-advertise: PASS, FLAKY test-tls-client-mindhsize: PASS, FLAKY test-tls-write-error: PASS, FLAKY # https://github.com/nodejs/node/issues/43676 -parallel/test-repl-pretty-stack: SKIP -parallel/test-repl-pretty-custom-stack: SKIP - +test-repl-pretty-stack: SKIP +test-repl-pretty-custom-stack: SKIP From 95ada16171e7d03395ce4e5bffcd5026aa72cf03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marja=20H=C3=B6ltt=C3=A4?= Date: Mon, 11 Jul 2022 13:26:03 +0200 Subject: [PATCH 43/55] Fix test skipping again --- test/parallel/parallel.status | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 5d4c64e23096d9..74c5cbd5177b13 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -34,6 +34,10 @@ test-v8-serdes: SKIP test-v8-stats: SKIP +# https://github.com/nodejs/node/issues/43676 +test-repl-pretty-stack: SKIP +test-repl-pretty-custom-stack: SKIP + [$system==win32] # https://github.com/nodejs/node/issues/24497 test-timers-immediate-queue: PASS,FLAKY @@ -113,6 +117,3 @@ test-http-server-unconsume: PASS, FLAKY test-http-upgrade-advertise: PASS, FLAKY test-tls-client-mindhsize: PASS, FLAKY test-tls-write-error: PASS, FLAKY -# https://github.com/nodejs/node/issues/43676 -test-repl-pretty-stack: SKIP -test-repl-pretty-custom-stack: SKIP From 49beedd6f7dd342c85996561b95cc7c4b36872d6 Mon Sep 17 00:00:00 2001 From: Clemens Backes Date: Thu, 21 Jul 2022 15:35:03 +0200 Subject: [PATCH 44/55] [platform] Override CreateJob instead of PostJob (#145) PostJob will call out to CreateJob in its default implementation, so it's sufficient to only override CreateJob. The default implementation of CreateJob will return a nullptr though, so we cannot use it in V8 before Node overrides it. --- src/node_platform.cc | 4 ++-- src/node_platform.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/node_platform.cc b/src/node_platform.cc index 9787cbb3edc2e2..6c627bf25778c0 100644 --- a/src/node_platform.cc +++ b/src/node_platform.cc @@ -518,8 +518,8 @@ bool NodePlatform::FlushForegroundTasks(Isolate* isolate) { return per_isolate->FlushForegroundTasksInternal(); } -std::unique_ptr NodePlatform::PostJob(v8::TaskPriority priority, - std::unique_ptr job_task) { +std::unique_ptr NodePlatform::CreateJob( + v8::TaskPriority priority, std::unique_ptr job_task) { return v8::platform::NewDefaultJobHandle( this, priority, std::move(job_task), NumberOfWorkerThreads()); } diff --git a/src/node_platform.h b/src/node_platform.h index 4a05f3bba58c8e..1062f3b1b9c386 100644 --- a/src/node_platform.h +++ b/src/node_platform.h @@ -155,7 +155,7 @@ class NodePlatform : public MultiIsolatePlatform { double CurrentClockTimeMillis() override; v8::TracingController* GetTracingController() override; bool FlushForegroundTasks(v8::Isolate* isolate) override; - std::unique_ptr PostJob( + std::unique_ptr CreateJob( v8::TaskPriority priority, std::unique_ptr job_task) override; From e78742012d03eef1b89ab19bb8048b95a09d6a5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Z=C3=BCnd?= Date: Wed, 3 Aug 2022 09:39:26 +0200 Subject: [PATCH 45/55] test: Temporarily disable repl test The CL https://crrev.com/c/3799431 adds a new function to the console object so we need to temporarily disable a repl test that checks for the concrete shape of the console object. --- test/parallel/test-repl.js | 68 ++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/test/parallel/test-repl.js b/test/parallel/test-repl.js index b70fce93ba7c49..1a7ea7ae1d9c69 100644 --- a/test/parallel/test-repl.js +++ b/test/parallel/test-repl.js @@ -758,39 +758,41 @@ const errorTests = [ /^Uncaught SyntaxError: /, ] }, - { - send: 'console', - expect: [ - 'Object [console] {', - ' log: [Function: log],', - ' warn: [Function: warn],', - ' dir: [Function: dir],', - ' time: [Function: time],', - ' timeEnd: [Function: timeEnd],', - ' timeLog: [Function: timeLog],', - ' trace: [Function: trace],', - ' assert: [Function: assert],', - ' clear: [Function: clear],', - ' count: [Function: count],', - ' countReset: [Function: countReset],', - ' group: [Function: group],', - ' groupEnd: [Function: groupEnd],', - ' table: [Function: table],', - / {2}debug: \[Function: (debug|log)],/, - / {2}info: \[Function: (info|log)],/, - / {2}dirxml: \[Function: (dirxml|log)],/, - / {2}error: \[Function: (error|warn)],/, - / {2}groupCollapsed: \[Function: (groupCollapsed|group)],/, - / {2}Console: \[Function: Console],?/, - ...process.features.inspector ? [ - ' profile: [Function: profile],', - ' profileEnd: [Function: profileEnd],', - ' timeStamp: [Function: timeStamp],', - ' context: [Function: context]', - ] : [], - '}', - ] - }, + // Temporarily disabled to to turn on async stack tagging API, which adds + // a new method to the console object (https://crrev.com/c/3799431). + // { + // send: 'console', + // expect: [ + // 'Object [console] {', + // ' log: [Function: log],', + // ' warn: [Function: warn],', + // ' dir: [Function: dir],', + // ' time: [Function: time],', + // ' timeEnd: [Function: timeEnd],', + // ' timeLog: [Function: timeLog],', + // ' trace: [Function: trace],', + // ' assert: [Function: assert],', + // ' clear: [Function: clear],', + // ' count: [Function: count],', + // ' countReset: [Function: countReset],', + // ' group: [Function: group],', + // ' groupEnd: [Function: groupEnd],', + // ' table: [Function: table],', + // / {2}debug: \[Function: (debug|log)],/, + // / {2}info: \[Function: (info|log)],/, + // / {2}dirxml: \[Function: (dirxml|log)],/, + // / {2}error: \[Function: (error|warn)],/, + // / {2}groupCollapsed: \[Function: (groupCollapsed|group)],/, + // / {2}Console: \[Function: Console],?/, + // ...process.features.inspector ? [ + // ' profile: [Function: profile],', + // ' profileEnd: [Function: profileEnd],', + // ' timeStamp: [Function: timeStamp],', + // ' context: [Function: context]', + // ] : [], + // '}', + // ] + // }, ]; const tcpTests = [ From e72a213f5965078c6bfbea32684c6a10cbe02cae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Z=C3=BCnd?= Date: Wed, 3 Aug 2022 10:33:53 +0200 Subject: [PATCH 46/55] Disable the test using the status file --- test/parallel/parallel.status | 2 ++ test/parallel/test-repl.js | 68 +++++++++++++++++------------------ 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 74c5cbd5177b13..98526e5391a3ec 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -25,6 +25,8 @@ test-tick-processor-arguments: SKIP test-child-process-stdio-overlapped: SKIP # https://github.com/nodejs/node/issues/42458 test-repl-mode: SKIP +# Temporarily disabled to land https://crrev.com/c/3799431 +test-repl: SKIP # Temporarily skip for https://crrev.com/c/2974772 test-util-inspect: SKIP diff --git a/test/parallel/test-repl.js b/test/parallel/test-repl.js index 1a7ea7ae1d9c69..b70fce93ba7c49 100644 --- a/test/parallel/test-repl.js +++ b/test/parallel/test-repl.js @@ -758,41 +758,39 @@ const errorTests = [ /^Uncaught SyntaxError: /, ] }, - // Temporarily disabled to to turn on async stack tagging API, which adds - // a new method to the console object (https://crrev.com/c/3799431). - // { - // send: 'console', - // expect: [ - // 'Object [console] {', - // ' log: [Function: log],', - // ' warn: [Function: warn],', - // ' dir: [Function: dir],', - // ' time: [Function: time],', - // ' timeEnd: [Function: timeEnd],', - // ' timeLog: [Function: timeLog],', - // ' trace: [Function: trace],', - // ' assert: [Function: assert],', - // ' clear: [Function: clear],', - // ' count: [Function: count],', - // ' countReset: [Function: countReset],', - // ' group: [Function: group],', - // ' groupEnd: [Function: groupEnd],', - // ' table: [Function: table],', - // / {2}debug: \[Function: (debug|log)],/, - // / {2}info: \[Function: (info|log)],/, - // / {2}dirxml: \[Function: (dirxml|log)],/, - // / {2}error: \[Function: (error|warn)],/, - // / {2}groupCollapsed: \[Function: (groupCollapsed|group)],/, - // / {2}Console: \[Function: Console],?/, - // ...process.features.inspector ? [ - // ' profile: [Function: profile],', - // ' profileEnd: [Function: profileEnd],', - // ' timeStamp: [Function: timeStamp],', - // ' context: [Function: context]', - // ] : [], - // '}', - // ] - // }, + { + send: 'console', + expect: [ + 'Object [console] {', + ' log: [Function: log],', + ' warn: [Function: warn],', + ' dir: [Function: dir],', + ' time: [Function: time],', + ' timeEnd: [Function: timeEnd],', + ' timeLog: [Function: timeLog],', + ' trace: [Function: trace],', + ' assert: [Function: assert],', + ' clear: [Function: clear],', + ' count: [Function: count],', + ' countReset: [Function: countReset],', + ' group: [Function: group],', + ' groupEnd: [Function: groupEnd],', + ' table: [Function: table],', + / {2}debug: \[Function: (debug|log)],/, + / {2}info: \[Function: (info|log)],/, + / {2}dirxml: \[Function: (dirxml|log)],/, + / {2}error: \[Function: (error|warn)],/, + / {2}groupCollapsed: \[Function: (groupCollapsed|group)],/, + / {2}Console: \[Function: Console],?/, + ...process.features.inspector ? [ + ' profile: [Function: profile],', + ' profileEnd: [Function: profileEnd],', + ' timeStamp: [Function: timeStamp],', + ' context: [Function: context]', + ] : [], + '}', + ] + }, ]; const tcpTests = [ From ddbda80347344110ace18b5059c68d78f0d38cd9 Mon Sep 17 00:00:00 2001 From: Camillo Bruni Date: Wed, 10 Aug 2022 10:27:50 +0200 Subject: [PATCH 47/55] update deprecated v8 apis (#147) Thanks for the update! --- src/inspector_agent.cc | 3 ++- src/node_snapshotable.cc | 14 +++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc index 072767769d4ba2..f889c04099e83a 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc @@ -219,7 +219,8 @@ class ChannelImpl final : public v8_inspector::V8Inspector::Channel, bool prevent_shutdown) : delegate_(std::move(delegate)), prevent_shutdown_(prevent_shutdown), retaining_context_(false) { - session_ = inspector->connect(CONTEXT_GROUP_ID, this, StringView()); + session_ = inspector->connect( + CONTEXT_GROUP_ID, this, StringView(), V8Inspector::kFullyTrusted); node_dispatcher_ = std::make_unique(this); tracing_agent_ = std::make_unique(env, main_thread_); diff --git a/src/node_snapshotable.cc b/src/node_snapshotable.cc index a32ba76d316b25..97e0e83445fcb5 100644 --- a/src/node_snapshotable.cc +++ b/src/node_snapshotable.cc @@ -1329,13 +1329,13 @@ void CompileSerializeMain(const FunctionCallbackInfo& args) { }; ScriptCompiler::Source script_source(source, origin); Local fn; - if (ScriptCompiler::CompileFunctionInContext(context, - &script_source, - parameters.size(), - parameters.data(), - 0, - nullptr, - ScriptCompiler::kEagerCompile) + if (ScriptCompiler::CompileFunction(context, + &script_source, + parameters.size(), + parameters.data(), + 0, + nullptr, + ScriptCompiler::kEagerCompile) .ToLocal(&fn)) { args.GetReturnValue().Set(fn); } From 20245c5844329c3258ac0d8f353864e775193c1e Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Thu, 11 Aug 2022 16:05:33 +0200 Subject: [PATCH 48/55] Rebase + skip snapshot test --- src/node.cc | 1 - test/parallel/parallel.status | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/node.cc b/src/node.cc index f7fdb3b94be6d5..e80fae12183e01 100644 --- a/src/node.cc +++ b/src/node.cc @@ -703,7 +703,6 @@ static void PlatformInit(ProcessInitializationFlags::Flags flags) { } while (min + 1 < max); } } -#endif // __Fuchsia__ #endif // __POSIX__ #ifdef _WIN32 if (!(flags & ProcessInitializationFlags::kNoStdioInitialization)) { diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 98526e5391a3ec..fe4564721652e5 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -36,6 +36,9 @@ test-v8-serdes: SKIP test-v8-stats: SKIP +# Node is built without embedded snapshot. +test-snapshot-basic: SKIP + # https://github.com/nodejs/node/issues/43676 test-repl-pretty-stack: SKIP test-repl-pretty-custom-stack: SKIP From 81cc8a7d02b0adfe291a9170dce25f24e0fa33c8 Mon Sep 17 00:00:00 2001 From: Adam Klein Date: Thu, 11 Aug 2022 15:20:13 -0700 Subject: [PATCH 49/55] Skip all snapshot tests (#148) These tests fail on the node-ci builder: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20-%20node.js%20integration%20ng/21832/overview --- test/parallel/parallel.status | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index fe4564721652e5..9ed971e5335f02 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -38,6 +38,14 @@ test-v8-stats: SKIP # Node is built without embedded snapshot. test-snapshot-basic: SKIP +test-snapshot-api: SKIP +test-snapshot-cjs-main: SKIP +test-snapshot-eval: SKIP +test-snapshot-gzip: SKIP +test-snapshot-incompatible: SKIP +test-snapshot-umd: SKIP +test-snapshot-warning: SKIP +test-snapshot-typescript: SKIP # https://github.com/nodejs/node/issues/43676 test-repl-pretty-stack: SKIP From 94afb47c6a37a7a939a69da6f3ef5e88b2fbd82f Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Wed, 8 Sep 2021 15:33:39 +0200 Subject: [PATCH 50/55] Add README --- README.md | 818 ++---------------------------------------------------- 1 file changed, 16 insertions(+), 802 deletions(-) diff --git a/README.md b/README.md index 1f3663be3ead30..99801923f576ed 100644 --- a/README.md +++ b/README.md @@ -1,803 +1,17 @@ -# Node.js + +

+ + Node.js + +

+ +Node.js is an open-source, cross-platform, JavaScript runtime environment. It +executes JavaScript code outside of a browser. For more information on using +Node.js, see the [Node.js Website][]. + +This is the official [V8](https://github.com/v8/v8/wiki) fork of [Node.js](https://github.com/nodejs/node). -Node.js is an open-source, cross-platform, JavaScript runtime environment. - -For information on using Node.js, see the [Node.js website][]. - -The Node.js project uses an [open governance model](./GOVERNANCE.md). The -[OpenJS Foundation][] provides support for the project. - -**This project has a [Code of Conduct][].** - -## Table of contents - -* [Support](#support) -* [Release types](#release-types) - * [Download](#download) - * [Current and LTS releases](#current-and-lts-releases) - * [Nightly releases](#nightly-releases) - * [API documentation](#api-documentation) - * [Verifying binaries](#verifying-binaries) -* [Building Node.js](#building-nodejs) -* [Security](#security) -* [Contributing to Node.js](#contributing-to-nodejs) -* [Current project team members](#current-project-team-members) - * [TSC (Technical Steering Committee)](#tsc-technical-steering-committee) - * [Collaborators](#collaborators) - * [Triagers](#triagers) - * [Release keys](#release-keys) -* [License](#license) - -## Support - -Looking for help? Check out the -[instructions for getting support](.github/SUPPORT.md). - -## Release types - -* **Current**: Under active development. Code for the Current release is in the - branch for its major version number (for example, - [v15.x](https://github.com/nodejs/node/tree/v15.x)). Node.js releases a new - major version every 6 months, allowing for breaking changes. This happens in - April and October every year. Releases appearing each October have a support - life of 8 months. Releases appearing each April convert to LTS (see below) - each October. -* **LTS**: Releases that receive Long Term Support, with a focus on stability - and security. Every even-numbered major version will become an LTS release. - LTS releases receive 12 months of _Active LTS_ support and a further 18 months - of _Maintenance_. LTS release lines have alphabetically-ordered code names, - beginning with v4 Argon. There are no breaking changes or feature additions, - except in some special circumstances. -* **Nightly**: Code from the Current branch built every 24-hours when there are - changes. Use with caution. - -Current and LTS releases follow [semantic versioning](https://semver.org). A -member of the Release Team [signs](#release-keys) each Current and LTS release. -For more information, see the -[Release README](https://github.com/nodejs/Release#readme). - -### Download - -Binaries, installers, and source tarballs are available at -. - -#### Current and LTS releases - - - -The [latest](https://nodejs.org/download/release/latest/) directory is an -alias for the latest Current release. The latest-_codename_ directory is an -alias for the latest release from an LTS line. For example, the -[latest-fermium](https://nodejs.org/download/release/latest-fermium/) directory -contains the latest Fermium (Node.js 14) release. - -#### Nightly releases - - - -Each directory name and filename contains a date (in UTC) and the commit -SHA at the HEAD of the release. - -#### API documentation - -Documentation for the latest Current release is at . -Version-specific documentation is available in each release directory in the -_docs_ subdirectory. Version-specific documentation is also at -. - -### Verifying binaries - -Download directories contain a `SHASUMS256.txt` file with SHA checksums for the -files. - -To download `SHASUMS256.txt` using `curl`: - -```console -$ curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt -``` - -To check that a downloaded file matches the checksum, run -it through `sha256sum` with a command such as: - -```console -$ grep node-vx.y.z.tar.gz SHASUMS256.txt | sha256sum -c - -``` - -For Current and LTS, the GPG detached signature of `SHASUMS256.txt` is in -`SHASUMS256.txt.sig`. You can use it with `gpg` to verify the integrity of -`SHASUMS256.txt`. You will first need to import -[the GPG keys of individuals authorized to create releases](#release-keys). To -import the keys: - -```console -$ gpg --keyserver hkps://keys.openpgp.org --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D -``` - -See [Release keys](#release-keys) for a script to import active release keys. - -Next, download the `SHASUMS256.txt.sig` for the release: - -```console -$ curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt.sig -``` - -Then use `gpg --verify SHASUMS256.txt.sig SHASUMS256.txt` to verify -the file's signature. - -## Building Node.js - -See [BUILDING.md](BUILDING.md) for instructions on how to build Node.js from -source and a list of supported platforms. - -## Security - -For information on reporting security vulnerabilities in Node.js, see -[SECURITY.md](./SECURITY.md). - -## Contributing to Node.js - -* [Contributing to the project][] -* [Working Groups][] -* [Strategic initiatives][] -* [Technical values and prioritization][] - -## Current project team members - -For information about the governance of the Node.js project, see -[GOVERNANCE.md](./GOVERNANCE.md). - - - -### TSC (Technical Steering Committee) - - - -* [aduh95](https://github.com/aduh95) - - **Antoine du Hamel** <> (he/him) -* [apapirovski](https://github.com/apapirovski) - - **Anatoli Papirovski** <> (he/him) -* [BethGriggs](https://github.com/BethGriggs) - - **Beth Griggs** <> (she/her) -* [BridgeAR](https://github.com/BridgeAR) - - **Ruben Bridgewater** <> (he/him) -* [ChALkeR](https://github.com/ChALkeR) - - **Сковорода Никита Андреевич** <> (he/him) -* [cjihrig](https://github.com/cjihrig) - - **Colin Ihrig** <> (he/him) -* [danielleadams](https://github.com/danielleadams) - - **Danielle Adams** <> (she/her) -* [fhinkel](https://github.com/fhinkel) - - **Franziska Hinkelmann** <> (she/her) -* [GeoffreyBooth](https://github.com/geoffreybooth) - - **Geoffrey Booth** <> (he/him) -* [gireeshpunathil](https://github.com/gireeshpunathil) - - **Gireesh Punathil** <> (he/him) -* [jasnell](https://github.com/jasnell) - - **James M Snell** <> (he/him) -* [joyeecheung](https://github.com/joyeecheung) - - **Joyee Cheung** <> (she/her) -* [mcollina](https://github.com/mcollina) - - **Matteo Collina** <> (he/him) -* [mhdawson](https://github.com/mhdawson) - - **Michael Dawson** <> (he/him) -* [RaisinTen](https://github.com/RaisinTen) - - **Darshan Sen** <> (he/him) -* [richardlau](https://github.com/richardlau) - - **Richard Lau** <> -* [ronag](https://github.com/ronag) - - **Robert Nagy** <> -* [targos](https://github.com/targos) - - **Michaël Zasso** <> (he/him) -* [tniessen](https://github.com/tniessen) - - **Tobias Nießen** <> (he/him) -* [Trott](https://github.com/Trott) - - **Rich Trott** <> (he/him) - -
- -Emeriti - -### TSC emeriti - -* [addaleax](https://github.com/addaleax) - - **Anna Henningsen** <> (she/her) -* [bnoordhuis](https://github.com/bnoordhuis) - - **Ben Noordhuis** <> -* [chrisdickinson](https://github.com/chrisdickinson) - - **Chris Dickinson** <> -* [codebytere](https://github.com/codebytere) - - **Shelley Vohr** <> (she/her) -* [danbev](https://github.com/danbev) - - **Daniel Bevenius** <> (he/him) -* [evanlucas](https://github.com/evanlucas) - - **Evan Lucas** <> (he/him) -* [Fishrock123](https://github.com/Fishrock123) - - **Jeremiah Senkpiel** <> (he/they) -* [gabrielschulhof](https://github.com/gabrielschulhof) - - **Gabriel Schulhof** <> -* [gibfahn](https://github.com/gibfahn) - - **Gibson Fahnestock** <> (he/him) -* [indutny](https://github.com/indutny) - - **Fedor Indutny** <> -* [isaacs](https://github.com/isaacs) - - **Isaac Z. Schlueter** <> -* [joshgav](https://github.com/joshgav) - - **Josh Gavant** <> -* [mmarchini](https://github.com/mmarchini) - - **Mary Marchini** <> (she/her) -* [mscdex](https://github.com/mscdex) - - **Brian White** <> -* [MylesBorins](https://github.com/MylesBorins) - - **Myles Borins** <> (he/him) -* [nebrius](https://github.com/nebrius) - - **Bryan Hughes** <> -* [ofrobots](https://github.com/ofrobots) - - **Ali Ijaz Sheikh** <> (he/him) -* [orangemocha](https://github.com/orangemocha) - - **Alexis Campailla** <> -* [piscisaureus](https://github.com/piscisaureus) - - **Bert Belder** <> -* [rvagg](https://github.com/rvagg) - - **Rod Vagg** <> -* [sam-github](https://github.com/sam-github) - - **Sam Roberts** <> -* [shigeki](https://github.com/shigeki) - - **Shigeki Ohtsu** <> (he/him) -* [thefourtheye](https://github.com/thefourtheye) - - **Sakthipriyan Vairamani** <> (he/him) -* [TimothyGu](https://github.com/TimothyGu) - - **Tiancheng "Timothy" Gu** <> (he/him) -* [trevnorris](https://github.com/trevnorris) - - **Trevor Norris** <> - -
- - - -### Collaborators - -* [addaleax](https://github.com/addaleax) - - **Anna Henningsen** <> (she/her) -* [aduh95](https://github.com/aduh95) - - **Antoine du Hamel** <> (he/him) -* [antsmartian](https://github.com/antsmartian) - - **Anto Aravinth** <> (he/him) -* [apapirovski](https://github.com/apapirovski) - - **Anatoli Papirovski** <> (he/him) -* [AshCripps](https://github.com/AshCripps) - - **Ash Cripps** <> -* [Ayase-252](https://github.com/Ayase-252) - - **Qingyu Deng** <> -* [bcoe](https://github.com/bcoe) - - **Ben Coe** <> (he/him) -* [bengl](https://github.com/bengl) - - **Bryan English** <> (he/him) -* [benjamingr](https://github.com/benjamingr) - - **Benjamin Gruenbaum** <> -* [BethGriggs](https://github.com/BethGriggs) - - **Beth Griggs** <> (she/her) -* [bmeck](https://github.com/bmeck) - - **Bradley Farias** <> -* [bnb](https://github.com/bnb) - - **Tierney Cyren** <> (they/he) -* [bnoordhuis](https://github.com/bnoordhuis) - - **Ben Noordhuis** <> -* [BridgeAR](https://github.com/BridgeAR) - - **Ruben Bridgewater** <> (he/him) -* [cclauss](https://github.com/cclauss) - - **Christian Clauss** <> (he/him) -* [ChALkeR](https://github.com/ChALkeR) - - **Сковорода Никита Андреевич** <> (he/him) -* [cjihrig](https://github.com/cjihrig) - - **Colin Ihrig** <> (he/him) -* [codebytere](https://github.com/codebytere) - - **Shelley Vohr** <> (she/her) -* [danbev](https://github.com/danbev) - - **Daniel Bevenius** <> (he/him) -* [danielleadams](https://github.com/danielleadams) - - **Danielle Adams** <> (she/her) -* [devnexen](https://github.com/devnexen) - - **David Carlier** <> -* [devsnek](https://github.com/devsnek) - - **Gus Caplan** <> (they/them) -* [dmabupt](https://github.com/dmabupt) - - **Xu Meng** <> (he/him) -* [dnlup](https://github.com/dnlup) - **Daniele Belardi** <> (he/him) -* [edsadr](https://github.com/edsadr) - - **Adrian Estrada** <> (he/him) -* [erickwendel](https://github.com/erickwendel) - - **Erick Wendel** <> (he/him) -* [evanlucas](https://github.com/evanlucas) - - **Evan Lucas** <> (he/him) -* [fhinkel](https://github.com/fhinkel) - - **Franziska Hinkelmann** <> (she/her) -* [F3n67u](https://github.com/F3n67u) - - **Feng Yu** <> (he/him) -* [Flarna](https://github.com/Flarna) - - **Gerhard Stöbich** <> (he/they) -* [gabrielschulhof](https://github.com/gabrielschulhof) - - **Gabriel Schulhof** <> -* [gengjiawen](https://github.com/gengjiawen) - - **Jiawen Geng** <> -* [GeoffreyBooth](https://github.com/geoffreybooth) - - **Geoffrey Booth** <> (he/him) -* [gireeshpunathil](https://github.com/gireeshpunathil) - - **Gireesh Punathil** <> (he/him) -* [guybedford](https://github.com/guybedford) - - **Guy Bedford** <> (he/him) -* [HarshithaKP](https://github.com/HarshithaKP) - - **Harshitha K P** <> (she/her) -* [himself65](https://github.com/himself65) - - **Zeyu "Alex" Yang** <> (he/him) -* [iansu](https://github.com/iansu) - - **Ian Sutherland** <> -* [indutny](https://github.com/indutny) - - **Fedor Indutny** <> -* [JacksonTian](https://github.com/JacksonTian) - - **Jackson Tian** <> -* [JakobJingleheimer](https://github.com/JakobJingleheimer) - - **Jacob Smith** <> (he/him) -* [jasnell](https://github.com/jasnell) - - **James M Snell** <> (he/him) -* [jkrems](https://github.com/jkrems) - - **Jan Krems** <> (he/him) -* [joesepi](https://github.com/joesepi) - - **Joe Sepi** <> (he/him) -* [joyeecheung](https://github.com/joyeecheung) - - **Joyee Cheung** <> (she/her) -* [juanarbol](https://github.com/juanarbol) - - **Juan José Arboleda** <> (he/him) -* [JungMinu](https://github.com/JungMinu) - - **Minwoo Jung** <> (he/him) -* [kuriyosh](https://github.com/kuriyosh) - - **Yoshiki Kurihara** <> (he/him) -* [legendecas](https://github.com/legendecas) - - **Chengzhong Wu** <> (he/him) -* [Leko](https://github.com/Leko) - - **Shingo Inoue** <> (he/him) -* [linkgoron](https://github.com/linkgoron) - - **Nitzan Uziely** <> -* [LiviaMedeiros](https://github.com/LiviaMedeiros) - - **LiviaMedeiros** <> -* [lpinca](https://github.com/lpinca) - - **Luigi Pinca** <> (he/him) -* [Lxxyx](https://github.com/Lxxyx) - - **Zijian Liu** <> (he/him) -* [marsonya](https://github.com/marsonya) - - **Akhil Marsonya** <> (he/him) -* [mcollina](https://github.com/mcollina) - - **Matteo Collina** <> (he/him) -* [meixg](https://github.com/meixg) - - **Xuguang Mei** <> (he/him) -* [Mesteery](https://github.com/Mesteery) - - **Mestery** <> (he/him) -* [mhdawson](https://github.com/mhdawson) - - **Michael Dawson** <> (he/him) -* [miladfarca](https://github.com/miladfarca) - - **Milad Fa** <> (he/him) -* [mildsunrise](https://github.com/mildsunrise) - - **Alba Mendez** <> (she/her) -* [MoLow](https://github.com/MoLow) - - **Moshe Atlow** <> (he/him) -* [mscdex](https://github.com/mscdex) - - **Brian White** <> -* [MylesBorins](https://github.com/MylesBorins) - - **Myles Borins** <> (he/him) -* [oyyd](https://github.com/oyyd) - - **Ouyang Yadong** <> (he/him) -* [panva](https://github.com/panva) - - **Filip Skokan** <> -* [PoojaDurgad](https://github.com/PoojaDurgad) - - **Pooja D P** <> (she/her) -* [puzpuzpuz](https://github.com/puzpuzpuz) - - **Andrey Pechkurov** <> (he/him) -* [Qard](https://github.com/Qard) - - **Stephen Belanger** <> (he/him) -* [RafaelGSS](https://github.com/RafaelGSS) - - **Rafael Gonzaga** <> (he/him) -* [RaisinTen](https://github.com/RaisinTen) - - **Darshan Sen** <> (he/him) -* [richardlau](https://github.com/richardlau) - - **Richard Lau** <> -* [rickyes](https://github.com/rickyes) - - **Ricky Zhou** <<0x19951125@gmail.com>> (he/him) -* [ronag](https://github.com/ronag) - - **Robert Nagy** <> -* [ruyadorno](https://github.com/ruyadorno) - - **Ruy Adorno** <> (he/him) -* [rvagg](https://github.com/rvagg) - - **Rod Vagg** <> -* [ryzokuken](https://github.com/ryzokuken) - - **Ujjwal Sharma** <> (he/him) -* [santigimeno](https://github.com/santigimeno) - - **Santiago Gimeno** <> -* [shisama](https://github.com/shisama) - - **Masashi Hirano** <> (he/him) -* [ShogunPanda](https://github.com/ShogunPanda) - - **Paolo Insogna** <> (he/him) -* [srl295](https://github.com/srl295) - - **Steven R Loomis** <> -* [starkwang](https://github.com/starkwang) - - **Weijia Wang** <> -* [sxa](https://github.com/sxa) - - **Stewart X Addison** <> (he/him) -* [targos](https://github.com/targos) - - **Michaël Zasso** <> (he/him) -* [theanarkh](https://github.com/theanarkh) - - **theanarkh** <> (he/him) -* [TimothyGu](https://github.com/TimothyGu) - - **Tiancheng "Timothy" Gu** <> (he/him) -* [tniessen](https://github.com/tniessen) - - **Tobias Nießen** <> (he/him) -* [trivikr](https://github.com/trivikr) - - **Trivikram Kamat** <> -* [Trott](https://github.com/Trott) - - **Rich Trott** <> (he/him) -* [vdeturckheim](https://github.com/vdeturckheim) - - **Vladimir de Turckheim** <> (he/him) -* [VoltrexMaster](https://github.com/VoltrexMaster) - - **Mohammed Keyvanzadeh** <> (he/him) -* [watilde](https://github.com/watilde) - - **Daijiro Wachi** <> (he/him) -* [XadillaX](https://github.com/XadillaX) - - **Khaidi Chu** <> (he/him) -* [yashLadha](https://github.com/yashLadha) - - **Yash Ladha** <> (he/him) -* [ZYSzys](https://github.com/ZYSzys) - - **Yongsheng Zhang** <> (he/him) - -
- -Emeriti - - - -### Collaborator emeriti - -* [ak239](https://github.com/ak239) - - **Aleksei Koziatinskii** <> -* [andrasq](https://github.com/andrasq) - - **Andras** <> -* [AnnaMag](https://github.com/AnnaMag) - - **Anna M. Kedzierska** <> -* [AndreasMadsen](https://github.com/AndreasMadsen) - - **Andreas Madsen** <> (he/him) -* [aqrln](https://github.com/aqrln) - - **Alexey Orlenko** <> (he/him) -* [bmeurer](https://github.com/bmeurer) - - **Benedikt Meurer** <> -* [boneskull](https://github.com/boneskull) - - **Christopher Hiller** <> (he/him) -* [brendanashworth](https://github.com/brendanashworth) - - **Brendan Ashworth** <> -* [bzoz](https://github.com/bzoz) - - **Bartosz Sosnowski** <> -* [calvinmetcalf](https://github.com/calvinmetcalf) - - **Calvin Metcalf** <> -* [chrisdickinson](https://github.com/chrisdickinson) - - **Chris Dickinson** <> -* [claudiorodriguez](https://github.com/claudiorodriguez) - - **Claudio Rodriguez** <> -* [DavidCai1993](https://github.com/DavidCai1993) - - **David Cai** <> (he/him) -* [davisjam](https://github.com/davisjam) - - **Jamie Davis** <> (he/him) -* [digitalinfinity](https://github.com/digitalinfinity) - - **Hitesh Kanwathirtha** <> (he/him) -* [eljefedelrodeodeljefe](https://github.com/eljefedelrodeodeljefe) - - **Robert Jefe Lindstaedt** <> -* [estliberitas](https://github.com/estliberitas) - - **Alexander Makarenko** <> -* [eugeneo](https://github.com/eugeneo) - - **Eugene Ostroukhov** <> -* [firedfox](https://github.com/firedfox) - - **Daniel Wang** <> -* [Fishrock123](https://github.com/Fishrock123) - - **Jeremiah Senkpiel** <> (he/they) -* [gdams](https://github.com/gdams) - - **George Adams** <> (he/him) -* [geek](https://github.com/geek) - - **Wyatt Preul** <> -* [gibfahn](https://github.com/gibfahn) - - **Gibson Fahnestock** <> (he/him) -* [glentiki](https://github.com/glentiki) - - **Glen Keane** <> (he/him) -* [hashseed](https://github.com/hashseed) - - **Yang Guo** <> (he/him) -* [hiroppy](https://github.com/hiroppy) - - **Yuta Hiroto** <> (he/him) -* [iarna](https://github.com/iarna) - - **Rebecca Turner** <> -* [imran-iq](https://github.com/imran-iq) - - **Imran Iqbal** <> -* [imyller](https://github.com/imyller) - - **Ilkka Myller** <> -* [isaacs](https://github.com/isaacs) - - **Isaac Z. Schlueter** <> -* [italoacasas](https://github.com/italoacasas) - - **Italo A. Casas** <> (he/him) -* [jasongin](https://github.com/jasongin) - - **Jason Ginchereau** <> -* [jbergstroem](https://github.com/jbergstroem) - - **Johan Bergström** <> -* [jdalton](https://github.com/jdalton) - - **John-David Dalton** <> -* [jhamhader](https://github.com/jhamhader) - - **Yuval Brik** <> -* [joaocgreis](https://github.com/joaocgreis) - - **João Reis** <> -* [joshgav](https://github.com/joshgav) - - **Josh Gavant** <> -* [julianduque](https://github.com/julianduque) - - **Julian Duque** <> (he/him) -* [kfarnung](https://github.com/kfarnung) - - **Kyle Farnung** <> (he/him) -* [kunalspathak](https://github.com/kunalspathak) - - **Kunal Pathak** <> -* [lance](https://github.com/lance) - - **Lance Ball** <> (he/him) -* [lucamaraschi](https://github.com/lucamaraschi) - - **Luca Maraschi** <> (he/him) -* [lundibundi](https://github.com/lundibundi) - - **Denys Otrishko** <> (he/him) -* [lxe](https://github.com/lxe) - - **Aleksey Smolenchuk** <> -* [maclover7](https://github.com/maclover7) - - **Jon Moss** <> (he/him) -* [mafintosh](https://github.com/mafintosh) - - **Mathias Buus** <> (he/him) -* [matthewloring](https://github.com/matthewloring) - - **Matthew Loring** <> -* [micnic](https://github.com/micnic) - - **Nicu Micleușanu** <> (he/him) -* [mikeal](https://github.com/mikeal) - - **Mikeal Rogers** <> -* [misterdjules](https://github.com/misterdjules) - - **Julien Gilli** <> -* [mmarchini](https://github.com/mmarchini) - - **Mary Marchini** <> (she/her) -* [monsanto](https://github.com/monsanto) - - **Christopher Monsanto** <> -* [MoonBall](https://github.com/MoonBall) - - **Chen Gang** <> -* [not-an-aardvark](https://github.com/not-an-aardvark) - - **Teddy Katz** <> (he/him) -* [ofrobots](https://github.com/ofrobots) - - **Ali Ijaz Sheikh** <> (he/him) -* [Olegas](https://github.com/Olegas) - - **Oleg Elifantiev** <> -* [orangemocha](https://github.com/orangemocha) - - **Alexis Campailla** <> -* [othiym23](https://github.com/othiym23) - - **Forrest L Norvell** <> (they/them/themself) -* [petkaantonov](https://github.com/petkaantonov) - - **Petka Antonov** <> -* [phillipj](https://github.com/phillipj) - - **Phillip Johnsen** <> -* [piscisaureus](https://github.com/piscisaureus) - - **Bert Belder** <> -* [pmq20](https://github.com/pmq20) - - **Minqi Pan** <> -* [princejwesley](https://github.com/princejwesley) - - **Prince John Wesley** <> -* [psmarshall](https://github.com/psmarshall) - - **Peter Marshall** <> (he/him) -* [refack](https://github.com/refack) - - **Refael Ackermann (רפאל פלחי)** <> (he/him/הוא/אתה) -* [rexagod](https://github.com/rexagod) - - **Pranshu Srivastava** <> (he/him) -* [rlidwka](https://github.com/rlidwka) - - **Alex Kocharin** <> -* [rmg](https://github.com/rmg) - - **Ryan Graham** <> -* [robertkowalski](https://github.com/robertkowalski) - - **Robert Kowalski** <> -* [romankl](https://github.com/romankl) - - **Roman Klauke** <> -* [ronkorving](https://github.com/ronkorving) - - **Ron Korving** <> -* [RReverser](https://github.com/RReverser) - - **Ingvar Stepanyan** <> -* [rubys](https://github.com/rubys) - - **Sam Ruby** <> -* [saghul](https://github.com/saghul) - - **Saúl Ibarra Corretgé** <> -* [sam-github](https://github.com/sam-github) - - **Sam Roberts** <> -* [sebdeckers](https://github.com/sebdeckers) - - **Sebastiaan Deckers** <> -* [seishun](https://github.com/seishun) - - **Nikolai Vavilov** <> -* [shigeki](https://github.com/shigeki) - - **Shigeki Ohtsu** <> (he/him) -* [silverwind](https://github.com/silverwind) - - **Roman Reiss** <> -* [stefanmb](https://github.com/stefanmb) - - **Stefan Budeanu** <> -* [tellnes](https://github.com/tellnes) - - **Christian Tellnes** <> -* [thefourtheye](https://github.com/thefourtheye) - - **Sakthipriyan Vairamani** <> (he/him) -* [thlorenz](https://github.com/thlorenz) - - **Thorsten Lorenz** <> -* [trevnorris](https://github.com/trevnorris) - - **Trevor Norris** <> -* [tunniclm](https://github.com/tunniclm) - - **Mike Tunnicliffe** <> -* [vkurchatkin](https://github.com/vkurchatkin) - - **Vladimir Kurchatkin** <> -* [vsemozhetbyt](https://github.com/vsemozhetbyt) - - **Vse Mozhet Byt** <> (he/him) -* [watson](https://github.com/watson) - - **Thomas Watson** <> -* [whitlockjc](https://github.com/whitlockjc) - - **Jeremy Whitlock** <> -* [yhwang](https://github.com/yhwang) - - **Yihong Wang** <> -* [yorkie](https://github.com/yorkie) - - **Yorkie Liu** <> -* [yosuke-furukawa](https://github.com/yosuke-furukawa) - - **Yosuke Furukawa** <> - -
- - - -Collaborators follow the [Collaborator Guide](./doc/contributing/collaborator-guide.md) in -maintaining the Node.js project. - -### Triagers - -* [Ayase-252](https://github.com/Ayase-252) - - **Qingyu Deng** <> -* [daeyeon](https://github.com/daeyeon) - - **Daeyeon Jeong** <> (he/him) -* [F3n67u](https://github.com/F3n67u) - - **Feng Yu** <> (he/him) -* [himadriganguly](https://github.com/himadriganguly) - - **Himadri Ganguly** <> (he/him) -* [iam-frankqiu](https://github.com/iam-frankqiu) - - **Frank Qiu** <> (he/him) -* [kvakil](https://github.com/kvakil) - - **Keyhan Vakil** <> (they/them) -* [marsonya](https://github.com/marsonya) - - **Akhil Marsonya** <> (he/him) -* [meixg](https://github.com/meixg) - - **Xuguang Mei** <> (he/him) -* [Mesteery](https://github.com/Mesteery) - - **Mestery** <> (he/him) -* [MoLow](https://github.com/MoLow) - - **Moshe Atlow** <> (he/him) -* [PoojaDurgad](https://github.com/PoojaDurgad) - - **Pooja Durgad** <> -* [RaisinTen](https://github.com/RaisinTen) - - **Darshan Sen** <> -* [VoltrexMaster](https://github.com/VoltrexMaster) - - **Mohammed Keyvanzadeh** <> (he/him) - -### Release keys - -Primary GPG keys for Node.js Releasers (some Releasers sign with subkeys): - -* **Beth Griggs** <> - `4ED778F539E3634C779C87C6D7062848A1AB005C` -* **Bryan English** <> - `141F07595B7B3FFE74309A937405533BE57C7D57` -* **Colin Ihrig** <> - `94AE36675C464D64BAFA68DD7434390BDBE9B9C5` -* **Danielle Adams** <> - `74F12602B6F1C4E913FAA37AD3A89613643B6201` -* **James M Snell** <> - `71DCFD284A79C3B38668286BC97EC7A07EDE3FC1` -* **Juan José Arboleda** <> - `61FC681DFB92A079F1685E77973F295594EC4689` -* **Michaël Zasso** <> - `8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600` -* **Myles Borins** <> - `C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8` -* **RafaelGSS** <> - `890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4` -* **Richard Lau** <> - `C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C` -* **Rod Vagg** <> - `DD8F2338BAE7501E3DD5AC78C273792F7D83545D` -* **Ruben Bridgewater** <> - `A48C2BEE680E841632CD4E44F07496B3EB3C1762` -* **Ruy Adorno** <> - `108F52B48DB57BB0CC439B2997B01419BD92F80A` -* **Shelley Vohr** <> - `B9E2F5981AA6E0CD28160D9FF13993A75599653C` - -To import the full set of trusted release keys (including subkeys possibly used -to sign releases): - -```bash -gpg --keyserver hkps://keys.openpgp.org --recv-keys 4ED778F539E3634C779C87C6D7062848A1AB005C -gpg --keyserver hkps://keys.openpgp.org --recv-keys 141F07595B7B3FFE74309A937405533BE57C7D57 -gpg --keyserver hkps://keys.openpgp.org --recv-keys 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 -gpg --keyserver hkps://keys.openpgp.org --recv-keys 74F12602B6F1C4E913FAA37AD3A89613643B6201 -gpg --keyserver hkps://keys.openpgp.org --recv-keys 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 -gpg --keyserver hkps://keys.openpgp.org --recv-keys 61FC681DFB92A079F1685E77973F295594EC4689 -gpg --keyserver hkps://keys.openpgp.org --recv-keys 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 -gpg --keyserver hkps://keys.openpgp.org --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 -gpg --keyserver hkps://keys.openpgp.org --recv-keys 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 -gpg --keyserver hkps://keys.openpgp.org --recv-keys C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C -gpg --keyserver hkps://keys.openpgp.org --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D -gpg --keyserver hkps://keys.openpgp.org --recv-keys A48C2BEE680E841632CD4E44F07496B3EB3C1762 -gpg --keyserver hkps://keys.openpgp.org --recv-keys 108F52B48DB57BB0CC439B2997B01419BD92F80A -gpg --keyserver hkps://keys.openpgp.org --recv-keys B9E2F5981AA6E0CD28160D9FF13993A75599653C -``` - -See [Verifying binaries](#verifying-binaries) for how to use these keys to -verify a downloaded file. - -
- -Other keys used to sign some previous releases - -* **Chris Dickinson** <> - `9554F04D7259F04124DE6B476D5A82AC7E37093B` -* **Danielle Adams** <> - `1C050899334244A8AF75E53792EF661D867B9DFA` -* **Evan Lucas** <> - `B9AE9905FFD7803F25714661B63B535A4C206CA9` -* **Gibson Fahnestock** <> - `77984A986EBC2AA786BC0F66B01FBB92821C587A` -* **Isaac Z. Schlueter** <> - `93C7E9E91B49E432C2F75674B0A78B0A6C481CF6` -* **Italo A. Casas** <> - `56730D5401028683275BD23C23EFEFE93C4CFFFE` -* **Jeremiah Senkpiel** <> - `FD3A5288F042B6850C66B31F09FE44734EB7990E` -* **Julien Gilli** <> - `114F43EE0176B71C7BC219DD50A3051F888C628D` -* **Timothy J Fontaine** <> - `7937DFD2AB06298B2293C3187D33FF9D0246406D` - -
- -### Security release stewards - -When possible, the commitment to take slots in the -security release steward rotation is made by companies in order -to ensure individuals who act as security stewards have the -support and recognition from their employer to be able to -prioritize security releases. Security release stewards manage security -releases on a rotation basis as outlined in the -[security release process](./doc/contributing/security-release-process.md). - -* Datadog - * [bengl](https://github.com/bengl) - - **Bryan English** <> (he/him) - * [vdeturckheim](https://github.com/vdeturckheim) - - **Vladimir de Turckheim** <> (he/him) -* NearForm - * [mcollina](https://github.com/mcollina) - - **Matteo Collina** <> (he/him) -* Red Hat and IBM - * [joesepi](https://github.com/joesepi) - - **Joe Sepi** <> (he/him) - * [mhdawson](https://github.com/mhdawson) - - **Michael Dawson** <> (he/him) - -## License - -Node.js is available under the -[MIT license](https://opensource.org/licenses/MIT). Node.js also includes -external libraries that are available under a variety of licenses. See -[LICENSE](https://github.com/nodejs/node/blob/HEAD/LICENSE) for the full -license text. - -[Code of Conduct]: https://github.com/nodejs/admin/blob/HEAD/CODE_OF_CONDUCT.md -[Contributing to the project]: CONTRIBUTING.md -[Node.js website]: https://nodejs.org/ -[OpenJS Foundation]: https://openjsf.org/ -[Strategic initiatives]: doc/contributing/strategic-initiatives.md -[Technical values and prioritization]: doc/contributing/technical-values.md -[Working Groups]: https://github.com/nodejs/TSC/blob/HEAD/WORKING_GROUPS.md From 154c6a1b8b1e945fdbf34a694be325991a58d2be Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Wed, 8 Sep 2021 15:55:00 +0200 Subject: [PATCH 51/55] Add links to docs --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 99801923f576ed..361f325f6908d4 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +#Node.js +

@@ -11,7 +13,15 @@ Node.js is an open-source, cross-platform, JavaScript runtime environment. It executes JavaScript code outside of a browser. For more information on using -Node.js, see the [Node.js Website][]. +Node.js, see the [Node.js Website][https://nodejs.org/en/]. This is the official [V8](https://github.com/v8/v8/wiki) fork of [Node.js](https://github.com/nodejs/node). +## Quick start + +* If you need to run Node.js with V8 ToT, you can + [build Node with GN](https://chromium.googlesource.com/v8/node-ci/). +* See [what to do](https://v8.dev/docs/node-integration) if your CL broke the + Node.js integration build. + + From 46d4e47b7b04f62440aaf5adddd9cfbfacd25c06 Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Wed, 8 Sep 2021 15:55:59 +0200 Subject: [PATCH 52/55] Fix Node webpage --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 361f325f6908d4..f1ae756413d046 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Node.js is an open-source, cross-platform, JavaScript runtime environment. It executes JavaScript code outside of a browser. For more information on using -Node.js, see the [Node.js Website][https://nodejs.org/en/]. +Node.js, see the [Node.js Website](https://nodejs.org/en/). This is the official [V8](https://github.com/v8/v8/wiki) fork of [Node.js](https://github.com/nodejs/node). From bec32ce903083e2d861a2170404eaaa0afd0d582 Mon Sep 17 00:00:00 2001 From: Victor Gomes Date: Wed, 17 Aug 2022 09:14:55 +0200 Subject: [PATCH 53/55] Fix messed up title --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f1ae756413d046..6832e605e37c77 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -#Node.js +# Node.js

From de3bd94c086e7f6751cf259d0caa91c3e6810538 Mon Sep 17 00:00:00 2001 From: Rezvan Mahdavi Hezaveh Date: Mon, 26 Jun 2023 18:29:00 +0000 Subject: [PATCH 54/55] Change parallel.status to skip failing tests --- test/parallel/parallel.status | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 9ed971e5335f02..0e4fd6641d2067 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -28,6 +28,11 @@ test-repl-mode: SKIP # Temporarily disabled to land https://crrev.com/c/3799431 test-repl: SKIP +# Skip failed tests related to iterator helpers +test-repl-tab-complete: SKIP +test-shadow-realm-globals: SKIP + + # Temporarily skip for https://crrev.com/c/2974772 test-util-inspect: SKIP From d16b8b5232e19d561125b3b61588e6aab1ef2d41 Mon Sep 17 00:00:00 2001 From: Rezvan Mahdavi Hezaveh <31081679+rmahdav@users.noreply.github.com> Date: Mon, 26 Jun 2023 12:09:51 -0700 Subject: [PATCH 55/55] Add bug details --- test/parallel/parallel.status | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 0e4fd6641d2067..b18c6c032dccba 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -28,7 +28,8 @@ test-repl-mode: SKIP # Temporarily disabled to land https://crrev.com/c/3799431 test-repl: SKIP -# Skip failed tests related to iterator helpers +# Skip failed tests related to iterator helpers +# https://bugs.chromium.org/p/v8/issues/detail?id=13558 test-repl-tab-complete: SKIP test-shadow-realm-globals: SKIP