cli to serve polyglot monorepo
- List package in the monorepo -
mrt list
- Ability to execute "scripts" across monorepo: start, build, test, format, etc -
mrt run [script]
- Support for nodejs/npm packages and apps
- Support for python/poetry packages and apps
- Support for rust/cargo packages and apps
- Support for custom packages and apps
- Support for Makefile as extra scripts to run
- ...
If you have rust/cargo installed, you can install mrt
with:
cargo install --git https://github.com/chaliy/mrt.git
mrt --help
mrt completion zsh > $ZSH/cache/completions/_mrt
compinit
mrt <TAB>
Build tool that will help with common operations on polyglot monorepo. Run "scripts" across all packages, do release management, etc.
- Run "scripts" across monorepo like build, test, fmt, etc -
mrt run [script]
- Polyglot packages, mrt should run any. Initially nodejs/npm, python/poetry, Makefile and custom
- Dependency graph, if packages depends on each other, mrt should know
- Be aware of changes, detect changes and run scripts against changes
- Allow filter / group / list packages. So for example need to find a way to run "test" script only on "ui" packages
- Help with CI, for example command to proxy package command only when something has been changed
- Handle initialization of dev environment
- Handle running monorepo (e.g. microservices docker-compose)
- Version / release management. Single repo version, or per package version
mrt list
- List all monorepo packages
mrt list [packages_spec]
- List specified packages
mrt run [packages_spec] [script]
- Run script for specified packages
mrt run [script]
- Run script for all specified packages
[packages_spec]
- package | package1,package2 | pa* | packages/pack*
- Lerna / Nx - NodeJS monorepo tools
- Bazel - monorepo build tool