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.
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
- Caches downloaded builds in
$XDG_CACHE_HOME
(or~/AppData/Local
on Windows).
This package can be installed using npm, either globally or locally, by running:
npm install noderegression
More examples can be found in the test specifications.
To use this module as a library, see the API Documentation.
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.
This project is available under the terms of the MIT License. See the summary at TLDRLegal.