- checks whether branch is `master`
- checks whether the tree is clean
- checks whether HEAD doesn't match origin
- publishes using lerna
- updates root version based on --staging/--dev/--production flags
- tags tapo with name `${pkg.name}@${pkg.version}`
- pushes tag to origin
that creates and pushes a repo tag afterwards
For lint and test, it detects the packages that the staged files affect and only
runs the corresponding `lint` and `test` scripts.
For format, it will run prettier through the Added/Modified js files.