forge
forge copied to clipboard
refactor: replace bolt with a better monorepo manager
- [x] I have read the contribution documentation for this project.
- [x] I agree to follow the code of conduct that this project follows, as appropriate.
- [ ] The changes are appropriately documented (if applicable).
- [x] The changes have sufficient test coverage (if applicable).
- [x] The testsuite passes successfully on my local machine (if applicable).
Summarize your changes:
Bolt is getting too in the way (namely, the recent dependabot + GitHub Actions changes is preventing dependabolt from working). Switching to lerna since it's a more popular monorepo manager (and also supported by Dependabot). We're also forced to use an older version of bolt on Windows.
TODO
- [ ] FIx all of the "internal" dependencies
- [ ] FIgure out if publishing needs to change
- Finally get semantic-release working?
- [ ] Update any docs mentioning
bolt
Now that npm v7 supports workspaces, both yarn and npm support workspaces and hoisting node_modules so is Lerna even required any more?
The only missing ingredient seems to be running scripts in dependency order. I've seen a few projects migrate to lage because it's a bit more clever than a sequential runner.
@timfish at this point I'm mainly interested in lerna publish. There's currently some custom scripts for publishing and I'd like to avoid that.
On the other hand, @microsoft/rush seems like an interesting alternative.
On the other hand,
@microsoft/rushseems like an interesting alternative.
Hmmm. Based on the docs it sounds like it's most compatible with pnpm and also doesn't really work with npm/yarn workspaces (it kind of does its own thing?). Probably sticking with Lerna for now.
superseded by #2971