Skip to content

Conversation

@brijeshb42
Copy link
Contributor

@brijeshb42 brijeshb42 commented Oct 21, 2025

@brijeshb42 brijeshb42 requested a review from a team October 21, 2025 17:38
@brijeshb42 brijeshb42 added the scope: code-infra Involves the code-infra product (https://www.notion.so/mui-org/5562c14178aa42af97bc1fa5114000cd). label Oct 21, 2025
@mui-bot
Copy link

mui-bot commented Oct 21, 2025

Bundle size report

Bundle Parsed size Gzip size
@base-ui-components/react 0B(0.00%) 0B(0.00%)
@mui/x-charts-pro 🔺+960B(+0.22%) 🔺+376B(+0.28%)

Details of bundle changes


Check out the code infra dashboard for more information about this PR.

@brijeshb42
Copy link
Contributor Author

brijeshb42 commented Nov 10, 2025

I've moved the orb file at the top level .circleci directory.
@Janpot Ready for review

@brijeshb42 brijeshb42 requested a review from Janpot November 13, 2025 10:51
version: 2.1

orbs:
code-infra: https://raw.githubusercontent.com/mui/mui-public/50255f1e368561998ed6dbaf8d78b1a09ff22943/.circleci/orbs/code-infra.yml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll version this even in the mui/mui-public repo?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This got left from my testing. It'll be master here.

pnpm install
fi
run-linters:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This makes me question, what with repos where these linters aren't set up yet. e.g. joy for a while was just messing around and didn't care for all of these. Wouldn't make sense to create separate templates for these?

Copy link
Contributor Author

@brijeshb42 brijeshb42 Nov 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You mean individual linters? like run-eslint, run-stylelint etc?
If a repo is just starting, they can just not use this command and add lints individually till the point the repo is ready.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, or I can imagine some repo not needing things like stylelint or something.

they can just not use this command and add lints individually till the point the repo is ready.

That's interesting, we could also create templates for each of these and use them ourselves in run-linters

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or we could accept parameters to disable specific linter commands for new repos.
Doesn't make much sense if it's just pnpm eslint or pnpm stylelint. Would have made sense if it was complex it-else or bash, IMO.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nah, I wouldn't do parameters to enable steps, composability over configurability. I don't think it matters how much is in a step, the criterium should be what level of composability do we want/need, and that's what we should do, even if for some of the steps that's just as simple proxying to pnpm eslint. No worries if you don't see the utility, then let's keep it as is.

chmod +x codecov
./codecov -t ${CODECOV_TOKEN} -Z -F "<< parameters.key >>"
check-static-changes:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar, feels like it could work well as separate tasks too

# See https://stackoverflow.com/a/73411601
command: corepack enable --install-directory ~/bin
- run:
name: View install environment
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wondering whether these three steps not make more sense in mui-node? Or maybe we need a mui-node-browser as well? 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But in all the repos, we only specify the executor once. This was done with that in consideration.
We could have two different executors as well and specify it at the job level. It may be cleaner in the job specification.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But we use two different images right? Would that mean we'd have two different executors?

And should the browser parameter not just follow whichever executor is used? Would it make sense/be possible to create two executors, one for cimg/node and one for the playwright image. Then have a env var in both telling downstream jobs what they are (e.g. MUI_EXECUTOR=node|browser), then use this env var instead of passing the browser parameter to those jobs?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I saw this mcr.microsoft.com almost every other day in the configs but never saw the docker before it.

I'll add another executor for it. There may be some manual handling required to bump the versions though.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, it needs to update in lock step with the playwright npm package

- eslint-cache-
- run:
name: ESLint
command: pnpm exec eslint . --cache --cache-strategy content --report-unused-disable-directives --max-warnings 0
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We now don't need to rely on the repo's eslint:ci given it is now independent of the file structure. With one update here, we can run the latest command in all repos.
Same for markdownlint. stylelint still accepts some params that seem to be repo dependent.

Copy link
Member

@Janpot Janpot Nov 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤔 Not sure about this, from this orb we don't control the version of eslint that's installed in the repo. It could be hard to orchestrate a major upgrade if there's a breaking change in the CI. Also impossible to make local overrides.

edit: oh wait, did you mean pnpm run instead of pnpm exec?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So to be clear, I'm not against pnpm run eslint --cache --cache-strategy content if you want to remove eslint:ci, I was just thrown off by the usage of pnpm exec. I thought you wanted to recreate what was in the eslint command instead of augment it.

- run:
name: Install js dependencies
command: |
packages="<< parameters.package-overrides >>"
Copy link
Member

@Janpot Janpot Nov 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we have to do so much processing to parse parameters.package-overrides, perhaps we should just do it in the CLI? Keep complexity of the orb low.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed

@oliviertassinari oliviertassinari temporarily deployed to ci-orb - mui-tools-public PR #828 November 14, 2025 04:31 — with Render Destroyed
@brijeshb42
Copy link
Contributor Author

Added separate playwright executor. Removed the browsers parameter now.
Working here - mui/base-ui#3021

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope: code-infra Involves the code-infra product (https://www.notion.so/mui-org/5562c14178aa42af97bc1fa5114000cd).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants