We currently use lerna in some places in CI, but it is called via npx
and thus its depednencies are not locked to a particular version., This
means that lerna releases can break our pipelines. This PR removes lerna
from the client and build-tools pipelines, as well as the independent
package pipelines. Server release groups are left alone.
- Removes all lerna dependencies from the client and build-tools release
groups.
- `lerna ls --toposort` has been replaced by a new command, `flub list`.
The output of this command does not exactly match lerna's but it still
seems to be sorted appropriately.
- `lerna exec` uses in the pipeline have been replaced by `flub exec`.
- Adds a .releaseGroup file to the root of each release group. I
couldn't think of a simpler way to make the pipeline behave differently
for release groups vs. independent packages. This is needed because the
pack step in the pipeline uses the presence of the file to determine
whether it needs to pack multiple packages or not.
### Not included in this PR
Server release groups still use lerna. Changing them will be more
difficult because they build in a docker context that is rooted at the
release gropup root. I need to figure out a solution for them, so I'll
do that separately from this PR.
---------
Co-authored-by: Alex Villarreal <716334+alexvy86@users.noreply.github.com>
Co-authored-by: Craig Macomber (Microsoft) <42876482+CraigMacomber@users.noreply.github.com>