Weekly GitHub Report for Node: March 03, 2025 - March 10, 2025
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:
The current version of this repository is v23.8.0
1.2 Version Information:
Released on February 13, 2025, this Node.js update introduces several key features, including support for using system CA certificates on macOS and Windows, the implementation of the URL Pattern API, and the addition of the zstd compression algorithm. Notable enhancements also include naming threads for improved debugging and updated timezone data to 2025a, reflecting changes such as Paraguay's adoption of permanent -03 time starting in spring 2024.
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.
As of our latest update, there are no active issues with ongoing comments this week.
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.
- Build error with clang on Mac OS X 10.15.7 (wasm-engine.cc:157:19: error: no viable overloaded '='): This issue involves a build error encountered when attempting to install Node.js version 22.1 on Mac OS X 10.15.7 using the Clang compiler. The error arises from a type mismatch in the
wasm-engine.cc
file, specifically at line 157, where there is no viable overloaded assignment operator for converting astd::unique_ptr<char[]>
to astd::shared_ptr<const char[]>
. - Prevent [ERR_STREAM_PREMATURE_CLOSE] error log when intentionally closing a stream before end: This issue involves a problem where a
[ERR_STREAM_PREMATURE_CLOSE]
error log appears in the console when a stream is intentionally closed before all data is consumed, despite the program terminating successfully with an exit code of 0. The user suspects that the error log might originate from another stream writing to the one being closed and seeks a way to prevent this error log from appearing, as it does not seem to indicate an actual error in the program's execution. - http.request regression > v16 regression, 400 Bad Request is thrown when GET http.request has a payload: This issue describes a regression in the Node.js HTTP module where a 400 Bad Request error is thrown when a GET request is made with a payload, specifically affecting versions above v16. The problem occurs when using v20.13.0 on the client side and v16.16.0 on the server side, and it suggests that the error might be due to a combination of the server-side Node.js https.Server and the client-side https.request function, with a recommendation to add a warning for GET requests with a body to aid in debugging.
- Nodejs process crashed when using
console
to print some object. TypeError: Cannot read properties of undefined (reading 'reloadNavigation'): This issue describes a problem where a Node.js process crashes when attempting to use theconsole
to print certain objects, specifically when trying to logc.req
within a Hono application, resulting in aTypeError
related to reading properties of undefined. The error appears to be linked to either a bug in Node.js or incorrect usage of its internals, as indicated by the stack trace provided in the issue report. - Verify that
npm
is runnable in tests: This issue is about ensuring thatnpm
is properly packaged and functional in releases by incorporating checks into the testing process. It highlights past problems, as seen in issues #52682 and #52884, wherenpm
was not correctly included, suggesting that tests should verifynpm
's operability to prevent similar occurrences.
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: 0
Summarized Issues:
As of our latest update, there are no open issues for the project this week.
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: 8
Summarized Issues:
- Node.js Method Handling Issues: The
Array.fromAsync
method in Node.js version 22.13.0 does not handle proxies correctly when a customthis
argument is provided, leading to a sparse array instead of aTypeError
. This issue might be related to the V8 engine rather than Node.js itself.
- File I/O Errors on Linux Filesystems: Using the
O_DIRECT
flag for file I/O operations in Node.js on certain Linux filesystems likexfs
andoverlayfs
results in anEINVAL: invalid argument
error due to buffer alignment requirements. These operations work correctly in Go and on other filesystems such astmpfs
and macOS.
- Node.js Server Errors on Darwin: An "ERR_INTERNAL_ASSERTION" error occurs when running a Node.js server built with Vite on a Darwin platform, related to an unknown worker message type. The issue includes a detailed stack trace highlighting the problem within the internal worker and zone.js modules.
- TLS Proxy Support on Windows: There is a need to support intermediate CA certificates on Windows for third-party SaaS TLS proxies, similar to macOS support. The proposed solution involves adding the root CA certificate to Trusted Root Certification Authorities and the intermediate CA certificate to Intermediate Certification Authorities in the Certificates - Current User store.
- Mocha Test Errors with CommonJS: Mocha tests encounter an "ERR_REQUIRE_CYCLE_MODULE" error on the latest CommonJS version, linked to a backport affecting all tests. This issue is discussed in detail in an upstream issue on Mocha's GitHub repository.
- Type Stripping in TypeScript Files: Challenges exist in enabling type stripping in
node_modules
for TypeScript files, especially in monorepo setups. The current restriction against TypeScript-only packages innode_modules
leads to inefficiencies, and a proposed opt-in flag or environment variable could allow type stripping in specific contexts.
- NAPI Module Import Crashes: Importing a NAPI module, specifically the
keytar
module, causes a hard crash in Node.js due to compatibility problems between different Node.js versions. This issue is linked tonapi-build-utils
andprebuild-install
tools, and a lack of documentation for NAPI version 10.
- Performance Degradation in
deepStrictEqual
: ThedeepStrictEqual
function in the Node.jsassert
module has significant performance degradation in versions 22.12.0 and later. Comparing large objects has become increasingly slow and memory-intensive, with execution times and memory usage escalating dramatically compared to version 22.11.0.
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.
- Node hard crash when importing napi module
- Toxicity Score: 0.55 (Defensive responses, dismissive tone, unresolved frustration.)
- This GitHub conversation involves multiple users discussing a technical issue with varying degrees of frustration and defensiveness. User1 points out a potential cause of the problem, linking it to external issues, while User2 clarifies that the problem lies with a specific tool rather than the core technology. User3 expresses dissatisfaction with the impact of the issue on their application, emphasizing the severity of the problem. User4 dismisses further discussion, attributing the problem to user error. The tone shifts from informative to defensive and dismissive, with tension arising from differing perspectives on responsibility and the severity of the issue.
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: 0
As of our latest update, there are no open pull requests for the project this week.
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: 18
Key Closed Pull Requests
1. crypto: add support for intermediate certs in --use-system-ca: This pull request adds support for intermediate certificates in the --use-system-ca
option of the crypto module, includes tests to validate the handling of intermediate certificates across macOS, Windows, and Linux, and addresses a related issue in the Node.js project.
- URL: pull/57164
- Merged: 2025-03-05T15:27:26Z
2. path: (dirname) move early exits to the top: This pull request involves reorganizing the code in the 'dirname' path function by moving early exit conditions to the top and adding an additional early exit for when the length is equal to two, as well as including a linting commit and a commit for adding tests and tidying up the code.
- URL: pull/57058
- Merged: No
3. tls: implement tls.getCACertificates(): This pull request introduces a new API, tls.getCACertificates()
, to Node.js, which allows users to query different types of Certificate Authority (CA) certificates, including default, system, bundled, and extra certificates, while also addressing inaccuracies in the existing tls.rootCertificates
documentation and ensuring that the new API does not alter the established behavior of tls.rootCertificates
.
- URL: pull/57107
- Merged: 2025-03-06T17:16:27Z
Other Closed Pull Requests
- Runtime Deprecation for Cipheriv and Decipheriv: This topic involves introducing a runtime deprecation for calling
Cipheriv(...)
andDecipheriv(...)
without thenew
keyword in the Node.js library. The aim is to encourage the use ofcreateCipheriv(...)
andcreateDecipheriv(...)
methods, ensuring safer and more consistent usage patterns.
- Documentation Updates: Several pull requests focus on updating documentation to improve clarity and usability. One clarifies that
path.isAbsolute()
does not resolve paths, while another provides detailed instructions for executing thetools/inspector_tools/roll.py
script.
- Codebase Optimization and Performance Improvements: These pull requests aim to optimize the Node.js codebase and improve performance. They include simplifying the
compareTimersLists
function, utilizing a pre-cachedemit
v8::String, and implementingMaybe<void>
inProcessEmitWarningSync
.
- Error Handling Enhancements: Two pull requests focus on enhancing error handling mechanisms within the source code. They aim to ensure more accurate propagation of errors, although neither was ultimately merged into the main project.
- Removal of Obsolete Crypto Exports: This pull request aims to remove obsolete
Cipher
andDecipher
exports from the Node.js crypto module. It addresses documentation inaccuracies and discusses the potential semver-major impact on ESM imports.
- Test Suite Enhancements: Enhancements to the test suite include incorporating more instances of
common.mustNotCall
in thenet
andtls
modules. This change improves test accuracy and reliability by replacing empty callbacks.
- Compression and Compilation Updates: Updates include changes to the compression web-platform tests and addressing a compilation error in the
node_config_file.h
within the GN build system. These updates ensure the tests and builds are up-to-date and error-free.
- V8 Module Enhancements: A new method,
v8.getCppHeapStatistics()
, is introduced to the v8 module. This method allows the exposure ofCppHeap
data, addressing issue #56533.
- Handling Cached Linked Asynchronous Module Jobs: This pull request addresses issues with handling cached linked asynchronous module jobs in Node.js's ECMAScript module system. It ensures proper management of module jobs in the load cache, preventing unnecessary re-evaluation and improving error handling.
- Removal of Redundant Qualifiers: This pull request involves the removal of redundant qualifiers in the src/quic directory of the Node.js project. The change was successfully merged, streamlining the codebase.
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 | 55 | 5 | 0 | 29 |
aduh95 | 33 | 1 | 2 | 40 |
jasnell | 21 | 5 | 2 | 43 |
targos | 44 | 1 | 1 | 18 |
gurgunday | 24 | 8 | 0 | 20 |
anonrig | 28 | 3 | 0 | 13 |
marco-ippolito | 13 | 3 | 0 | 16 |
Ankush1oo8 | 18 | 1 | 0 | 3 |
ljharb | 0 | 0 | 0 | 22 |
dario-piotrowicz | 15 | 0 | 1 | 4 |