Weekly Project News

Archives
Subscribe
December 8, 2025

Weekly GitHub Report for Node: December 01, 2025 - December 08, 2025 (12:01:53)

Weekly GitHub Report for Node

Thank you for subscribing to our weekly newsletter! Each week, we deliver a comprehensive summary of your GitHub project's latest activity right to your inbox, including an overview of your project's issues, pull requests, contributors, and commit activity.


Table of Contents

  • I. News
    • 1.1. Recent Version Releases
    • 1.2. Other Noteworthy Updates
  • II. Issues
    • 2.1. Top 5 Active Issues
    • 2.2. Top 5 Stale Issues
    • 2.3. Open Issues
    • 2.4. Closed Issues
    • 2.5. Issue Discussion Insights
  • III. Pull Requests
    • 3.1. Open Pull Requests
    • 3.2. Closed Pull Requests
    • 3.3. Pull Request Discussion Insights
  • IV. Contributors
    • 4.1. Contributors

I. News

1.1 Recent Version Releases:

The current version of this repository is v23.10.0

1.2 Version Information:

Released on March 13, 2025, this version introduces the --experimental-config-file feature, allowing developers to use JSON configuration files to simplify flag management for the test runner and other experimental features, enhancing developer experience. Additionally, it includes updates to root certificates, new TLS and V8 methods, improved error handling, and various tooling and documentation enhancements.

II. Issues

2.1 Top 5 Active Issues:

We consider active issues to be issues that that have been commented on most frequently within the last week. Bot comments are omitted.

  1. Docs for building with an ICU source directory don't work: This issue reports that the current Node.js documentation for building with a custom ICU source directory is outdated and does not work correctly when using a git checkout or newer ICU source layouts. The user describes errors encountered during configuration related to missing ICU data files and suggests that the documentation should be updated to clarify the correct directory structure, the need to use a downloaded tarball rather than a git checkout, and the requirement to copy certain ICU data files to specific locations.

    • The comments discuss the root cause being outdated documentation and differences in ICU source packaging, with contributors clarifying that the Node.js build expects a downloaded ICU tarball rather than a git checkout. They agree that the docs need updates to specify the correct ICU source path, explain where ICU data files are generated, and instruct users to copy these files appropriately for the build to succeed.
    • Number of comments this week: 8
  2. Nominating @gurgunday as a Collaborator: This issue is a nomination proposing @gurgunday as a Node.js Collaborator, highlighting their consistent high-quality contributions in code, communication, and reviews within the Node.js project and organization. The nomination also notes their prior involvement as a member of the triaggers team and includes links to their commits, pull requests, issues, comments, and reviews as evidence of their active participation.

    • The comments express strong support and congratulations for the nomination, with community members praising the nominee’s contributions and impact. The nominee responds with gratitude, sharing a heartfelt reflection on their journey with Node.js and appreciation for the collaborative community.
    • Number of comments this week: 5
  3. Node.js installer not working in Windows Sandbox: This issue reports that the Node.js installer fails to run within the Windows Sandbox environment on Windows 11 Pro, producing an error related to a missing DLL required for installation. The user highlights that while the standalone binary works with some workarounds, the MSI installer does not launch, and the problem seems tied to Windows Sandbox’s restrictions, such as disabled script execution policies.

    • The comments suggest this is more of a Windows Sandbox setup or policy issue rather than a Node.js bug, with references to adjusting execution policies and using standalone binaries as workarounds. Some participants note that the installer’s failure is likely due to sandbox limitations dropping certain features needed by the MSI installer, and one user confirms successful installation in a similar environment, pointing to script execution being disabled as a key factor.
    • Number of comments this week: 5
  4. remove redundancy in node.config schema keys: This issue addresses the redundancy in the node.config schema keys where namespaces like "test" and "watch" are repeatedly specified due to direct mapping of CLI arguments. The proposed feature suggests automatically mapping the namespace part of CLI arguments within the config schema to eliminate this duplication, with an additional recursive mapping to better organize nested options such as test reporters and their destinations.

    • The comments discuss the benefits of explicitly associating destinations with multiple test reporters to improve clarity and schema enforcement, consider an alternative ini format for configuration, highlight the potential for parameterizing reporters with additional options, note concerns about consistency with permission flags, and conclude with a mention of a pull request that resolves the redundancy issue by updating the schema generation.
    • Number of comments this week: 3
  5. Nominating @avivkeller: This issue is about nominating a contributor, @avivkeller, to become a Node.js collaborator, highlighting their contributions through commits, pull requests, issues, and comments within the Node.js organization. The nomination is supported by references to their activity and is intended to follow the project's governance guidelines for collaborator additions.

    • The comments express gratitude and congratulations for the nomination, with a reminder to follow governance procedures by notifying the collaborators team.
    • Number of comments this week: 3

2.2 Top 5 Stale Issues:

We consider stale issues to be issues that has had no activity within the last 30 days. The team should work together to get these issues resolved and closed as soon as possible.

  1. Flaky GC-related tests with V8 12.2: This issue addresses flaky garbage collection-related tests that have become unreliable with the update to V8 version 12.2, specifically mentioning tests like test-shadow-realm-gc-module, test-shadow-realm-gc, and test-net-write-fully-async-hex-string. The proposed approach is to skip these tests temporarily due to their instability caused by changes in V8's garbage collection strategy, while acknowledging that current alternative methods to verify collectability may invalidate the tests, and suggesting that a better testing solution be developed in the future.
  2. Flaky test-worker-arraybuffer-zerofill with V8 12.2: This issue concerns the flaky behavior of the test-worker-arraybuffer-zerofill test when running with V8 version 12.2, where the test intermittently fails due to a timeout after approximately 300 seconds. The problem may stem from either a genuine bug or broken timing assumptions causing lost messages, and the current approach is to mark the test as flaky while adding additional logging to aid in debugging.
  3. Support loading dynamic addon modules (.node files) when embedding the Node.js shared library without needing to link with node.def: This issue addresses the challenge of loading dynamic Node.js addon modules (.node files) on Windows when Node.js is embedded as a shared library, specifically without the need to link the embedding executable with the node.def file to reexport necessary symbols. The proposed feature suggests enhancing the delay load hook mechanism to optionally use an environment variable to locate the Node.js shared library module handle, thereby enabling addon modules to load correctly without relying on the executable's symbol exports, though potential security concerns remain to be evaluated.
  4. Please make Node.js embeddable (e.g. libnode): This issue requests the creation of an embeddable version of Node.js, such as a libnode library, to allow projects to integrate the Node.js runtime and standard library directly within other host environments, like Rust-based applications. The current lack of an easily embeddable Node.js runtime forces developers to rely on incomplete alternatives like Deno or attempt complex workarounds, limiting the reuse of existing Node.js tooling and dependencies in various projects.
  5. unable to sign with external OpenSSL engine after usage of crypto.hash: This issue describes a problem where signing data with an external OpenSSL engine (specifically the gost-engine) fails after using the crypto.createHash method in Node.js version 21.7.1 on a Linux Debian system. The error occurs consistently and produces an "unsupported" digital envelope routines error, which did not happen in earlier Node.js versions, suggesting a regression introduced by recent changes in the crypto subsystem.

2.3 Open Issues

This section lists, groups, and then summarizes issues that were created within the last week in the repository.

Issues Opened This Week: 10

Summarized Issues:

  • API clarity and reliability: There is uncertainty about whether the options property of http.globalAgent is part of the public API and safe to use for creating new http.Agent instances, as the documentation does not clearly state this despite the property's long presence in the source code. This lack of clarity can lead to inconsistent usage and potential issues in relying on undocumented features.
  • issues/60914
  • Test runner improvements: A proposal suggests adding a command-line option to the Node.js test runner to ignore or reject any test.only or { only: true } filters, aiming to prevent accidental exclusion of tests in CI environments. This would improve the detection of unintended test filtering and ensure more reliable test coverage.
  • issues/60917
  • Build configuration updates: The Node.js main branch build configuration needs to be updated to stop accepting Python 3.9, which has reached end-of-life, ensuring that only supported Python versions 3.10 and above are used. This change is necessary to maintain compatibility and security in the build process.
  • issues/60919
  • Collaborator nominations: Two issues nominate contributors (@gurgunday and @avivkeller) as Node.js collaborators, recognizing their consistent high-quality contributions including commits, issue participation, reviews, and community involvement. These nominations highlight the importance of acknowledging active and valuable members of the project.
  • issues/60921, issues/60937
  • Windows installer issues: The Node.js MSI installer fails to run inside Windows Sandbox on Windows 11 Pro due to a missing DLL error and sandbox restrictions, while the standalone binary works with workarounds. This problem prevents proper installation in sandboxed environments and is related to script execution policies and sandbox limitations.
  • issues/60941
  • Documentation inaccuracies: The Node.js documentation for building with a custom ICU source directory is outdated and incomplete, lacking proper guidance on specifying the ICU source path, locating the ICU data file, and copying it to the expected directory for successful configuration. This causes confusion and build failures for users attempting custom ICU builds.
  • issues/60947
  • Readline module bug: A bug in the readline module causes the output from the completer to be erased or overwritten when using a multiline prompt and listing all completions, resulting in duplicated prompt lines and missing completion suggestions. This issue affects usability and clarity of the readline interface.
  • issues/60952
  • Console logging of Proxy objects: Logging a Proxy object to the console results in an unhelpful empty object {}, omitting enumerable ownKeys that should be displayed similarly to normal objects. This behavior reduces the usefulness of console output for debugging Proxy objects.
  • issues/60964
  • Module resolution inconsistency: When using require(esm) in Node.js v25.2.1 on macOS, the parentURL passed to registerHooks incorrectly omits the query string, causing a mismatch with import.meta.url and leading to unexpected module resolution behavior. This discrepancy can cause issues in module loading and hook registration.
  • issues/60973

2.4 Closed Issues

This section lists, groups, and then summarizes issues that were closed within the last week in the repository. This section also links the associated pull requests if applicable.

Issues Closed This Week: 9

Summarized Issues:

  • Python version support in Node.js builds: Node.js branch builds currently accept Python versions older than 3.10, which have reached end-of-life, causing a need to update the configure scripts and documentation to restrict supported Python versions to 3.10 and above. This change is necessary to align with official Python support policies and ensure compatibility.
  • issues/60918
  • Security and release management inquiries: There are requests for review and confirmation related to Node.js security and release schedules, including a review request from the security working group and a query about the expected release date for version 22.21.3, which addresses high-priority CVEs in bundled dependencies. These issues highlight ongoing efforts to maintain security and clarity around release timelines.
  • issues/60938, issues/60958, (https://github.com/issues/60958)
  • Application and API usage issues: Users report problems with Node.js features and APIs, including a segmentation fault with the Intl.Segmenter API on certain builds and platforms, and a regression causing process crashes when logging Error objects with getters in version 24.11.1. These issues affect stability and reliability of Node.js in specific use cases and environments.
  • issues/60948, issues/60961, (https://github.com/issues/60961)
  • Platform compatibility problems: Node.js version 24 exhibits syntax and execution errors on WSL1 with Debian 12, while earlier versions and WSL2 work correctly, indicating compatibility issues with this specific environment. This problem impacts users running Node.js in Windows Subsystem for Linux setups.
  • issues/60950
  • Infrastructure and service errors: A 500 Internal Server Error was encountered in the Node.js project, which was traced to a Cloudflare-related issue and subsequently resolved, showing the impact of external infrastructure on project availability.
  • issues/60955
  • Documentation and tooling inquiries: There is a user inquiry about the availability of a JSON API for Node.js documentation to facilitate building a custom frontend, along with questions about the documentation generation pipeline from the source code. This reflects interest in improving documentation accessibility and tooling.
  • issues/60965
  • Application development with Node.js: A React Native app called "Faceless Video Creator" enables users to create videos for TikTok and YouTube by recording or typing audio, selecting avatars, previewing captions, and exporting via screen recording, showcasing creative uses of Node.js in app development.
  • issues/60944

2.5 Issue Discussion Insights

This section will analyze the tone and sentiment of discussions within this project's open and closed issues that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.

Based on our analysis, there are no instances of toxic discussions in the project's open or closed issues from the past week.


III. Pull Requests

3.1 Open Pull Requests

This section provides a summary of pull requests that were opened in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.

Pull Requests Opened This Week: 29

Key Open Pull Requests

1. lib,src,test: fix tests without SQLite: This pull request aims to fix tests in the lib, src, and test directories so that they can run successfully without requiring SQLite, with initial changes being tested in draft form and Nix-related modifications planned for a separate pull request.

  • URL: pull/60906
  • Merged: No
  • Associated Commits: 7a5e3, e72ec, 49065, 98213

2. node-api: use v-table to reverse module dependencies: This pull request proposes a proof-of-concept implementation to reverse the dependency model of Node-API modules by using v-tables, allowing the runtime to inject the API into pre-built .node modules instead of the modules depending on the Node.js API, thereby enabling compatibility with multiple JavaScript runtimes and overcoming limitations related to module binding on different platforms.

  • URL: pull/60916
  • Merged: No
  • Associated Commits: 00f1b, f3d58, 647ef, 713c1

3. util: process signal to exit code utility: This pull request introduces a new utility function util.convertProcessSignalToExitCode() that converts process termination signal names (like SIGTERM or SIGKILL) into their corresponding POSIX exit codes, enabling consistent cross-platform handling of child process exit codes when termination is caused by signals.

  • URL: pull/60963
  • Merged: No
  • Associated Commits: 54035, 42dbd, 51cfb

Other Open Pull Requests

  • Shell.nix configuration and Nix improvements: This pull request adds new parameters withAmaro, withSQLite, and withSSL to the shell.nix configuration to align with existing configure.py flags and reorganizes parameter grouping for better readability. It also fixes a bug related to passing --arg ccache null, improves consistency in using Nix library functions, and introduces a local needsRustCompiler flag to support future Rust dependencies.
    [pull/60911]
  • Windows symlink error handling: This pull request adds a defensive try/catch block around the stat() call used in Windows symlink creation to prevent rare synchronous errors from crashing the Node.js process. It ensures safer failure handling while maintaining existing behavior with minimal, platform-specific changes.
    [pull/60923]
  • Crypto module ML-KEM JWK support: This pull request adds support for the ML-KEM JWK key format to the node:crypto module and the Web Cryptography API.
    [pull/60933]
  • Node.config JSON schema simplification: This pull request removes redundancy in the node.config JSON schema by eliminating prefixed keys in the test and watch namespaces, simplifying keys like test-concurrency and watch-path to concurrency and path respectively. The original prefixed keys are retained as aliases for backward compatibility.
    [pull/60943]
  • ESM require feature stabilization and CLI flag updates: This pull request marks the require(esm) feature as stable across all active LTS release lines due to its widespread adoption and maturity. It replaces the experimental CLI flags --experimental-require-module and --no-experimental-require-module with stable alternatives while retaining the experimental flags as legacy aliases.
    [pull/60959]
  • Module customization hooks documentation reorganization: This pull request reorganizes the documentation of module customization hooks to emphasize synchronous variants by presenting them first without caveats and marks these synchronous hooks as release candidates. It also clearly outlines the caveats associated with asynchronous hooks.
    [pull/60960]
  • V8 crash fix backport for RISC-V architecture: This pull request backports two V8 commits to the v24.x branch to fix a crash related to a failed check in the bind_to function on the RISC-V architecture. The fix addresses an issue encountered when building Adguard Home with webpack and is unnecessary for later versions where the fixes are already included.
    [pull/60962]
  • Fix for readable.compose() method behavior: This pull request addresses the issue where the readable.compose() method incorrectly passes its output through Readable.from(), causing inefficiencies and functional breakages. It modifies readable.compose() to be a standalone method that returns the original composed Duplex stream unaltered.
    [pull/60907]
  • fs.watch documentation improvements: This pull request improves the fs.watch documentation by adding a detailed section explaining limitations of event detection during rapid file operations due to OS-level mechanisms. It clarifies that missed or coalesced events are expected behavior and provides recommendations such as using third-party libraries, fs.watchFile(), or debouncing logic for reliable file event monitoring.
    [pull/60910]
  • Test suite improvements for NODE_OPTIONS and promise detection: These pull requests propose skipping tests that fail when NODE_OPTIONS support is not available and improve test reliability by enforcing explicit detection of promises that are never expected to settle. These changes ensure smoother test runs and stricter test behavior validation.
    [pull/60912, pull/60975, pull/60976]
  • queueMicrotask performance optimization: This pull request optimizes the queueMicrotask function by preserving AsyncLocalStorage only when necessary, improving performance as demonstrated by benchmark comparisons.
    [pull/60913]
  • Fix readdir recursive mode Buffer argument error: This pull request fixes an issue where calling the readdir function with a Buffer argument in recursive mode incorrectly produces an ERR_INVALID_ARG_TYPE error. It ensures the function returns the expected array of Buffers or Dirents without error.
    [pull/60936]
  • Fix cpSync symbolic link handling: This pull request fixes an issue in the cpSync function where the source argument was incorrectly dereferenced due to swapping the symlink_status and status parameters for the destination. The fix corrects behavior to properly handle symbolic links as described in issue #59168.
    [pull/60945]
  • Fix errorOnExist option for directory copy in fs.cp: This pull request addresses the issue of the errorOnExist option not being applied during directory copy operations in the fs.cp function. It implements this check for directories, fixing the behavior to match that previously available only for files.
    [pull/60946]
  • Improve ERR_AMBIGUOUS_MODULE_SYNTAX error message: This pull request improves the ERR_AMBIGUOUS_MODULE_SYNTAX error message by dynamically identifying the specific CommonJS global causing the ambiguity instead of relying on a hardcoded reference to 'require()'.
    [pull/60949]
  • Enhance process.cwd() failure error message: This pull request improves the error message generated when process.cwd() fails due to the current working directory being deleted. It modifies the relevant internal module to catch and enhance the ENOENT error and adds a new test to verify this improved message.
    [pull/60951]
  • Global proxy support API addition: This pull request introduces a new API, http.setGlobalProxyFromEnv(), enabling dynamic, built-in proxy support across fetch() and http.request()/https.request() methods. This simplifies proxy configuration by allowing users to set it globally from environment variables without configuring each method individually.
    [pull/60953]
  • Mark CLI flags and APIs as stable: These pull requests update documentation to mark the CLI flags --build-snapshot and --build-snapshot-config as stable, propose marking the CLI option --heapsnapshot-near-heap-limit as stable, and propose marking the v8.queryObjects() API as stable. These reflect consistent support and reliable use over time.
    [pull/60954, pull/60956, pull/60957]
  • Add ERR_AMBIGUOUS_MODULE_SYNTAX error code: This pull request adds a new error message, ERR_AMBIGUOUS_MODULE_SYNTAX, to clearly indicate when a file improperly mixes CommonJS and ES Module syntax. This improves developer experience by encouraging consistent use of a single module system.
    [pull/60968]
  • Module compile cache stabilization: This pull request proposes marking the module compile cache feature as stable due to its year-long stability without breaking changes and widespread usage. It clarifies that future changes will treat breakages as semver-major and excludes certain implementation details from the stability contract.
    [pull/60971]
  • Fix createRequire() URL preservation: This pull request addresses an issue where the createRequire() function did not preserve the URL passed to it in the mock parent module. It adds functionality to retain the URL if createRequire() is invoked with one, which can affect behavior when used with module.registerHooks().
    [pull/60974]
  • Test flakiness reduction for repl paste big data: This pull request aims to deflake the test-repl-paste-big-data test by increasing the data length, raising the threshold, and relocating the test to the pummel suite. These changes improve test stability when run in parallel with other tests.
    [pull/60975]

3.2 Closed Pull Requests

This section provides a summary of pull requests that were closed in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.

Pull Requests Closed This Week: 17

Key Closed Pull Requests

1. tools: update cpplint to v2.0.2: This pull request proposes updating the cpplint tool to version 2.0.2, including disabling certain linting rules to avoid false positives and conflicts with the C++ formatter, and backporting multiple patches to improve lint checks and maintain consistency with the Node.js codebase style guidelines.

  • URL: pull/60901
  • Merged: No
  • Associated Commits: a8790, d71da, 3fa96, 81819

2. tools: update ESLint deps and handle plugin deprecations: This pull request aims to update the ESLint dependencies to their latest versions, remove deprecated ESLint plugins, and replace the deprecated eslint-plugin-markdown to maintain compatibility and improve the project's linting tools.

  • URL: pull/60908
  • Merged: No
  • Associated Commits: 32b86, effd6, 79534

3. build: add temporal to linux GHA build: This pull request aims to add support for building the V8 temporal API on Linux using GitHub Actions, specifically targeting Ubuntu x64 and arm64 architectures with Rust compiler version 1.82.0 to ensure compatibility with LLVM v19, while simplifying Rust toolchain installation and testing.

  • URL: pull/60942
  • Merged: No
  • Associated Commits: 7b4ec, 19d63, 39b01

Other Closed Pull Requests

  • CI Configuration Updates: This pull request updates the GitHub Actions CI configuration to ignore additional file paths, reducing redundant builds such as multiple Node.js versions running unnecessarily in pull requests. It also removes references to the obsolete AUTHORS file to clean up the configuration.
    pull/60920
  • Error Message Improvements: These pull requests improve error handling by clarifying error messages and enhancing error reporting. One improves the error message for process.cwd() when the current directory is deleted, while another resolves several error handling TODOs in lib/buffer.js and src/node_worker.cc by throwing clearer exceptions and updating exit codes.
    pull/60935, pull/60931
  • Test and CI Enhancements: This pull request enables running tests with the --without-amaro option on the test-shared macOS CI job by reusing an existing job to cover this configuration without adding a new one, fixing previously broken tests. Another improves test coverage for config-file permissions, enhancing reliability of permission-related tests.
    pull/60902, pull/60929
  • WritableStream Property Fixes: This pull request fixes the implementation of the isErrored and isWritable properties for WritableStreams by addressing missing underlying machinery, ensuring these properties behave correctly.
    pull/60905
  • RISC-V Branch Offset Fix: This pull request fixes a branch offset overflow error on RISC-V by increasing the trampoline pool gap in the V8 assembler from 16 to 32 slots and ensuring the trampoline pool is emitted earlier to prevent branch targets from being out of range.
    pull/60909
  • Documentation Updates: These pull requests update documentation by adding the missing zstd compression encoding to the Node.js zlib ES module example and correcting the documentation of the --watch and --watch-path flags in the Node.js manual page. Additionally, a typographical error in the fixtures README is corrected.
    pull/60915, pull/60932, pull/60977
  • Stack Trace Handling Improvement: This pull request adds an assertion to ensure that the util.getCallSites function does not invoke Error.prepareStackTrace, preventing unintended side effects during stack trace retrieval.
    pull/60922
  • Windows-1252 Decoder Fix: This pull request addresses incorrect decoding of bytes 0x80-0x9F in Windows-1252 encoding by replacing the Latin-1 decoder with a proper Windows-1252 decoder including a character mapping table. It updates source and JavaScript binding files and adds comprehensive tests to ensure correct functionality.
    pull/60934
  • Unmerged Proposals: These pull requests propose new files and workflows, including a new workflow file named manual.yml and a new file named fgts.js, but neither was merged into the project.
    pull/60939, pull/60967

3.3 Pull Request Discussion Insights

This section will analyze the tone and sentiment of discussions within this project's open and closed pull requests that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.

Based on our analysis, there are no instances of toxic discussions in the project's open or closed pull requests from the past week.


IV. Contributors

4.1 Contributors

Active Contributors:

We consider an active contributor in this project to be any contributor who has made at least 1 commit, opened at least 1 issue, created at least 1 pull request, or made more than 2 comments in the last month.

If there are more than 10 active contributors, the list is truncated to the top 10 based on contribution metrics for better clarity.

Contributor Commits Pull Requests Issues Comments
aduh95 68 16 2 23
joyeecheung 22 12 1 5
Renegade334 11 8 0 21
targos 21 5 2 8
richardlau 10 3 1 15
legendecas 16 3 0 4
LiviaMedeiros 11 6 1 3
siaeyy 7 2 1 9
marco-ippolito 9 0 0 8
RafaelGSS 9 4 0 3

Don't miss what's next. Subscribe to Weekly Project News:
Powered by Buttondown, the easiest way to start and grow your newsletter.