@typescript-tools/packages-to-rebuild-on-changes-cli v2.0.1
packages-to-rebuild-on-changes-cli
Enumerate packages reachable from graph traversal given starting packages
Install
npm install --save-dev @typescript-tools/packages-to-rebuild-on-changes-cliUse
Usage:
packages-to-rebuild-on-changes [--root <root>] [--path] [<package>]...
Options:
packages Package names or paths to rebuild when listed packages change (also reads from stdin)
--root=<root> Root of lerna mono-repository
--path Print the relative path to each package from rootThis packages offers a CLI to invoke packages-to-rebuild-on-changes, and calculates which packages in a monorepo need to be built and tested given a changed set of packages.
The changed set of packages can be specified as arguments or from
stdin, as paths or by (scoped) package name.
The set of packages to rebuild is calculated as follows:
given set_of_changed_packages,
let downstream = internal_dependers(set_of_changed_packages)
let dependencies = internal_dependencies(downstream)
let packags_to_rebuild = set_of_changed_packages ∪ downstream ∪ dependencieswhere ∪ is the union of two sets.
The set of downstream packages (internal dependers) is included to ensure no changed packages has violated a contract that another package is reliant upon.
The set of dependencies is required in order to build.
Note that the dependencies set need only be rebuilt and not re-tested.
Example
Consider a monorepo with the following packages
A ---B --- C
\
-- DInvoking packages-to-rebuild-on-changes with the following inputs
would yield this output
| input | output |
|---|---|
A | A B C D |
B | A B C |
D | A D |
Related
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago