Weekly Project News

Subscribe
Archives

Weekly GitHub Report for Node: July 07, 2025 - July 14, 2025 (12:06:17)

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:

The version released on March 13, 2025, introduces the --experimental-config-file feature, allowing developers to use a JSON configuration file to streamline the use of multiple flags, enhancing the developer experience. Notable updates include improvements in error handling, updates to root certificates, and the addition of new methods like tls.getCACertificates() and v8.getCppHeapStatistics(), reflecting a trend towards increased configurability and security 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. stream.isReadable and stream.isWritable return null instead of false: This issue highlights a bug in the Node.js stream API where the functions stream.isReadable and stream.isWritable return null instead of a boolean value when used with certain stream types, contrary to the expected behavior as per the official documentation. The problem consistently occurs on the specified Windows platform and is expected to return a boolean value in all cases to align with the documentation.

    • The comments discuss whether the current behavior is a bug or a documentation issue, with suggestions to update the API to consistently return a boolean. There is a proposal to align parameter types with those used in stream.isErrored, and a mention of other related functions that should also return a boolean. Some functions already behave as expected, while others are internal helpers not documented in the official API.
    • Number of comments this week: 6
  2. ENOENT error when reading root of subst drive on Windows: This issue describes a problem encountered on Windows when attempting to read the root of a subst drive using Node.js, resulting in an ENOENT error indicating that the directory does not exist. The error occurs consistently and is believed to be related to a change in path normalization behavior between Node.js versions 20 and 22, which affects the handling of paths ending with a backslash.

    • The comments discuss the known issue with libuv and its impact on subst drives, noting that the problem is a regression introduced in Node.js version 22. Suggestions include reporting the bug to the extension vendor and identifying specific code sections that may be causing the issue. There is a request for a pull request to address the problem, but the user is not familiar with C++ and lacks the necessary tools to make changes. The issue is confirmed by other users experiencing similar problems in VS Code after updating to Node.js 22.
    • Number of comments this week: 4
  3. Volunteer for CI Reliability Strategic Initiative: This issue is about the need for a volunteer to lead the CI Reliability Strategic Initiative, which has been a topic of discussion in many TSC meetings and is now recognized as a strategic initiative to improve the CI situation. The lead will have the authority to form a team, raise awareness, and take necessary actions to enhance CI reliability.

    • Several users express willingness to contribute time and effort to the initiative, though not as full-time leads. There is a query about funding availability, which is clarified as not being the trigger for the issue, with further details pending on the funding discussion.
    • Number of comments this week: 4
  4. Bug in fs promise APIs: This issue describes a bug in the Node.js file system promise APIs on macOS, where an incorrect error is thrown when attempting to use the fs.promises.mkdtemp method without the necessary permissions. Instead of the expected permission error, a TypeError is thrown due to the C++ layer not returning the promise to the JavaScript layer when an error occurs.

    • The comments discuss whether the issue is platform-specific, with clarification that it is not. A user reports that the issue seems resolved on macOS with Node.js v22.15.0, as the expected error is now thrown. Another comment clarifies that the test results are due to a different error and suggests using a newer Node.js version for accurate testing.
    • Number of comments this week: 4
  5. Incorrect selection of x64 push_registers_asm.cc for host build when target is arm (Android): This issue involves a build failure when cross-compiling Node.js with V8 for Android on an ARM target, where the incorrect architecture-specific source file push_registers_asm.cc for x64 is selected during the host-side tool compilation, leading to errors due to the use of 64-bit registers in a 32-bit compilation context. The problem arises because the build system mistakenly compiles the x64 file with -m32, causing multiple errors related to the availability of certain registers only in 64-bit mode.

    • The comments discuss the issue of incorrect file selection and suggest passing -m32 directly to CC_host and CXX_host instead of using CFLAGS_host and CXXFLAGS_host. Additionally, there is a recommendation to refer to Termux's patches and build scripts for Node.js, which have addressed similar issues, and a user expresses intent to try applying these patches.
    • 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 the problem of flaky garbage collection-related tests in the V8 12.2 environment, specifically concerning the test-shadow-realm-gc-module, test-shadow-realm-gc, and test-net-write-fully-async-hex-string tests. The proposed temporary solution is to skip these tests due to their unreliability, as they are likely failing because of incorrect assumptions in the tests that have been affected by V8's new garbage collection strategy, rather than actual bugs in the code.
  2. Flaky test-worker-arraybuffer-zerofill with V8 12.2: This issue concerns a flaky test named test-worker-arraybuffer-zerofill associated with V8 version 12.2, which has been open for 470 days. The test intermittently fails, possibly due to a real bug or broken timing assumptions, and it has been suggested to mark it as flaky and add logs for better 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 addon modules (.node files) when embedding the Node.js shared library into a different executable without the need to link with node.def. The proposed solution suggests modifying the delay load hook to utilize an environment variable, potentially named NODE_LIBRARY, to facilitate the loading process, although the security implications of this approach are still uncertain.
  4. Please make Node.js embeddable (e.g. libnode): This issue is about the request to make Node.js embeddable by creating a libnode library that would allow Node.js capabilities to be exported and enable N-API access to the host context, which would be particularly beneficial for projects that want to integrate Node.js within other environments, such as a Rust-based host process. The issue highlights the current limitations of using Node.js as an embedded runtime and suggests that a C++ library or a Rust crate could address these challenges, providing a more seamless integration for projects that currently have to rely on alternatives like Deno, which may lack certain necessary features.
  5. unable to sign with external OpenSSL engine after usage of crypto.hash: This issue involves a problem with signing using an external OpenSSL engine after utilizing the crypto.hash function in Node.js, specifically affecting versions v21.7.0 and v21.7.1. The error, which consistently reproduces, is linked to changes in the Node.js codebase and results in an unsupported digital envelope routines error, whereas the code functions correctly in earlier versions like v21.6.2.

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: 15

Summarized Issues:

  • Documentation Issues: The Node.js project faces several documentation challenges, including the absence of instructions for importing keys used to sign previous releases and the lack of detailed documentation for the pattern argument in the fs.glob function. These gaps hinder users' ability to verify past releases and adopt new features effectively.
    • issues/58979, issues/58981
  • Functionality and API Consistency: Node.js is dealing with inconsistencies and bugs in its APIs, such as the context.conditions property being inconsistently represented and the stream.isReadable and stream.isWritable functions returning null instead of a boolean. These issues affect the expected behavior and reliability of the APIs.
    • issues/59003, issues/59006
  • Platform and Compatibility Issues: There are several platform-specific issues in Node.js, including a bug in the file system promise APIs on macOS and a misalignment in the Windows installation script. These issues lead to unexpected errors and compatibility challenges across different environments.
    • issues/59023, issues/59031
  • Feature Enhancements and Bug Fixes: Node.js is working on enhancing features like the path.matchesGlob function and addressing bugs such as the util.styleText() function not reverting to the outer style after a nested call. These efforts aim to improve functionality and user experience.
    • issues/59015, issues/59035
  • Module and Dependency Conflicts: A conflict arises when importing the 'node:http' module alongside 'undici', resulting in missing methods in the 'undici' globalDispatcher. This issue is specific to certain Node.js versions and does not occur in newer versions, highlighting the need for careful dependency management.
    • issues/59012
  • Configuration and Environment Management: Node.js is addressing issues related to configuration management, such as the failure of the --experimental-config-file option to enable features during tests and the need for custom CA certificate configuration in constrained environments. These issues impact the flexibility and security of Node.js deployments.
    • issues/58990, issues/59021
  • Error Handling and Specification Alignment: The handling of QuotaExceededError in Node.js needs updating to align with the WebIDL specification, which redefines it as a subclass of DOMException. This requires either removing it from the DOMException names table or implementing it as a subclass to ensure compliance.
    • issues/58987
  • Continuous Integration and Community Involvement: The Node.js project is seeking a volunteer to lead the CI Reliability Strategic Initiative, focusing on improving the continuous integration process. This involves forming a dedicated team and increasing awareness among contributors to enhance the project's development workflow.
    • issues/59004
  • Command Line Interface Enhancements: Enhancements are needed for the Node.js CLI, such as ensuring the --print option respects the --input-type=module flag. This would allow for the execution of module-based code without requiring workarounds, improving the usability of the CLI.
    • issues/58994
  • File System and Pattern Matching: The fs.glob function on Windows has issues with case-sensitive globbing and exclusion patterns, leading to discrepancies. Enhancements are proposed to make the casing behavior configurable, accommodating both case-sensitive and case-insensitive filesystems.
    • issues/58991

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:

  • Segmentation Fault in V8 WASM Liftoff Compiler on LoongArch64: This issue describes a segmentation fault occurring in the V8 WASM Liftoff compiler on the LoongArch64 architecture. The Node.js process crashes due to a null pointer dereference in the MacroAssemblerBase constructor during WebAssembly compilation, suggesting a problem specific to the LoongArch64 backend of the Liftoff JIT compiler.
    • issues/58984
  • Inability to Set protocol Property of a URL Object: This issue addresses the inability to set the protocol property of a URL object in JavaScript when using a non-http(s) protocol. It highlights a discrepancy between the expected behavior as per the WHATWG URL specification and the actual behavior observed in different browsers, discussing implications on URL manipulation and potential specification changes.
    • issues/58998
  • Review Requests from Node.js Teams: These issues involve requests for review from various Node.js teams, including the @nodejs/config, @nodejs/test_runner, Node.js security working group, and the V8 update team. The requests were originally posted by the Node.js GitHub bot in comments on related issues.
    • issues/59009, issues/59028
  • Challenges with Loading ESM in CJS Projects: This issue discusses the challenge of ensuring that CommonJS (CJS) projects can load ECMAScript Modules (ESM) synchronously in Node.js versions 20.15.1 and above. Proposed solutions include using conditional exports or specifying Node.js versions in the exports key, but the module-sync feature already addresses this need.
    • issues/59025
  • Discrepancy in zlib Compression Methods: This issue highlights a discrepancy in the output of two zlib compression methods, zlib.deflateRawSync and zlib.createDeflateRaw with deflate.flush, when used with the same input. The expected behavior is for both methods to produce identical buffers ending with a specific trailer, but the actual output differs due to a missing call to deflate.end() in the compress2 function.
    • issues/59027
  • TypeError in Node.js REPL on Variable Declaration: These issues describe a bug in the Node.js REPL where declaring a variable using let or var consistently results in a TypeError. This regression occurs in version 24.4.0 and has been confirmed on Windows, Linux, and macOS platforms, whereas it does not occur in the previous version 24.3.0.
    • issues/59029, issues/59033, issues/59039

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: 28

Key Open Pull Requests

1. http,https: add built-in proxy support in http/https.request and Agent: This pull request introduces built-in proxy support for HTTP and HTTPS clients and agents in Node.js, allowing the default global agent to parse proxy settings from environment variables and proxy requests accordingly, with new options for custom agents to utilize this feature, and includes comprehensive testing to ensure transparent behavior through proxies.

  • URL: pull/58980
  • Merged: No
  • Associated Commits: 34a41, fd602, 16602, 26e0f, 21728

2. module: add registerCondition API for runtime-specific conditional exports: This pull request introduces a new public API, registerCondition, to the Node.js module system, allowing library or runtime authors to dynamically register custom resolution conditions for module exports, such as "electron" or "bun", without modifying the Node.js core, thereby providing a scalable and extensible solution for runtime-specific conditional exports.

  • URL: pull/59005
  • Merged: No
  • Associated Commits: 23e89, cf467, d2665, 77135, d4d61

3. doc: add note on process memoryUsage: This pull request adds documentation notes regarding a potential RSS memory leak in the process.memoryUsage function of the Node.js project, as evidenced by multiple commits updating the process.md and doc/api/process.md files.

  • URL: pull/59026
  • Merged: No
  • Associated Commits: bc408, bc0ba, d0c48, 2dbee, 22321

Other Open Pull Requests

  • WebAssembly ESM Integration Enhancements: This topic covers the addition of support for JavaScript string builtins to the WebAssembly ESM Integration, allowing seamless integration of Wasm modules with JavaScript strings. It also includes the introduction of the jsapi test suite for WebAssembly, incorporating new ESM Integration jsapi tests.
    • pull/59020, pull/59034
  • Documentation Improvements: Several pull requests focus on enhancing Node.js documentation, including updates to fs.glob methods, V8 Fast API guidance, and the relocation of tty.ReadStream constructor details. These changes aim to provide clearer explanations, updated guidance, and correct documentation placement.
    • pull/58988, pull/58999, pull/59016
  • Module Resolution and Configuration: Enhancements in module resolution include support for the "electron" condition and refactoring the linkage process of SourceTextModule. These updates enable runtime-specific exports for Electron applications and facilitate a fully synchronous module creation process.
    • pull/59002, pull/59000
  • Filesystem and Error Handling: Pull requests address issues in filesystem APIs and error handling, such as fixing return values and adding missing internal error codes. These changes ensure proper error propagation and alignment with documented error types.
    • pull/58996, pull/59022
  • Testing and Linting Enhancements: Improvements in testing and linting include optimizing GitHub Actions workflows, addressing test timeouts on IBM i, and modifying crypto tests for compatibility. These updates aim to reduce computational overhead and ensure test reliability across platforms.
    • pull/58985, pull/59014, pull/59030
  • Node.js Configuration and Build Fixes: Fixes in Node.js configuration include addressing the node_use_sqlite setting for GN builds and correcting the logic for fs.readdirSync on Windows. These changes ensure proper configuration and prevent errors related to drive paths and SQLite functionality.
    • pull/58989, pull/59017
  • Code Quality and Maintenance: Pull requests focus on code quality by enforcing best practices, removing unused imports, and addressing linting issues. These efforts improve code reliability, maintainability, and prevent job failures due to CVE mentions.
    • pull/58992, pull/59037, pull/59041
  • API and Debugging Enhancements: New APIs for the trace-sigint command line option are introduced, allowing runtime debugging. Additionally, a proposal to reword API implementation requirements aims to maintain ABI stability for node-api.
    • pull/59040, pull/59036

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: 14

Key Closed Pull Requests

1. doc: add scroll margin to links: This pull request addresses an issue where section titles were obscured by a sticky header when opening section links on the Node.js documentation site by adding a 50px scroll margin to ensure visibility, with adjustments made for smaller screens where the header is not sticky.

  • URL: pull/58982
  • Merged: Yes
  • Associated Commits: b45b0, 508f9, a23b3

2. esm: WebAssembly.namespaceInstance: This pull request implements the WebAssembly.namespaceInstance function, allowing users to obtain the underlying WebAssembly.Instance object for a WebAssembly module record module namespace, and includes updates to the internal bootstrap and documentation, although it has not been merged yet.

  • URL: pull/59024
  • Merged: No
  • Associated Commits: f23e3, 70cc8, ab658

3. doc: remove broken link to permission model source code: This pull request addresses the issue of a broken link in the documentation by removing the outdated link to the permission model source code, as the model has been divided into multiple files, making it impractical to link to a single source file, and aligns with the practice of not linking source code for many Node.js APIs.

  • URL: pull/58972
  • Merged: Yes
  • Associated Commits: 16b38

Other Closed Pull Requests

  • Memory Leak Fix in DNS Module: This pull request addresses a memory leak issue in the SoaTraits::Parse function within the DNS module. It ensures that tests and benchmarks are included, documentation is updated, and the commit message adheres to the project's guidelines.
    • pull/58973
  • Test and Debugging Improvements: This pull request addresses a consistent test failure in the test-debugger-extract-function-name by ensuring the inspector port is set to 0. It aims to resolve the issue of the test failing when run with the Python runner with any repeat value greater than 1 and attempts to mitigate recent flakiness observed in the CI environment.
    • pull/58977
  • Type Error Correction: This pull request addresses a minor type error in the Node.js library by correcting the primordial type of ArrayBufferPrototypeGetDetached. The changes before and after the fix are indicated, and it has been successfully merged into the project.
    • pull/58978
  • Documentation Updates: This pull request involves updating the documentation by adding missing <code> blocks to improve clarity and formatting. It also adds a sponsorship link for RafaelGSS and a stability index to the --watch-kill-signal flag.
    • pull/58983, pull/58995, pull/58997
  • Import Attribute Checks: This pull request ensures that import attribute keys and values in the Node.js project are strictly checked to be literal string types. It adds DCHECKs as described in the commit with SHA d1941fca1f522c861b1fa6ba5df11f5c087e213c.
    • pull/58986
  • Initial Commit: This pull request is an initial commit to the Node.js project, which includes the foundational setup or first set of changes. However, it was not merged into the main codebase.
    • pull/59001
  • Cryptographic Algorithm Update: This pull request addresses the runtime deprecation of default output lengths for the SHAKE128 and SHAKE256 cryptographic algorithms. The current default lengths are insufficient for achieving full collision resistance, and it follows up on a previous discussion in pull request #58942.
    • pull/59008
  • Crash Fixes: This pull request addresses a crash in parallel/test-buffer-indexof.js by modifying Boyer-Moore related functions to use bounds-safe array indexing. It also addresses an issue in the Node.js REPL by fixing a bug that caused it to crash when variable declarations were made without initialization.
    • pull/59018, pull/59032

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.

  1. doc: fix typed list formatting
    • Toxicity Score: 0.55 (Defensive responses,critical feedback,tense exchange)
    • This GitHub conversation involves username1 proposing a fix for a formatting issue, with username2 providing feedback that is initially constructive but becomes increasingly critical. Username1 responds defensively, leading to a tense exchange. The tone shifts from collaborative to confrontational, with both parties expressing frustration.

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
joyeecheung 8 4 2 34
dario-piotrowicz 16 10 1 14
jasnell 3 2 1 34
LiviaMedeiros 13 7 2 5
Renegade334 5 3 4 11
legendecas 6 4 0 10
juanarbol 1 1 0 15
aduh95 7 5 0 4
targos 2 2 0 9
guybedford 8 4 0 1

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