Weekly Project News

Subscribe
Archives

Weekly GitHub Report for Node: August 25, 2025 - September 01, 2025 (12:06:08)

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. Assertions yield incorrect message when source is transpiled by loader: This issue reports that when running assertions in TypeScript tests through a loader like tsx, Node.js produces incorrect assertion messages by referencing the wrong source location. The root cause is that Node.js captures stack traces from transpiled code but then attempts to locate assertion source code by reading the original source file from disk without properly applying source maps, leading to mismatches in reported assertion lines.

    • The discussion clarifies that running tests directly with Node.js on TypeScript files yields correct assertion locations, while using loaders such as tsx causes incorrect source references. Commenters provide minimal reproduction cases, explain how Node.js currently handles stack traces and source code lookup, and confirm that source maps are not respected in the assertion error generation, suggesting the issue lies in Node.js’s internal assertion utilities rather than the loaders themselves.
    • Number of comments this week: 10
  2. Setting process.title is slow on Mac: This issue reports that setting process.title on macOS is significantly slower than expected, taking around 10+ milliseconds instead of under 1 millisecond as observed on other Unix systems or alternative runtimes like Bun and Deno. The user provides a reproducible example and highlights that this performance overhead occurs consistently, impacting developer experience especially in scenarios like test runners that set the title frequently.

    • The comments discuss the criticality of the issue, with some questioning its urgency since the setter is typically called infrequently per process. A contributor shares a patch to improve performance by simplifying the macOS implementation, noting that removing certain logic could break features like Force Quit and Activity Monitor integration. The discussion includes benchmarking results confirming the overhead and perspectives from a test runner maintainer emphasizing the issue’s limited impact on typical usage.
    • Number of comments this week: 6
  3. Ownership of @node-core/remark-lint: This issue discusses the ownership and maintenance responsibilities of the @node-core/remark-lint package, which contains updated linting rules and plugins aligned with a new documentation generator. The main concern is determining which teams or collaborators should be designated as code owners to manage changes, ensure coordination, and prevent breaking changes in related repositories, especially as the package impacts Node.js core documentation.

    • The comments highlight that the current linting package lacks a designated CODEOWNER and suggest moving the issue to the appropriate repository. Contributors emphasize the importance of shared ownership or at least notifying relevant teams like linting and documentation to manage changes responsibly. There is also a focus on maintaining backward compatibility to avoid linting failures in core repositories, and a proposal to define a specification for documentation formats that could extend beyond Node.js to other OpenJS projects.
    • Number of comments this week: 5
  4. Some fs.cp* tests are constantly failing on Windows: This issue addresses the problem of certain fs.cp* test cases consistently failing on Windows, which were previously hidden within a larger flaky test suite. It highlights that these failures appear in recent branches but not in older ones, suggesting regressions introduced in newer code, and discusses investigating whether reverting recent changes or continuing to fix forward is the best approach.

    • The comments discuss whether to revert recent fs.cp* changes or to roll forward and fix the issues, with contributors expressing openness to either strategy but emphasizing the need for careful test coverage expansion to prevent new bugs. They acknowledge existing test cases as a good foundation and plan to explore solutions collaboratively in the coming days.
    • Number of comments this week: 4
  5. Implement test retry logic for flakiness: This issue proposes implementing test retry logic across the entire continuous integration (CI) system to reduce test flakiness, inspired by existing flags that rerun flaky tests in specific workflows. It highlights discussions from recent meetings and references prior work, suggesting enhancements to the Python test runner and broader CI configurations to improve reliability.

    • The comments discuss next steps involving a champion with Jenkins access, note that Windows CI remains a major source of flakes despite some configuration, provide detailed logs showing flaky test failures on Windows, and reference a prior pull request that implemented a similar retry mechanism.
    • Number of comments this week: 4

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 (GC)-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 GC strategy, while acknowledging that current alternative methods to verify GC behavior 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 timeouts or potential timing-related problems. 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, thereby enabling addon modules to load correctly without relying on the executable's symbol exports, though potential security concerns with this approach 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 within other host environments, like Rust-based applications. The proposer highlights that current solutions are inadequate, forcing developers to rely on alternatives like Deno, which lack full compatibility, and emphasizes the potential benefits for numerous projects that want to reuse Node.js tooling and dependencies seamlessly.
  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.0 and later. The user reports that while the signature operation works correctly in version 21.6.2 and earlier, it now throws an "unsupported" error related to digital envelope routines, indicating a regression likely caused by recent changes in the Node.js 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: 20

Summarized Issues:

  • Test failures and flakiness on Windows and other platforms: Multiple test cases on Windows, including fs.cp* tests, fastutf8stream tests, and max-old-space-size-percentage tests, are failing intermittently or persistently due to issues like file deletion delays and heap size assertion errors. These flaky tests cause CI instability and ongoing investigations are focused on whether to revert recent changes or implement fixes, with proposals to add retry logic to reduce flakiness.
  • [issues/59636, issues/59638, issues/59639, issues/59645]
  • Incorrect or inconsistent error reporting and stack traces: Assertions in tests run through TypeScript loaders produce incorrect failure messages because Node.js captures stack traces from transpiled code but reads original source files without applying source maps properly. This results in wrong source locations being reported, complicating debugging efforts.
  • [issues/59612]
  • Race conditions and ordering issues in Worker threads and module loading: A race condition in Worker threads causes message loss due to reversed event order between parentPort.postMessage() and uncaught exceptions, raising questions about spec compliance. Additionally, proposals to re-implement module.register() aim to eliminate race conditions in ESM cache handling and restore synchronous require() behavior for CommonJS modules.
  • [issues/59617, issues/59666]
  • Command execution and environment configuration errors on Windows: Running npm -v on Windows results in an error indicating that a command is not recognized, pointing to problems with the npm executable or path configuration.
  • [issues/59618]
  • URL formatting and HTTP/2 header handling issues: The perf_hooks subsystem incorrectly omits port numbers and misformats URLs for HTTP requests, while a proposal suggests adding an insecure parser option to HTTP/2 to allow multiple values for headers normally restricted to one, addressing compatibility with technically invalid but parseable headers.
  • [issues/59625, issues/59651]
  • Stream pipeline failures on Windows: The stream.pipeline function fails with a TypeError when used with process.stdout or process.stderr as the destination stream in Node.js 24.6.0 on Windows, despite documentation indicating these are valid writable streams.
  • [issues/59648]
  • Missing or inconsistent Node.js nightly builds for macOS ARM64: Nightly downloads for Node.js v25.x on macOS ARM64 are apparently missing from the official download page, although Apple ARM installers exist for the older v24.x branch.
  • [issues/59654]
  • Module loading and synchronous ESM support limitations: There is a proposal to add synchronous versions of link and evaluate methods to SourceTextModule to enable synchronous loading of ECMAScript modules, addressing Jest's current limitation of only supporting synchronous loading for CommonJS and native modules.
  • [issues/59656]
  • Native fetch() crashes on Ubuntu: Using the native fetch() function in Node.js 20.11.0 on Ubuntu 22.04 causes unexpected crashes when called without a polyfill, indicating stability issues with the built-in fetch implementation.
  • [issues/59657]
  • Ownership and maintenance of linting packages: Discussions are ongoing about assigning ownership and maintainers for the @node-core/remark-lint package, which affects Node.js core documentation and involves multiple teams to ensure proper oversight.
  • [issues/59664]
  • Network interface identification in dgram module: A request has been made to add an interface name property to the rinfo object in the dgram module to identify the network interface from which DHCP DISCOVER packets are received, aiding in correct IP address leasing.
  • [issues/59670]
  • DOMException subclassing regression: In Node.js versions 24.6.0 and 24.7.0, extending the DOMException class and accessing custom getter properties no longer works as expected, with properties returning undefined instead of correct values.
  • [issues/59677]
  • Performance regressions on macOS: Setting process.title on macOS is significantly slower compared to other Unix systems and runtimes, causing performance concerns in scenarios like test runners. Additionally, importing the http module using ESM syntax is about 50% slower than CommonJS require, possibly related to lazy initialization of the undici HTTP client.
  • [issues/59678, issues/59686]
  • SharedArrayBuffer handling inconsistencies: Node.js web API implementations inconsistently and non-compliantly handle SharedArrayBuffers and their views, often accepting views disallowed by the web specification unless marked as AllowShared, leading to potential errors and divergence from expected behavior.
  • [issues/59688]

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

Summarized Issues:

  • Installation Failures Due to Disk Space: The visualstudio2019-workload-vctools package installation fails during Node.js 24.5.0 setup on Windows because of insufficient disk space, requiring at least 6.32 GB free. This pre-check verification error causes the installation to abort despite some non-critical errors that do not block progress.
  • issues/59326
  • Test Runner and Flaky Test Issues: There are problems with the test runner where clearInterval inside a setInterval callback does not stop the interval, causing test failures. Additionally, the parallel/test-http-keep-alive-empty-line test is flaky on Linux ARM64 due to an unhandled 'error' event from a "write after end" stream error.
  • issues/59483, issues/59577
  • TypeScript and Type Definition Problems: The TypeScript type definition for sqlite.backup() is incorrect, specifying Promise<void> instead of the correct Promise<number>. There is also a proposal to add a flag for automatically appending file extensions to relative imports in multi-file TypeScript projects to fix import resolution failures.
  • issues/59597, issues/59615
  • Deprecation and Code Usage Issues: The deprecated v8::String::WriteOneByte function is still used in some parts of the src/ directory, indicating incomplete removal or update of deprecated code.
  • issues/59555
  • GitHub Actions Workflow Failures: Intermittent failures in GitHub Actions workflows occur due to 403 and 429 HTTP errors from the npm registry. These issues were tracked, discussed, and linked to an npm support ticket that led to resolution and closure.
  • issues/59620
  • Logic Errors in Code Functions: The function eh_par contains a logic error where the condition n%2==1 incorrectly returns odd numbers instead of even numbers, causing incorrect behavior in identifying even numbers.
  • issues/59624
  • Unclear or Minimal Issue Reports: Some issues lack sufficient detail or discussion, such as a topic related to Node.js with an empty body and no comments, and a discussion referencing C++ code in a pull request comment on an external repository.
  • issues/59643, issues/59669
  • Date Handling Behavior in Node.js: Using (new Date()).setMonth(1) in Node.js v24.5.0 on Debian 12 sets the month to 2 instead of 1, which aligns with the ECMAScript specification despite user confusion.
  • issues/59672

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

Key Open Pull Requests

1. benchmark: calibrate util.*: This pull request updates and calibrates the benchmark tests in the util namespace by adjusting the n values for each benchmark according to the results from the calibrate-n script, significantly reducing the number of iterations to improve benchmark run times as detailed in nodejs/performance#186.

  • URL: pull/59655
  • Merged: No
  • Associated Commits: 5cd6f, 5fffa, 437bf, 0628f, d0816, 5b90e, b717d, 0ceff, ff393, ce5bd, 8ec46, 96f2e

2. test_runner: make signal handling configurable: This pull request introduces a configurable hookSignal option to the test runner's run() function, enabling signal handling in scenarios where it was previously disabled, such as when the test runner is invoked programmatically without the --test flag, thereby preventing abrupt process termination and ensuring proper test reporting.

  • URL: pull/59674
  • Merged: No
  • Associated Commits: 700f0, ded91, 8c34f, a0ef0, db667

3. crypto: add KMAC Web Cryptography algorithms: This pull request adds the KMAC Web Cryptography algorithms to the SubtleCrypto interface in Node.js, implementing the specification outlined in the WebCrypto Modern Algorithms proposal and referencing the NIST SP 800-185 standard.

  • URL: pull/59647
  • Merged: No
  • Associated Commits: f227d, dbbe5, 3e90a, e73b1

Other Open Pull Requests

  • Backports and Fixes for Node.js v20.x and v22.x branches: Several pull requests backport important fixes and improvements to the Node.js v20.x and v22.x branches, including support for memory size options, suppression of exceptions from invalid source map lookups, and V8 engine fixes for LoongArch ABI compliance. These backports ensure stability and compatibility across different Node.js versions and architectures.
    • pull/59631, pull/59653, pull/59662, pull/59663
  • Performance and Optimization Improvements: Multiple pull requests focus on improving performance and reducing overhead, such as enhancing the HTTP parser by removing async_hooks, optimizing Readable stream buffer compaction to avoid costly operations, and optimizing CPU profiling in worker threads with benchmarks and documentation updates. These changes contribute to more efficient runtime behavior and resource usage.
    • pull/59621, pull/59676, pull/59683
  • Bug Fixes and Crash Prevention: Several pull requests address critical bugs and crashes, including fixing a crash on 32-bit platforms caused by incorrect memory accounting during garbage collection, adding nullptr checks to prevent null pointer dereferences, and resolving race conditions related to process exit and OpenSSL API usage. These fixes improve the robustness and stability of Node.js.
    • pull/59623, pull/59628, pull/59632
  • Documentation and Specification Updates: Some pull requests update documentation and compliance with standards, such as clarifying the inability to override TypeScript handling in dependencies, adding descriptive documentation to crypto module methods, and updating the Node.js test runner to comply with the official JUnit XML specification. These updates enhance clarity and interoperability.
    • pull/59644, pull/59652, pull/59685
  • Code Refactoring and Modernization: A few pull requests focus on refactoring and modernizing code, including reducing complexity in SQLite source methods to facilitate asynchronous API implementation, replacing deprecated V8 prototype methods with current ones, and rewriting fastutf8stream tests to use the node:test framework with improved event handling. These efforts improve maintainability and future extensibility.
    • pull/59659, pull/59667, pull/59671
  • Module and Loader Improvements: Pull requests address module system behavior, such as clarifying differences between hasAsyncGraph and hasTopLevelAwait properties, fixing ESM loader cache population when loading modules via custom require(), and adding a new API method to query asset keys in the SEA module. These changes improve module loading reliability and functionality.
    • pull/59661, pull/59675, pull/59679
  • File System and DOMException Fixes: Specific fixes include correcting the behavior of the cpSync function when the dereference option is false and fixing support for subclassing DOMException in Node.js. These targeted fixes resolve user-reported issues and improve API correctness.
    • pull/59680, pull/59681
  • Build and CI/CD Updates: One pull request updates the build configuration to use the new windows-2025 GitHub Actions runner, aligning with GitHub's transition away from the windows-latest runner. This ensures continued compatibility with CI/CD infrastructure.
    • pull/59673

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

Key Closed Pull Requests

1. repl: fix wrong parentheses: This pull request fixes incorrect handling of parentheses in the Node.js REPL by adding a validation check for balanced parentheses before wrapping input, improving syntax error detection and robustness through multiple related tests.

  • URL: pull/59607
  • Merged: 2025-08-27T17:32:01Z
  • Associated Commits: f146e, 334b1, e3679, 73e23, c2026, 94cad, 13b2c, 81424, 95387, 0230e, 60938

2. worker: add cpu profile APIs for worker: This pull request adds CPU profiling APIs for workers, enabling the main thread to obtain CPU profiles and usage data of workers via the worker inspector protocol, particularly to capture profiles when CPU load is high.

  • URL: pull/59428
  • Merged: 2025-08-29T15:42:21Z
  • Associated Commits: 035d1, a9d39

3. crypto: support SLH-DSA KeyObject, sign, and verify: This pull request adds support in the Node.js crypto module for SLH-DSA KeyObject types when built with OpenSSL 3.5, enabling key import/export in SPKI and PKCS#8 formats, key generation, and sign/verify functionality, while addressing previous test timeouts by optimizing the test suite execution.

  • URL: pull/59537
  • Merged: 2025-08-26T15:41:25Z
  • Associated Commits: 42cce, ce2f9

Other Closed Pull Requests

  • Performance and Benchmark Optimizations: Several pull requests focus on improving benchmark performance and stability by calibrating test parameters and reducing redundant or excessive testing. These changes significantly reduce runtime durations and improve reliability without sacrificing result quality.
    • pull/59575, pull/59586, pull/59587, pull/59588, pull/59589
  • Security Policy Clarifications: A pull request updates the Node.js threat model to clarify that security vulnerabilities affecting only experimental platforms are treated as normal bugs without CVEs or bug bounty rewards. This aligns the security policy with the tier-based platform support system and provides clearer guidance for researchers and maintainers.
    • pull/59591
  • Documentation Improvements: Multiple pull requests enhance documentation by adding clearer explanations, code samples, and updated information. These include improvements to HTTP/2 raw headers, sqlite.backup() method details, webcrypto.md linking, and install_tools.bat disk space requirements.
    • pull/59633, pull/59598, pull/59608, pull/59579, pull/59601, pull/59598
  • Timer and Async Resource Fixes: Fixes include setting mock timer intervals to undefined on clearInterval calls to prevent execution queue issues and correcting deprecated asyncResource arguments to avoid unintended prototype modifications. These changes address specific bugs and improve internal consistency.
    • pull/59479, pull/59518
  • Code Consistency and Cleanup: Pull requests replace manual function type checks with a validateFunction utility and remove unused JSONParser code, improving maintainability and addressing prior issues.
    • pull/59529, pull/59619
  • Crypto Module Enhancements: Updates include adding Argon2 algorithm support to SubtleCrypto and asynchronously loading system CA certificates off the main thread to reduce blocking and speed up TLS context creation.
    • pull/59544, pull/59550
  • SEA (Single Executable Archive) Argument Handling: Two pull requests implement and enhance execArgvExtension configuration for SEA, allowing flexible runtime argument extension modes and enabling inspector command line flags via NODE_OPTIONS with appropriate tests.
    • pull/59560, pull/59568
  • Test Fixes and Stability: Fixes include updating the internet/test-dns test to handle multiple TXT records, resolving flakiness in the test-http-keep-alive-empty-line by changing socket handling, and correcting the clean target in the test/wasi/Makefile for proper cleanup.
    • pull/59660, pull/59595, pull/59576
  • Thread Naming and Debugging: A pull request adds the ability to assign names to additional threads in the source code, improving thread identification and debugging capabilities.
    • pull/59601
  • HTTP/2 Inspector Support: Support is added for tracking HTTP/2 network calls in the Node.js inspector, enabling developers to monitor HTTP/2 requests via Chrome DevTools Network tab during debugging.
    • pull/59611
  • Unmerged README Update: A pull request proposes updates to the README.md file, including contribution guide edits and commit message formatting instructions, but it was not merged.
    • pull/59614
  • Automated AI-Driven Payment System Blueprint: A comprehensive blueprint is presented for an AI-driven unlimited payment collection system integrating multiple AI agents and human oversight to manage Uber driver payments with real-time monitoring, automation, and compliance controls.
    • pull/59613

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
joyeecheung 47 12 8 33
jasnell 14 2 1 50
panva 41 8 2 5
theanarkh 10 7 0 14
haramj 19 3 0 7
Renegade334 7 3 2 10
legendecas 10 3 0 9
addaleax 1 0 0 20
RafaelGSS 15 4 0 2
aduh95 7 1 0 13

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