Skip to content

kevinoid/noderegression

Repository files navigation

Noderegression

Build Status Coverage Dependency Status Supported Node Version Version on NPM

An automated tool for regression range-finding in the Node.js runtime using nightly builds. A Node.js equivalent of mozregression.

Bisecting regressions in the Node.js runtime using git bisect can be quite slow on systems where building Node.js takes a long time. This tool aims to significantly reduce the time by bisecting using pre-compiled nightly builds. Once the first nightly build to exhibit a regression is located, the specific commit may be located by inspection or by passing the log to git bisect replay to continue bisection on the commits between the daily builds.

Introductory Examples

Suppose the introduction of queueMicrotask was a mistake. To bisect, we can invoke node with with code to evaluate using the -e option. If queueMicrotask is a function, the build is bad (exit code 1), if not it is good (exit code 0).

nodebisect -- -e 'process.exitCode = typeof queueMicrotask === "function" ? 1 : 0'

More commonly the regression test is present in a script (e.g. regtest.js):

nodebisect regtest.js

Features

  • Caches downloaded builds in $XDG_CACHE_HOME (or ~/AppData/Local on Windows).

Installation

This package can be installed using npm, either globally or locally, by running:

npm install noderegression

Recipes

More examples can be found in the test specifications.

API Docs

To use this module as a library, see the API Documentation.

Contributing

Contributions are appreciated. Contributors agree to abide by the Contributor Covenant Code of Conduct. If this is your first time contributing to a Free and Open Source Software project, consider reading How to Contribute to Open Source in the Open Source Guides.

If the desired change is large, complex, backwards-incompatible, can have significantly differing implementations, or may not be in scope for this project, opening an issue before writing the code can avoid frustration and save a lot of time and effort.

License

This project is available under the terms of the MIT License. See the summary at TLDRLegal.

About

An automated tool for regression range-finding in the Node.js runtime using nightly builds. A Node.js equivalent of mozregression.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published