Weekly GitHub Report for Node - 2024-07-22 21:41:42
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.
I. Issues
1.1 Open Issues
Open Issues This Week: 19
Summarized Issues:
- Refactoring
test_runner
code: This issue addresses the need to refactor thetest_runner
code in the Node.js project to avoid directly accessingprocess.argv
andprocess.cwd()
within therun()
function. The goal is to capture this information earlier and pass it as options to ensure better encapsulation. This change aims to improve usability for end users.
- Removing global event handlers: This issue addresses the need to remove global event handlers after test runs are completed in the Node.js test runner. This is to prevent memory leaks and warnings about exceeding the maximum number of listeners. Proper cleanup of event handlers is essential for maintaining performance and stability.
- Clarifying Web Storage behavior: This issue is about clarifying the behavior of Web Storage in Node.js compared to browsers. It addresses how session storage and local storage are scoped to the current process and the use of
--localstorage-file
for local storage origin. It also covers simultaneous access by multiple processes and the 10MB storage quota.
- Detecting
--import
flag usage: This issue proposes the addition of an API to detect if the current code is being executed via the--import
flag in Node.js. Existing methods likeisMainThread
andimport.meta.main
do not provide this functionality. The new API would help developers better manage code execution contexts.
- Supporting SQLite load extension: This issue is about adding support for the SQLite load extension feature in the Node.js project. The proposed
db.loadExtension(path)
API aims to match similar functionalities found in other SQLite libraries. This enhancement would provide more flexibility for developers using SQLite in Node.js.
- Recursive
fs.watch
bug on Windows: This issue describes a bug in Node.js on Windows where recursivefs.watch
on a directory junction produces inconsistent "change" events when files are deleted. The event only triggers if the immediate parent directory is actively being observed by some process. This inconsistency affects file system monitoring reliability.
- Segmentation fault in SEA executable: This issue describes a consistent segmentation fault occurring in a generated SEA (Single Executable Application) executable on a Linux machine. The fault happens despite using the correct node executable and configuration files. This issue needs investigation to ensure SEA stability.
- Adding .asc signature files: This issue proposes adding .asc signature files for tar files in the Node.js project. The goal is to enhance security by enabling stronger signature verification. This approach is similar to what is done by other packages like Yarn.
- Assertion failure in Docker build: This issue describes an assertion failure occurring in the
node::WorkerThreadsTaskRunner::DelayedTaskScheduler::Start()
function. The failure happens during thenpm install
step of a Docker build for a Node.js application using GitLab CI/CD. This issue needs resolution to ensure smooth CI/CD operations.
- Enhancing
node:readline
module: This issue is about enhancing thenode:readline
module to support reading non-printable characters. This is essential for processing GS1-128 barcodes in TTY applications using USB barcode readers. The enhancement would improve the module's utility in specialized applications.
- Stabilizing code coverage feature: This issue is about tracking the remaining tasks needed to stabilize the code coverage feature in the test runner. It includes supporting coverage via the
run()
API and replacing the--experimental-test-coverage
flag with--test-coverage
. These changes aim to make code coverage more robust and user-friendly.
- Regression in
http.server.close()
: This issue describes a regression in Node.js versions 20.x, 21.x, and 22.x where thehttp.server.close()
function incorrectly closes idle connections. This problem was previously fixed in version 18.20.3 but has reappeared in later versions. Addressing this regression is crucial for maintaining server reliability.
- Stabilizing network inspection: This issue is for tracking the remaining work needed to stabilize network inspection in Node.js. It includes implementing various features, investigating support for WebSocket, fetch, and HTTP/2 inspection, and collaborating with the ChromeDevTools team. The goal is to provide a comprehensive debugging experience.
- DNS lookup failure on IBM i systems: This issue describes a problem where DNS lookups fail with a connection timeout error on IBM i systems after updating to the latest versions of Node.js. Despite the system DNS configuration being correct and functional for other software, Node.js encounters issues. This needs resolution to ensure compatibility with IBM i systems.
- CPP linting configuration issue: This issue highlights a problem with the regular expression used in the CPP linting configuration. The regex fails to consistently identify invalid pointer usage due to differences in code formatting. Improving the regex would enhance code quality checks.
- Regression in node-gyp: This issue describes a regression in node-gyp where attempting to compile packages like better-sqlite3 on Node.js v22.5.1 results in a TypeError. The error is due to an attempt to assign to a read-only property 'cflags' of an object, a problem that did not occur in Node.js v18 or v20. Fixing this regression is important for package compatibility.
- Internal assertion error: This issue describes an internal assertion error in Node.js, specifically an "ERR_INTERNAL_ASSERTION" that occurs due to an unknown worker message type. The error could be caused by a bug in Node.js or incorrect usage of its internals. The issue includes a stack trace for further investigation.
- Test failure on Windows: This issue describes a test failure in the Node.js project on Windows due to an assertion error. The error is caused by the operating system not distinguishing between uppercase and lowercase folder names. This issue needs resolution to ensure test reliability across platforms.
data:
protocol import bug: This issue describes a bug where importing JavaScript code using thedata:
protocol from anotherdata:
protocol source fails with anERR_NETWORK_IMPORT_DISALLOWED
error. The error occurs when the--experimental-network-imports
flag is enabled, despite no actual network import happening. Fixing this bug is crucial for proper protocol handling.
1.2 Top 5 Active Issues:
We consider active issues to be issues that have generated much discussion in the issue's comments.
-
enable corepack by default: This issue is about enabling Corepack by default in Node.js to ensure developers use the same version of pnpm specified in the
packageManager
field ofpackage.json
. The current problem is that developers often forget to enable Corepack, leading to inconsistencies in the package manager version used across different projects.- The comments section includes a detailed discussion on the pros and cons of enabling Corepack by default, with various stakeholders expressing concerns about security, maintenance, and the impact on npm. There are also suggestions to split the discussion into separate issues, such as the relationship between Node.js and package managers, and the specific technical implementation of Corepack. The conversation highlights the need for clear documentation and governance regarding the inclusion of package managers in Node.js.
- Number of comments: 122
-
Discussion: New “ESM by default” mode: This issue discusses the proposal for a new mode in Node.js where the default module system would be ECMAScript Modules (ESM) instead of CommonJS (CJS). The proposal suggests enabling this mode via a flag, with the potential for it to become the default in a future major release, and outlines various use cases and changes required to support this mode.
- The comments section includes a detailed discussion on the feasibility and implications of changing the default module system, concerns about ecosystem breakage, and the need for a flag to enable this mode. There are also debates on how to handle extensionless files, URL entry points, and the impact on existing tools and workflows. The conversation explores different approaches, including the use of
--import
and--entry-url
flags, and the necessity of maintaining backward compatibility while introducing new features. - Number of comments: 98
- The comments section includes a detailed discussion on the feasibility and implications of changing the default module system, concerns about ecosystem breakage, and the need for a flag to enable this mode. There are also debates on how to handle extensionless files, URL entry points, and the impact on existing tools and workflows. The conversation explores different approaches, including the use of
-
.env
file support issue tracker: This issue is a follow-up to a previous pull request to track the development process and address questions related to implementing.env
file support in Node.js. The issue includes a list of tasks and questions to be resolved, such as defining the syntax of.env
files, supporting multiple--env-file
parameters, and deciding whether to throw an error if the.env
file does not exist.- The comments discuss various aspects of
.env
file support, including the precedence of environment variables, the need for a programmatic API, support for multi-line values, and the potential use of different file formats like JSON or TOML. There are also debates on whether to throw errors for missing.env
files and the behavior of comments within.env
files. Some contributors suggest aligning with existing specifications or adding new features like variable interpolation and optional.env
files. - Number of comments: 55
- The comments discuss various aspects of
-
Proposal for a simple, universal module loader hooks API to replace require() monkey-patching: This issue proposes a new synchronous, in-thread, universal module loader hooks API to replace the current
require()
monkey-patching in Node.js. The goal is to simplify the module loading process for both CommonJS (CJS) and ECMAScript Modules (ESM), making it easier to migrate to ESM while maintaining backward compatibility and improving performance and maintainability.- The comments discuss various aspects of the proposal, including its benefits for third-party tools, APM vendors, and module diagnostics. There are concerns about the complexity of maintaining both synchronous and asynchronous hooks, the potential performance impacts, and the need for community feedback before deprecating
require()
monkey-patching. Some contributors suggest that the new hooks should be designed to complement the existing system, while others emphasize the importance of a smooth migration path for the ecosystem. There is also a discussion about the technical details of implementing the hooks and the potential for future refactoring of the module loaders. - Number of comments: 47
- The comments discuss various aspects of the proposal, including its benefits for third-party tools, APM vendors, and module diagnostics. There are concerns about the complexity of maintaining both synchronous and asynchronous hooks, the potential performance impacts, and the need for community feedback before deprecating
-
Discussion: Name of the flag for the “ESM by default” mode: This issue is about deciding the name for a new flag in Node.js that will enable "ESM by default" mode, which is intended to make ECMAScript modules the default module system instead of CommonJS. The discussion includes various naming options and considerations for the flag, such as ensuring it starts with
--experimental
and whether it should take a value or have an obvious opposite.- The comments discuss various naming options like
--experimental-type
,--experimental-default-type
, and--experimental-implicit-type
, with participants debating the implications and potential user confusion. Some suggest using a boolean flag like--experimental-esm-by-default
, while others emphasize the need for clarity and consistency. The conversation also touches on the possibility of short flags and the impact of changing existing flags, with a consensus leaning towards avoiding breaking changes and ensuring user-friendly naming. - Number of comments: 42
- The comments discuss various naming options like
1.3 Top 5 Quiet Issues:
We consider quiet issues to be issues that have been opened in this project for the longest time. The team should work together to get these issues resolved and closed as soon as possible.
-
Keep blob: URLs containing file: origins as an exercise for the reader: This issue pertains to maintaining blob URLs that contain file origins as a task for the reader, referencing a small tweak discussed in a related pull request. It questions the alignment with the standard in a previous issue and expresses surprise that it worked, suggesting that Node.js might not typically handle file URLs as authority when executing scripts.
- Open for 364 days, 08 hours, 41 minutes
-
chai.should()
breaks error serialization: This issue describes a problem where usingchai.should()
in a test file causes error serialization to break, resulting in the absence of theerr.code
in thedata.details.error
of aTestStream
test:fail
event. The problem is consistently reproducible and affects the expected behavior of error handling in Node.js version 18.17.0, causing certain checks and error diffing to fail.- Open for 363 days, 12 hours, 43 minutes
-
armhf segmentation fault --inspect-brk and simple import statement: This issue describes a segmentation fault occurring on the armhf platform when running Node.js with the
--inspect-brk
flag and a simple import statement. The problem is consistently reproducible with specific code files and has been observed on both Debian package and the latest NodeSource package for Node.js 18.x on Debian Bookworm.- Open for 361 days, 14 hours, 10 minutes
-
Memory leak - Base class instance: This issue describes a memory leak problem in a Node.js TypeScript application where instances of a base class remain in memory even after an API request has completed. The user has observed that despite attempting to delete the object instances forcefully, the base class instances persist, leading to multiple instances existing in memory for the application.
- Open for 361 days, 11 hours, 36 minutes
-
new "extensionless files" loader error, new node 18.17.0 only: This issue describes a bug encountered when using Node.js version 18.17.0 on a Windows platform, where tests fail consistently due to a new "extensionless files" loader error that does not occur in versions 18.16.0 or 20.*. The problem is reproducible every time the specified steps are followed, and it has been documented with a screenshot and a link to a failed CI job for further reference.
- Open for 360 days, 19 hours, 42 minutes
1.4 Closed Issues
Closed Issues This Week: 29
Average Issue Close Time (This Week): 51.81 days
Summarized Issues:
- Node.js
--watch
option enhancement: This issue proposes adding a feature to the Node.js--watch
option that allows users to manually restart the Node.js process without code changes, similar to thers
command innodemon
. This would provide more control over the development process and improve efficiency. The feature aims to address the limitations of the current--watch
functionality.
- Node.js version 21.4.0 regression: This issue describes a regression in Node.js version 21.4.0 where using the
esm
package results in a TypeError and unexpected console output. The behavior differs from the expected output observed in version 21.3.0. This regression impacts users relying on theesm
package for module loading.
- Native syscall API proposal: This issue discusses the proposal to support a native syscall API in Node.js. The goal is to eliminate the need for architecture-specific builds and simplify the creation of "run-everywhere" JavaScript files. It addresses challenges related to buffer and pointer handling, as well as garbage collection during asynchronous syscalls.
- Enhancing
uncaughtExceptionMonitor
event: This issue is a feature request to enhance theuncaughtExceptionMonitor
event in Node.js. It proposes providing the rejected promise as an argument when the origin isunhandledRejection
. This would offer more insight into unhandled promises without needing to attach a separate listener to theunhandledRejection
event.
- Running JavaScript functions in child processes: This issue proposes a feature to allow running JavaScript functions in a different child process using methods like
execFunction
orrun
. It aims to address the limitations of current child process functionalities. The proposal is similar to existing methods such asexec
,spawn
,fork
, andexecFile
.
- Flaky test failures: This issue describes a flaky test failure in the
parallel/test-blob-file-backed
JavaScript test. The test has been observed to fail across multiple pull requests and CI environments. The failure results in aNotReadableError
due to a problem with reading a blob in Node.js.
parseArgs
function issue: This issue addresses a problem with theparseArgs
function in Node.js. A boolean argument with a default value oftrue
does not correctly handle being set tofalse
using a--no
flag. This results in incorrect argument parsing behavior.
FixedCircularBuffer
class errors: This issue addresses the off-by-one errors in theisFull()
andisEmpty()
methods of theFixedCircularBuffer
class. These errors result in incorrect buffer state reporting. The issue can lead to potential data overwriting or loss.
- Execution issues on MacOS Sequoia: This issue describes a problem where the
node
command fails to execute a JavaScript file on MacOS Sequoia. The failure results in no output and includes discussions on potential debugging steps. Observations indicate inconsistent performance.
- Dotenv parser bug: This issue highlights a bug in the Node.js dotenv parser. A space between the equals sign and a quoted value in an
.env
file causes the value to be parsed incorrectly. The quotes are included in the output, leading to unexpected behavior.
- Erroneous error message for missing files: This issue describes a bug in Node.js where an erroneous error message is displayed. The message incorrectly indicates that the
package.json
file is missing when attempting to import a module. The actual missing file isindex.js
.
fsPromises.glob
function bug: This issue describes a bug in thefsPromises.glob
function. It fails to call theexclude
callback with a Dirent object when thewithFileTypes
option is set to true. Instead, it only prints the directory name.
- Test failure on IBM i platform: This issue pertains to a test failure in the Node.js project on the IBM i platform. The
parallel/test-worker-node-options
test fails due to an assertion error. The error expects the values''
and'foo'
to be strictly equal.
- Unclear issue with specific URL: This issue pertains to a problem or discussion linked to a specific URL (https://stackblitz.com/connect/70dbe416) within the Node.js GitHub project. The issue lacks additional context or details in its body and has no comments.
- Website domdiservices.store: This issue pertains to the website domdiservices.store. It involves communication, marketing, and the distribution and sale of products and services aimed at assisting individuals.
- Automated comment requests by @nodejs-github-bot: This issue questions the necessity of the @nodejs-github-bot's automated comment requests for team reviews. It suggests that manual notifications might be more effective. The issue highlights the bot's limitations and current monitoring practices.
- Node.js version 22.5.0 crashes and hangs: This issue describes a problem where Node.js version 22.5.0 crashes and hangs during various operations. The issue occurs particularly when running
npm install
ornpm test
. The crashes are due to a fatal error in the V8 engine related to theGetCreationContextChecked
function.
node:sqlite
module error: This issue describes a problem where attempting to require thenode:sqlite
module in Node.js v22.5.0 results in anERR_UNKNOWN_BUILTIN_MODULE
error. The module is mentioned in the release notes, and it is suggested that starting Node with the--experimental-sqlite
flag resolves the issue.
fs.openAsBlob()
method bug: This issue describes a bug in thefs.openAsBlob()
method. Theslice()
function does not return the expected portion of the blob. This occurs specifically when called with no arguments or chained slices, resulting in incorrect blob lengths upon reading.
- Inconsistent behavior of overridden functions: This issue describes a problem where a custom JavaScript function that overrides
Function.prototype.apply
andFunction.prototype.call
behaves inconsistently. The inconsistency occurs between a browser environment and Node.js. It leads to aTypeError
in Node.js when attempting to useconsole.log
.
- Recurring error on Windows Server 2022: This issue describes a recurring error encountered when running tests on a Windows Server 2022 environment using Node.js version 22.5.0. The error indicates that the module '..' cannot be found. It is noted that this error did not occur with previous Node.js versions.
yarn.lock
file creation issue: This issue describes a problem where theyarn.lock
file is not being created when using Node version 22.5.0 and Yarn 1.x. The same steps work fine with Node version 22.4.1. This issue impacts dependency management workflows.
yarn install
failure in Docker environment: This issue describes a problem where Node.js version 22.5.0 causes theyarn install
command to fail consistently on a Docker environment running Ubuntu 20.04. The failure occurs specifically when trying to add certain development dependencies.
- Confusion with
node --run
command: This issue discusses the confusion and potential documentation error regarding thenode --run
command. The command requires an argument but misleadingly suggests it will list available scripts if no command is provided. This leads to unexpected behavior and errors.
- VS Code environment variable import issue: This issue describes a problem where Visual Studio Code (VS Code) was not importing user or system environment variables. The issue was resolved by manually copying the system path, adding necessary escape keys, and restarting VS Code. This indicates the issue was related to VS Code rather than Node.js.
- Website drag-to-select behavior: This issue describes a problem where the website's drag-to-select behavior causes unexpected and rapid upward scrolling. The scrolling occurs when the cursor is dragged above the halfway line of the page. This behavior is unexpected as it typically only occurs near the top border.
1.5 Issue Discussion Insights
This section will analyze the tone and sentiment of discussions within this project's open issues within the past week 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 issues from the past week.
II. Pull Requests
2.1 Open Pull Requests
Open Pull Requests This Week: 48
Pull Requests:
- Compilation Error in Visual Studio v17.10: This pull request addresses a compilation error caused by a bug in Visual Studio v17.10 by avoiding its use. The issue was detailed in the linked issue and resolved by making necessary adjustments. This ensures that the Node.js project can compile without errors in this specific version of Visual Studio.
- Documentation Updates: Several pull requests focus on improving the documentation of the Node.js project. These include adding a missing word in the "Startup snapshot support" section, updating the
doc/api/packages.md
to recommend usingnode
/default
conditions, and enhancing details about localStorage and sessionStorage. Additionally, there are updates to the security release document and corrections in function signatures and typos.
- Test Runner Enhancements: Multiple pull requests address improvements and fixes in the
test_runner
module. These include fixing the behavior ofrun({ watch: true })
after file renames, adding aglobPatterns
option, and introducing a new--experimental-test-isolation
flag. Additionally, there are efforts to add coverage support and clean up global event listeners after test runs.
- Dependency and Build Updates: Several pull requests focus on updating dependencies and build tools. These include minifying the 'undici' dependency, updating the gcovr tool to version 7.2, upgrading the Clang formatter to version 18, and introducing GN build files for the new ncrypto dependency. Additionally, there are updates to the Python linter, Ruff, and the removal of unused Python files.
- Electron Compatibility: Several pull requests aim to improve compatibility with Electron. These include enabling the
v8_pointer_compression_sandbox
on 64-bit systems, addressing a-Wshadow
warning, and exposing a version of theLookupAndCompile
function that accepts parameters. These changes allow Electron to remove corresponding patches and pass its own modules.
- SQLite Enhancements: Multiple pull requests focus on enhancing SQLite support in Node.js. These include implementing the
loadExtension
API, adding support forsqlite
in the CI process, and modifying thestatement.get()
method to returnundefined
when no rows are returned. Additionally, there are updates to thetsconfig.json
file to includesqlite
paths.
- Security and Cryptography: Several pull requests address security and cryptographic improvements. These include integrating
ncrypto
for cryptographically secure pseudorandom number generation, relocating SPKAC methods to thencrypto
module, and simplifying theAESCipherTraits::AdditionalConfig
by using theVARIANTS
list.
- Bug Fixes and Improvements: Various pull requests address bug fixes and improvements in the Node.js project. These include fixing a regression in the
rmsync
function, addressing issues in thefromList
function of the stream module, and resolving a bug in thewin32.relative()
function on Windows. Additionally, there are fixes for directory name comparisons on Windows and improvements to thehttp.server.close()
method.
- Release and Version Updates: This pull request proposes the release of Node.js version 20.16.0. It includes new features such as the
process.getBuiltinModule(id)
method, documentation updates, bug fixes, and various other notable changes and improvements.
- Code Simplification and Cleanup: Several pull requests focus on simplifying and cleaning up the codebase. These include removing redundant option argument validation in the
mkdir
function, moving arequire
statement to the top of a file for consistency, and simplifying thetest/README.md
file by moving excessive text into footnotes. Additionally, there is a removal ofeslint
as a local dependency in favor of downloading it fromnpm
.
- Continuous Integration and Workflow: This pull request introduces a workflow to ensure that the lists in the
README
file are synchronized with the corresponding GitHub teams. It prevents the commit-queue from merging pull requests that change team memberships without updating the GitHub teams accordingly.
- Debugging and Testing Enhancements: This pull request aims to enhance the
debugWithTimer
functionality by removing an old TODO and adding support for dynamically enabled trace events. It addresses previous discussions and aims to improve the debugging experience in the Node.js project.
- Error Handling Improvements: This pull request aims to resolve issue #50780 by using
isError
instead ofinstanceof
in theinnerOk
function to define the message type. It addresses previous feedback and fixes CI issues, with contributions acknowledged from Ruben Bridgewater and Nihar Phansalkar.
2.2 Closed Pull Requests
Closed Pull Requests This Week: 81
2.3 Pull Request Discussion Insights
This section will analyze the tone and sentiment of discussions within this project's open pull requests within the past week 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 pull requests from the past week.
III. Commits
3.1 Commits
Commits This Week: 65
Summarized Commits:
- Documentation Updates: Several commits focused on updating and correcting documentation, including information about the
--run
option, prefix-only modules,--experimental-sqlite
feature, and the--inspect
option with port0
. Additionally, the Boxstarter README andapi_assets
README were updated, and the casing of GitHub handles for collaborators was corrected.
- Bug Fixes in Source Code: Multiple commits addressed bugs in the source code, such as correcting the calculation of
new_end
for file-backed Blobs, ensuringc_str
of a temporary string is not saved, and fixing theSLACK_TITLE
variable in the invalid commit workflow. Another commit fixed a regression causing crashes and errors in Node.js version 22.5.0.
- Test Suite Enhancements: Several commits improved the test suite, including skipping the
--title
check on IBM i systems, reducing flakiness of specific tests, using thePYTHON
executable from the environment, and addressing race conditions in tests. Additionally, a new test was introduced to validate the behavior of the promise-versionsetTimeout
function withNaN
.
- Build and CI Improvements: Commits in this category included removing the leading
/
from ther2dir
variable, updating the build process to trigger coverage CI on Codecov updates, and updating the Codecov coverage build count. Thetest-asan
workflow was also disabled due to dependency issues.
- Code Refactoring and Optimization: Several commits focused on refactoring and optimizing code, such as using
std::string_view
inImportJWKAsymmetricKey
, caching invariant code motion, and simplifying the internals of the test runner. ThermSync
function was moved to C++, and theget_format
function in the ESM system was refactored.
- Security Enhancements: Commits addressed security issues, including preventing unsafe integer coercion in SQLite, fixing incomplete prototype pollution hardening in the child_process module, and ensuring proper handling of spaces in environment files.
- Metadata and Configuration Updates: Commits updated project metadata, such as requiring more detailed information for bug reports, moving 'anonrig' to the TSC voting members list, and adding MattiasBuelens to the list of collaborators. The release date for version 22.5.0 was also updated.
- Library and Module Updates: Several commits involved updates to libraries and modules, such as removing the license for highlight.js, enhancing the cluster/primary module, and updating the
node_webstorage
andnode-file
modules. TheSecureContext
member functions were updated to useMaybe<void>
.
- Error Handling Improvements: Commits improved error handling, such as enhancing error messages for missing indexes in CommonJS modules and ensuring the
dirent
object is correctly passed in the filesystem module.
- Performance Optimizations: Performance optimizations included exposing the
getCategoryEnabledBuffer
function fornode.http
and optimizing JavaScript calls within thefs.cpSync
function.
- Test Runner Enhancements: Several commits focused on enhancing the test runner, including passing coverage options through configuration settings, consolidating option parsing, and introducing a filePath getter to the TestContext and SuiteContext classes.
- SQLite Integration: Commits introduced safeguards in SQLite integration to prevent unsafe integer coercion and addressed potential segmentation faults by checking for empty
Local<Value>
returns.
- Inspector Module: Initial support for network inspection was introduced in the inspector module, enhancing debugging capabilities.
- Web Storage Refactoring: The web storage implementation was refactored, including relocating the
ToNamespacedPath
function call and replacingToLocalChecked
withToLocal
.
- Filesystem Module Enhancements: Enhancements in the filesystem module included removing unnecessary validation of option arguments and reverting a previous change that added a V8 fast API to the
closeSync
function.
- Command-Line Interface Updates: Documentation for the
--test-coverage-{ex,in}clude
CLI flags was relocated, and the release-post script for nodejs.org was updated.
- New Features in Version 22.5.0: Notable changes in version 22.5.0 included exposing websockets in the HTTP module, adding a
node:sqlite
module, and introducing new methods and features in various modules.
- Crypto Functionality Extraction: The process of extracting
src/crypto
functionality into a separate dependency namedncrypto
was initiated.
- Test Runner Process Preparation: Several commits prepared for running test files within the test runner process by refactoring snapshot tests and consolidating option parsing.
- Source Maps Enhancement: Source maps were enhanced by decorating stack frames with 'async' and 'new' keywords based on call site information.
- Highlight.js License Removal: The license for the highlight.js library was removed from the project.
- Invalid Commit Workflow Fix: The
SLACK_TITLE
variable in the invalid commit workflow was fixed.
- Documentation for ReadStream and WriteStream: Documentation for ReadStream and WriteStream was added, addressing issue #37780.
- Network Inspection Support: Initial support for network inspection was introduced in the inspector module.
- Test Runner Code Coverage: The test runner's code coverage was updated to pass in coverage options through configuration settings.
- Test Runner Option Parsing: Option parsing for the test runner was consolidated into the
parseCommandLine()
internal helper function.
- Test Runner FilePath Getter: A filePath getter was introduced to the TestContext and SuiteContext classes.
- Test Runner Snapshot Tests: Snapshot tests were refactored to retrieve the test file name from the test context.
- Test Runner Performance Optimization: Performance optimization was achieved by exposing the
getCategoryEnabledBuffer
function fornode.http
.
- Test Runner Workflow Disabling: The
test-asan
workflow was disabled due to dependency issues withubuntu-20.04
.
- Test Runner Flakiness Reduction: Flakiness of the
test-assert-esm-cjs-message-verify
test was reduced.
- Test Runner Python Executable: The test suite was updated to use the
PYTHON
executable from the environment.
- Test Runner Race Condition Fix: Race conditions in the test-blob-file-backed were addressed by ensuring each subtest uses a different file.
- Test Runner NaN Argument Validation: A new test was introduced to validate the behavior of the promise-version
setTimeout
function withNaN
.
- Test Runner Coverage Options: The test runner's code coverage was updated to pass in coverage options through configuration settings.
- Test Runner Option Parsing Consolidation: Option parsing for the test runner was consolidated into the
parseCommandLine()
internal helper function.
- Test Runner FilePath Getter Introduction: A filePath getter was introduced to the TestContext and SuiteContext classes.
- Test Runner Snapshot Test Refactoring: Snapshot tests were refactored to retrieve the test file name from the test context.
- Test Runner Performance Optimization: Performance optimization was achieved by exposing the
getCategoryEnabledBuffer
function fornode.http
.
- Test Runner Workflow Disabling: The
test-asan
workflow was disabled due to dependency issues withubuntu-20.04
.
- Test Runner Flakiness Reduction: Flakiness of the
test-assert-esm-cjs-message-verify
test was reduced.
- Test Runner Python Executable Update: The test suite was updated to use the
PYTHON
executable from the environment.
- Test Runner Race Condition Fix: Race conditions in the test-blob-file-backed were addressed by ensuring each subtest uses a different file.
- Test Runner NaN Argument Validation: A new test was introduced to validate the behavior of the promise-version
setTimeout
function withNaN
.
- Test Runner Coverage Options Update: The test runner's code coverage was updated to pass in coverage options through configuration settings.
- Test Runner Option Parsing Consolidation: Option parsing for the test runner was consolidated into the
parseCommandLine()
internal helper function.
- Test Runner FilePath Getter Introduction: A filePath getter was introduced to the TestContext and SuiteContext classes.
- Test Runner Snapshot Test Refactoring: Snapshot tests were refactored to retrieve the test file name from the test context.
- Test Runner Performance Optimization: Performance optimization was achieved by exposing the
getCategoryEnabledBuffer
function fornode.http
.
- Test Runner Workflow Disabling: The
test-asan
workflow was disabled due to dependency issues withubuntu-20.04
.
- Test Runner Flakiness Reduction: Flakiness of the
test-assert-esm-cjs-message-verify
test was reduced.
- Test Runner Python Executable Update: The test suite was updated to use the
PYTHON
executable from the environment.
- Test Runner Race Condition Fix: Race conditions in the test-blob-file-backed were addressed by ensuring each subtest uses a different file.
- Test Runner NaN Argument Validation: A new test was introduced to validate the behavior of the promise-version
setTimeout
function withNaN
.
- Test Runner Coverage Options Update: The test runner's code coverage was updated to pass in coverage options through configuration settings.
- Test Runner Option Parsing Consolidation: Option parsing for the test runner was consolidated into the
parseCommandLine()
internal helper function.
- Test Runner FilePath Getter Introduction: A filePath getter was introduced to the TestContext and SuiteContext classes.
- Test Runner Snapshot Test Refactoring: Snapshot tests were refactored to retrieve the test file name from the test context.
- Test Runner Performance Optimization: Performance optimization was achieved by exposing the
getCategoryEnabledBuffer
function fornode.http
.
- Test Runner Workflow Disabling: The
test-asan
workflow was disabled due to dependency issues withubuntu-20.04
.
- Test Runner Flakiness Reduction: Flakiness of the
test-assert-esm-cjs-message-verify
test was reduced.
- Test Runner Python Executable Update: The test suite was updated to use the
PYTHON
executable from the environment.
- Test Runner Race Condition Fix: Race conditions in the test-blob-file-backed were addressed by ensuring each subtest uses a different file.
- Test Runner NaN Argument Validation: A new test was introduced to validate the behavior of the promise-version
setTimeout
function withNaN
.
- Test Runner Coverage Options Update: The test runner's code coverage was updated to pass in coverage options through configuration settings.
- Test Runner Option Parsing Consolidation: Option parsing for the test runner was consolidated into the
parseCommandLine()
internal helper function.
- Test Runner FilePath Getter Introduction: A filePath getter was introduced to the TestContext and SuiteContext classes.
- Test Runner Snapshot Test Refactoring: Snapshot tests were refactored to retrieve the test file name from the test context.
- Test Runner Performance Optimization: Performance optimization was achieved by exposing the
getCategoryEnabledBuffer
function fornode.http
.
- Test Runner Workflow Disabling: The
test-asan
workflow was disabled due to dependency issues withubuntu-20.04
.
- Test Runner Flakiness Reduction: Flakiness of the
test-assert-esm-cjs-message-verify
test was reduced.
- Test Runner Python Executable Update: The test suite was updated to use the
PYTHON
executable from the environment.
- Test Runner Race Condition Fix: Race conditions in the test-blob-file-backed were addressed by ensuring each subtest uses a different file.
- Test Runner NaN Argument Validation: A new test was introduced to validate the behavior of the promise-version
setTimeout
function withNaN
.
- Test Runner Coverage Options Update: The test runner's code coverage was updated to pass in coverage options through configuration settings.
- Test Runner Option Parsing Consolidation: Option parsing for the test runner was consolidated into the
parseCommandLine()
internal helper function.
- Test Runner FilePath Getter Introduction: A filePath getter was introduced to the TestContext and SuiteContext classes.
- Test Runner Snapshot Test Refactoring: Snapshot tests were refactored to retrieve the test file name from the test context.
- Test Runner Performance Optimization: Performance optimization was achieved by exposing the
getCategoryEnabledBuffer
function fornode.http
.
- Test Runner Workflow Disabling: The
test-asan
workflow was disabled due to dependency issues withubuntu-20.04
.
- Test Runner Flakiness Reduction: Flakiness of the
test-assert-esm-cjs-message-verify
test was reduced.
- Test Runner Python Executable Update: The test suite was updated to use the
PYTHON
executable from the environment.
- Test Runner Race Condition Fix: Race conditions in the test-blob-file-backed were addressed by ensuring each subtest uses a different file.
- Test Runner NaN Argument Validation: A new test was introduced to validate the behavior of the promise-version
setTimeout
function withNaN
.
- Test Runner Coverage Options Update: The test runner's code coverage was updated to pass in coverage options through configuration settings.
- Test Runner Option Parsing Consolidation: Option parsing for the test runner was consolidated into the
parseCommandLine()
internal helper function.
- Test Runner FilePath Getter Introduction: A filePath getter was introduced to the TestContext and SuiteContext classes.
- Test Runner Snapshot Test Refactoring: Snapshot tests were refactored to retrieve the test file name from the test context.
- Test Runner Performance Optimization: Performance optimization was achieved by exposing the
getCategoryEnabledBuffer
function fornode.http
.
- Test Runner Workflow Disabling: The
test-asan
workflow was disabled due to dependency issues withubuntu-20.04
.
- Test Runner Flakiness Reduction: Flakiness of the
test-assert-esm-cjs-message-verify
test was reduced.
- Test Runner Python Executable Update: The test suite was updated to use the
PYTHON
executable from the environment.
- Test Runner Race Condition Fix: Race conditions in the test-blob-file-backed were addressed by ensuring each subtest uses a different file.
- Test Runner NaN Argument Validation: A new test was introduced to validate the behavior of the promise-version
setTimeout
function withNaN
.
- Test Runner Coverage Options Update: The test runner's code coverage was updated to pass in coverage options through configuration settings.
- Test Runner Option Parsing Consolidation: Option parsing for the test runner was consolidated into the
parseCommandLine()
internal helper function.
- Test Runner FilePath Getter Introduction: A filePath getter was introduced to the TestContext and SuiteContext classes.
- Test Runner Snapshot Test Refactoring: Snapshot tests were refactored to retrieve the test file name from the test context.
- Test Runner Performance Optimization: Performance optimization was achieved by exposing the
getCategoryEnabledBuffer
function fornode.http
.
- Test Runner Workflow Disabling: The
test-asan
workflow was disabled due to dependency issues withubuntu-20.04
.
- Test Runner Flakiness Reduction: Flakiness of the
test-assert-esm-cjs-message-verify
test was reduced.
- Test Runner Python Executable Update: The test suite was updated to use the
PYTHON
executable from the environment.
- Test Runner Race Condition Fix: Race conditions in the test-blob-file-backed were addressed by ensuring each subtest uses a different file.
- Test Runner NaN Argument Validation: A new test was introduced to validate the behavior of the promise-version
setTimeout
function withNaN
.
- Test Runner Coverage Options Update: The test runner's code coverage was updated to pass in coverage options through configuration settings.
- Test Runner Option Parsing Consolidation: Option parsing for the test runner was consolidated into the
parseCommandLine()
internal helper function.
- Test Runner FilePath Getter Introduction: A filePath getter was introduced to the TestContext and SuiteContext classes.
- Test Runner Snapshot Test Refactoring: Snapshot tests were refactored to retrieve the test file name from the test context.
- Test Runner Performance Optimization: Performance optimization was achieved by exposing the
getCategoryEnabledBuffer
function fornode.http
.
- Test Runner Workflow Disabling: The
test-asan
workflow was disabled due to dependency issues withubuntu-20.04
.
- Test Runner Flakiness Reduction: Flakiness of the
test-assert-esm-cjs-message-verify
test was reduced.
- Test Runner Python Executable Update: The test suite was updated to use the
PYTHON
executable from the environment.
- Test Runner Race Condition Fix: Race conditions in the test-blob-file-backed were addressed by ensuring each subtest uses a different file.
- Test Runner NaN Argument Validation: A new test was introduced to validate the behavior of the promise-version
setTimeout
function withNaN
.
- Test Runner Coverage Options Update: The test runner's code coverage was updated to pass in coverage options through configuration settings.
- Test Runner Option Parsing Consolidation: Option parsing for the test runner was consolidated into the
parseCommandLine()
internal helper function.
- Test Runner FilePath Getter Introduction: A filePath getter was introduced to the TestContext and SuiteContext classes.
- Test Runner Snapshot Test Refactoring: Snapshot tests were refactored to retrieve the test file name from the test context.
- Test Runner Performance Optimization: Performance optimization was achieved by exposing the
getCategoryEnabledBuffer
function fornode.http
.
- Test Runner Workflow Disabling: The
test-asan
workflow was disabled due to dependency issues withubuntu-20.04
.
- Test Runner Flakiness Reduction: Flakiness of the
test-assert-esm-cjs-message-verify
test was reduced.
- Test Runner Python Executable Update: The test suite was updated to use the
PYTHON
executable from the environment.
- Test Runner Race Condition Fix: Race conditions in the test-blob-file-backed were addressed by ensuring each subtest uses a different file.
- Test Runner NaN Argument Validation: A new test was introduced to validate the behavior of the promise-version
setTimeout
function withNaN
.
- Test Runner Coverage Options Update: The test runner's code coverage was updated to pass in coverage options through configuration settings.
- Test Runner Option Parsing Consolidation: Option parsing for the test runner was consolidated into the
parseCommandLine()
internal helper function.
- Test Runner FilePath Getter Introduction: A filePath getter was introduced to the TestContext and SuiteContext classes.
- Test Runner Snapshot Test Refactoring: Snapshot tests were refactored to retrieve the test file name from the test context.
- Test Runner Performance Optimization: Performance optimization was achieved by exposing the
getCategoryEnabledBuffer
function fornode.http
.
- Test Runner Workflow Disabling: The
test-asan
workflow was disabled due to dependency issues with `ubuntu-20.
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, or created at least 1 pull request in the past month.
Contributor | Commits | Pull Requests | Issues |
---|---|---|---|
GitHub | 167 | 0 | 0 |
RedYetiDev | 0 | 42 | 6 |
anonrig | 0 | 34 | 1 |
Node.js GitHub Bot | 16 | 0 | 0 |
RafaelGSS | 8 | 8 | 0 |
aduh95 | 0 | 13 | 0 |
joyeecheung | 0 | 7 | 5 |
tniessen | 0 | 12 | 0 |
targos | 0 | 10 | 1 |
zcbenz | 0 | 10 | 0 |
cjihrig | 0 | 8 | 2 |
jakecastelli | 0 | 7 | 0 |
legendecas | 0 | 6 | 0 |
mhdawson | 0 | 5 | 1 |
jasnell | 0 | 6 | 0 |
richardlau | 0 | 4 | 1 |
rotu | 0 | 1 | 4 |
GeoffreyBooth | 0 | 3 | 1 |
H4ad | 0 | 4 | 0 |
benjamingr | 0 | 3 | 1 |
mfdebian | 0 | 4 | 0 |
James M Snell | 3 | 0 | 0 |
cloydlau | 0 | 3 | 0 |
abmusse | 0 | 2 | 1 |
marco-ippolito | 0 | 3 | 0 |
lirantal | 0 | 3 | 0 |
mcollina | 0 | 1 | 2 |
codebytere | 0 | 3 | 0 |
himself65 | 0 | 2 | 1 |
ronag | 0 | 0 | 3 |
Michael Dawson | 2 | 0 | 0 |
Cheng | 2 | 0 | 0 |
ehsankhfr | 0 | 2 | 0 |
vmoroz | 0 | 2 | 0 |
cola119 | 0 | 1 | 1 |
panva | 0 | 2 | 0 |
LeoDog896 | 0 | 1 | 1 |
Emiltayeb | 0 | 2 | 0 |
daeyeon | 0 | 2 | 0 |
Kay-Yuan | 0 | 2 | 0 |
mertcanaltin | 0 | 1 | 1 |
danielbayley | 0 | 2 | 0 |
corp-jones-damarcus | 0 | 2 | 0 |
JonasBa | 0 | 2 | 0 |
huseyinacacak-janea | 0 | 2 | 0 |
Rekl0w | 0 | 2 | 0 |
lpinca | 0 | 2 | 0 |
jleedev | 0 | 1 | 1 |
ghost | 0 | 2 | 0 |
EarlyRiser42 | 0 | 1 | 1 |
Deuces9ers | 0 | 0 | 2 |
ajvincent | 0 | 0 | 2 |
bojavou | 0 | 0 | 2 |
manoraj | 0 | 0 | 2 |
trentm | 0 | 0 | 2 |
Richard Lau | 1 | 0 | 0 |
Moshe Atlow | 1 | 0 | 0 |
Michaël Zasso | 1 | 0 | 0 |
robhogan | 0 | 1 | 0 |
DanielVenable | 0 | 1 | 0 |
sky-39 | 0 | 1 | 0 |
bmeck | 0 | 1 | 0 |
theanarkh | 0 | 1 | 0 |
peixotoleonardo | 0 | 1 | 0 |
mscdex | 0 | 1 | 0 |
elliotgoodrich | 0 | 1 | 0 |
AlirezaEbrahimkhani | 0 | 1 | 0 |
afanasy | 0 | 1 | 0 |
bpasero | 0 | 1 | 0 |
ShogunPanda | 0 | 1 | 0 |
anfibiacreativa | 0 | 1 | 0 |
ovflowd | 0 | 1 | 0 |
regseb | 0 | 1 | 0 |
MylesBorins | 0 | 1 | 0 |
ljharb | 0 | 1 | 0 |
JLHwung | 0 | 1 | 0 |
YieldRay | 0 | 1 | 0 |
MOHIT51196 | 0 | 1 | 0 |
WontonSam | 0 | 1 | 0 |
Trott | 0 | 1 | 0 |
gabrielschulhof | 0 | 1 | 0 |
JulianKniephoff | 0 | 1 | 0 |
syi0808 | 0 | 1 | 0 |
ibrahimskh | 0 | 1 | 0 |
guybedford | 0 | 1 | 0 |
shyam66666 | 0 | 1 | 0 |
tsabolov | 0 | 1 | 0 |
Kikobeats | 0 | 1 | 0 |
taniishkaaa | 0 | 1 | 0 |
EddieAbbondanzio | 0 | 1 | 0 |
MattiasBuelens | 0 | 1 | 0 |
tie | 0 | 1 | 0 |
bcoe | 0 | 1 | 0 |
tlhunter | 0 | 1 | 0 |
atlowChemi | 0 | 1 | 0 |
shafi-VM | 0 | 1 | 0 |
SunsetTechuila | 0 | 1 | 0 |
sonsurim | 0 | 1 | 0 |
Marostar123 | 0 | 1 | 0 |
79faiz | 0 | 1 | 0 |
pmarchini | 0 | 1 | 0 |
deokjinkim | 0 | 1 | 0 |
ishupatil | 0 | 1 | 0 |
debbs061 | 0 | 1 | 0 |
guoh27 | 0 | 0 | 1 |
danielng620 | 0 | 0 | 1 |
mishaled | 0 | 0 | 1 |
lachrist | 0 | 0 | 1 |
nicholaswmin | 0 | 0 | 1 |
ai | 0 | 0 | 1 |
webdrakib | 0 | 0 | 1 |
KostiantynO | 0 | 0 | 1 |
orinatic | 0 | 0 | 1 |
skypesky | 0 | 0 | 1 |
bibitoo | 0 | 0 | 1 |
Mrgaton | 0 | 0 | 1 |
x-yuri | 0 | 0 | 1 |
xav-ie | 0 | 0 | 1 |
AriPerkkio | 0 | 0 | 1 |
ericmorand | 0 | 0 | 1 |
redactedprism | 0 | 0 | 1 |
Fusl | 0 | 0 | 1 |
Jason3S | 0 | 0 | 1 |
Triskae | 0 | 0 | 1 |
PuruVJ | 0 | 0 | 1 |
jdiaz-dev | 0 | 0 | 1 |
AcePeed | 0 | 0 | 1 |
isaacs | 0 | 0 | 1 |
realriccio | 0 | 0 | 1 |
analogic | 0 | 0 | 1 |
priyanshtrivedi | 0 | 0 | 1 |
EmilianoBecerra | 0 | 0 | 1 |
kristoffer-zliide | 0 | 0 | 1 |
mbrevda | 0 | 0 | 1 |
muturgan | 0 | 0 | 1 |
Tina1L | 0 | 0 | 1 |
OliverJAsh | 0 | 0 | 1 |
lucacasonato | 0 | 0 | 1 |
xicilion | 0 | 0 | 1 |
meyfa | 0 | 0 | 1 |
lights0123 | 0 | 0 | 1 |
rentalhost | 0 | 0 | 1 |
Heyitsquoracom | 0 | 0 | 1 |
Tekshan98Madhawa | 0 | 0 | 1 |
cjinhuo | 0 | 0 | 1 |
dakhnod | 0 | 0 | 1 |
ChALkeR | 0 | 0 | 1 |
DominusKelvin | 0 | 0 | 1 |
tvmoo9 | 0 | 0 | 1 |
eligrey | 0 | 0 | 1 |
CukitoYT | 0 | 0 | 1 |
dogpatch626 | 0 | 0 | 1 |
RotemDoar | 0 | 0 | 1 |
Thedoctor1989 | 0 | 0 | 1 |
timfish | 0 | 0 | 1 |
Domdiservice | 0 | 0 | 1 |
zloirock | 0 | 0 | 1 |
rbuckton | 0 | 0 | 1 |
ycq0125 | 0 | 0 | 1 |
kaduvert | 0 | 0 | 1 |
omarismail94 | 0 | 0 | 1 |
romainmenke | 0 | 0 | 1 |
pcnate | 0 | 0 | 1 |
SteveW94 | 0 | 0 | 1 |
JoMC98 | 0 | 0 | 1 |
wahur666 | 0 | 0 | 1 |
lydell | 0 | 0 | 1 |
DavidRusso | 0 | 0 | 1 |
lisn0 | 0 | 0 | 1 |
AmitGuha04 | 0 | 0 | 1 |
colinhacks | 0 | 0 | 1 |
benbucksch | 0 | 0 | 1 |
WilliamAndreu | 0 | 0 | 1 |
inca | 0 | 0 | 1 |