-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
[core] Use turborepo to run the typescript
task
#9928
base: next
Are you sure you want to change the base?
Conversation
Netlify deploy previewNetlify deploy preview: https://deploy-preview-9928--material-ui-x.netlify.app/ Updated pagesNo updates. These are the results for the performance tests:
|
Interesting, ideas:
|
That's not very optimized to limit CI costs π |
Actually, going off topic of this PR, I think I can bring this up, in case there are applications for this: we spend about $40/month/engineer today, $1,000/month in total. I think we could trade spending x2 more for a x2 better CI experience π€. This is also equivalent to say spending the same monthly amount but having someone full time for a month per year to optimize the MUI CI. |
We talked about the amount of CI launched when talking about Argos a few weeks back. |
Pretty much. Today, the only limit I'm aware of is: the more screenshots we push the longer it takes to get the answer. |
We can configure cache inputs - see https://turbo.build/repo/docs/core-concepts/caching/file-inputs
I usually run it locally before opening the PR to quickly make sure I didn't miss anything.
I didn't know about caching available in Nx, will take a look π |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Did we consider this approach? https://github.com/mui/material-ui/blob/b2c4a8607e0368cfee2bc5ec21aefdc6a0390ed6/.circleci/config.yml#L159-L174. When it comes to having a faster CI, a few ideas looking at https://app.circleci.com/pipelines/github/mui/mui-x/43569/workflows/e7badba4-3576-41cb-a640-2fd7a26fd345
|
The visual regression tests run in half the time as the unit tests, don't rely on any implementation details, and test direct user impact. They cover so much ground, if anything, I think we should have more of them π |
The problem with the visual regression test is that for some set of components, we have dozens of demos that looks identical before interaction (pickers being a good example). |
I see. One thing to note is that it's not because the screenshots look the same that they are necessarily testing the same thing. One could argue they are testing whether a different configuration affects the initial appearance. You'll have better context about this than me though to judge whether this applies and is valuable enough to justify the overhead. |
For the pickers, the input are looking the same across a large set of demos. |
We have a lot of packages and two independent teams in MUI X, it's time to start optimizing our workflow a bit π
I gave Turborepo a try and started using it for the
typescript
task.The main goal is to avoid compiling packages that have not changed. For example, when working on the data grid, the other packages will not be compiled unless their files change.
If it works well, we can use it for other tasks. I believe I can integrate it with the
test:karma
task (I usually use it to test everything locally).We don't use Remote caching yet, which means that each team member will have their own local cache. We can look into adding the remote cache later to speed up our CI.
For comparison, after I change a file in the data grid package,
yarn typescript
takes ~8s π:When bypassing the cache, it takes ~42s: