-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use rushjs instead of lerna for monorepo management #896
Comments
How are we going to test Rush before we switch over? If it turns out that it makes life difficult for us in production, is there a fallback? |
|
Hang on - when you say production, do you mean in terms of ops or day-to-day development? |
I was thinking day-to-day development. I'm sure the initial PR will be fine but, based on our experience with Lerna, problems might surface once we've tried to use it as a team and maybe come across things we need to do that it doesn't handle. It's a worst-case scenario, I know, but should we hold off on using new tools in production until we've had a chance to get comfortable with them as a team? |
I get your point, but how would we do that without just making the switch? One way we could try doing it is to fork the repo, make the changes, let people try out rush for a while, submit some non-critical PRs; at the end of a fixed period, we either merge the changes only back into the main repo, or changes plus new tooling. It's a recipe for merge conflicts, mind. Actually, a better way would be to add a rush branch, let people submit PRs to it as a base branch, and then I can revert the commits adding rush if we decide it's not suitable. My gut reaction is:
Thoughts / feels? |
Sorry, my point is we can do this by making the switch, but what's the plan if it turns out that Rush doesn't work for us? ie. how do we avoid doing what we did with Lerna? |
Oh, got you. Well, we know exactly how to get Lerna working for us, and everything's still in the git history, so if rush turned out to be a disaster we could roll this change back. We'd have to:
There's nothing inherently different about any of the packages in the repo, other than the use of |
The symlinking that lerna does is preventing us from successfully running npm audit fix commands too. I'd like us to switch even though there's risk in quickly switching underlying tech like this just for the ease of quickly making security patches. Dependabot since the github take over hasn't reliably been opening PRs for us, so I'd like npm audit fix to be a reliable back up to that. |
Closing as we're going with yarn - rush currently gets a bit flaky with npm versions above 4.5.0 :( |
So far we've used lerna to manage the monorepo, and that's caused its share of problems, mostly because we're not using it the right way - it's for publishing multiple packages, not enabling local development across multiple packages. This has caused us some headaches in the past.
Recently, I've come across Rush.js, which is a monorepo manager built by MS, and I tried out a quick test, which went pretty well:
libs
dir, anapps
dir, etc, so we can move away from the slightly clunky naming pattern we have currentlySo I'm going to propose we switch over to using Rush after TESS is deployed, since this will affect the build process.
To do:
Comments / suggestions welcome!
cc #545
The text was updated successfully, but these errors were encountered: