[code-infra] Remove examples workspace and unused dependencies#21999
Merged
Conversation
examples workspace and unused dependencies
|
Deploy preview: https://deploy-preview-21999--material-ui-x.netlify.app/ Bundle size report
|
brijeshb42
approved these changes
Apr 7, 2026
8 tasks
LukasTy
added a commit
to LukasTy/mui-x
that referenced
this pull request
Apr 7, 2026
Follow-up on mui#21999. Reduces Renovate's per-PR memory pressure and shrinks the lockfile churn for workspace edits. - renovate.json: add `ignorePaths: ["**/bug-reproductions/**"]`. The mui-public preset already ignores `examples/`, but `bug-reproductions/` packages pin every dep to `"latest"`, so there is nothing for Renovate to do there. - pnpm-workspace.yaml: hoist `@atlaskit/pragmatic-drag-and-drop`, `@base-ui/react`, `@mui/types`, `execa`, and `jsdom` into the catalog. Each of those was duplicated with the same pinned version across 2-4 package.json files; moving them to the catalog removes the duplication and cuts per-package Renovate PRs. - Drop `chai-dom` and `@types/chai-dom` from root devDeps. Both are already direct deps of `@mui/internal-test-utils`, so the matchers and type augmentation keep flowing in transitively. Also drop the stale `"chai-dom"` entry from `packages/x-virtualizer/tsconfig.json` (x-virtualizer has no tests at all; the entry was leftover cruft). Deliberately NOT bumping `vite` / `vitest` / `@vitejs/plugin-react` in the catalog: `@vitejs/plugin-react@5.2.0` changes how JSX is compiled such that inner named function expressions lose the `2` suffix in `ForwardRef(DataGrid2)` stack frames, which breaks `reactMajor < 19` tests in layout.DataGrid, slots.DataGrid, and TreeViewItemsPlugin. Keeping plugin-react pinned at `^5.1.4` via the existing catalog entry preserves the X2 naming.
LukasTy
added a commit
to LukasTy/mui-x
that referenced
this pull request
Apr 7, 2026
Follow-up on mui#21999. Reduces Renovate's per-PR memory pressure and shrinks the lockfile churn for workspace edits. - renovate.json: add `ignorePaths: ["**/bug-reproductions/**"]`. The mui-public preset already ignores `examples/`, but `bug-reproductions/` packages pin every dep to `"latest"`, so there is nothing for Renovate to do there. - pnpm-workspace.yaml: hoist `@atlaskit/pragmatic-drag-and-drop`, `@base-ui/react`, `@mui/types`, `execa`, and `jsdom` into the catalog. Each was duplicated with the same pinned version across 2-4 package.json files; moving them to the catalog removes the duplication and cuts per-package Renovate PRs. - Bump vite / vitest / @vitest/* / @vitejs/plugin-react* in the catalog: `vite ^7.3.1 -> ^8.0.2`, `vitest ^4.0.18 -> ^4.1.3`, `@vitest/* ^4.0.18 -> ^4.1.3`, `@vitejs/plugin-react ^5.1.4 -> ^5.2.0`, `@vitejs/plugin-react-swc ^4.2.3 -> ^4.3.0`. Aligns with `@mui/internal-bundle-size-checker`, which already pulled `vite@8` into the tree, so without this bump any package.json edit cascaded the lockfile across ~36 peer-resolved sites. - `@vitejs/plugin-react@5.2.0` changes JSX scope handling so that inner named function expressions lose the `2` suffix in `<ForwardRef(DataGrid2)>` / `<ForwardRef(GridOverlay2)>` / `<ForwardRef(TreeItem2)>` stack frames. Relax the `reactMajor < 19` assertions in `layout.DataGrid`, `slots.DataGrid`, and `TreeViewItemsPlugin` to a substring that matches both the old and new form, so tests pass across bundler versions. - pnpm-workspace.yaml: add a `peerDependencyRules.allowedVersions` entry for `@codspeed/vitest-plugin>vite`. Codspeed has not published vite@8 support yet, but it runs fine against it in `test/performance-charts`. Can be removed once codspeed ships a new release. - Drop `chai-dom` and `@types/chai-dom` from root devDeps. Both are already direct deps of `@mui/internal-test-utils`, so the matchers and type augmentation keep flowing in transitively. Also drop the stale `"chai-dom"` entry from `packages/x-virtualizer/tsconfig.json` (x-virtualizer has no tests at all; the entry was leftover cruft).
LukasTy
added a commit
to LukasTy/mui-x
that referenced
this pull request
Apr 7, 2026
Follow-up on mui#21999. Reduces Renovate's per-PR memory pressure and shrinks the lockfile churn for workspace edits. - renovate.json: add `ignorePaths: ["**/bug-reproductions/**"]`. The mui-public preset already ignores `examples/`, but `bug-reproductions/` packages pin every dep to `"latest"`, so there is nothing for Renovate to do there. - pnpm-workspace.yaml: hoist `@atlaskit/pragmatic-drag-and-drop`, `@base-ui/react`, `@mui/types`, `execa`, and `jsdom` into the catalog. Each was duplicated with the same pinned version across 2-4 package.json files; moving them to the catalog removes the duplication and cuts per-package Renovate PRs. - Bump vite / vitest / @vitest/* / @vitejs/plugin-react* in the catalog: `vite ^7.3.1 -> ^8.0.2`, `vitest ^4.0.18 -> ^4.1.3`, `@vitest/* ^4.0.18 -> ^4.1.3`, `@vitejs/plugin-react ^5.1.4 -> ^5.2.0`, `@vitejs/plugin-react-swc ^4.2.3 -> ^4.3.0`. Aligns with `@mui/internal-bundle-size-checker`, which already pulled `vite@8` into the tree, so without this bump any package.json edit cascaded the lockfile across ~36 peer-resolved sites. - `@vitejs/plugin-react@5.2.0` changes JSX scope handling so that inner named function expressions lose the `2` suffix in `<ForwardRef(DataGrid2)>` / `<ForwardRef(GridOverlay2)>` / `<ForwardRef(TreeItem2)>` stack frames. Relax the `reactMajor < 19` assertions in `layout.DataGrid`, `slots.DataGrid`, and `TreeViewItemsPlugin` to a substring that matches both the old and new form, so tests pass across bundler versions. - pnpm-workspace.yaml: add a `peerDependencyRules.allowedVersions` entry for `@codspeed/vitest-plugin>vite`. Codspeed has not published vite@8 support yet, but it runs fine against it in `test/performance-charts`. Can be removed once codspeed ships a new release. - Drop `chai-dom` and `@types/chai-dom` from root devDeps. Both are already direct deps of `@mui/internal-test-utils`, so the matchers and type augmentation keep flowing in transitively. Also drop the stale `"chai-dom"` entry from `packages/x-virtualizer/tsconfig.json` (x-virtualizer has no tests at all; the entry was leftover cruft).
LukasTy
added a commit
to LukasTy/mui-x
that referenced
this pull request
Apr 7, 2026
Follow-up on mui#21999. Reduces Renovate's per-PR memory pressure and tightens the dependency graph. - renovate.json: add `ignorePaths: ["**/bug-reproductions/**"]`. The mui-public preset already ignores `examples/`, but `bug-reproductions/` packages pin every dep to `"latest"`, so there is nothing for Renovate to do there. - pnpm-workspace.yaml: hoist `@atlaskit/pragmatic-drag-and-drop`, `@base-ui/react`, `@mui/types`, `execa`, and `jsdom` into the catalog. Each was duplicated with the same pinned version across 2-4 package.json files; moving them to the catalog removes the duplication and cuts per-package Renovate PRs. - Drop `chai-dom` and `@types/chai-dom` from root devDeps. Both are already direct deps of `@mui/internal-test-utils`, so the matchers and type augmentation keep flowing in transitively. Also drop the stale `"chai-dom"` entry from `packages/x-virtualizer/tsconfig.json` (x-virtualizer has no tests at all; the entry was leftover cruft). - Relax the `reactMajor < 19` assertions in `layout.DataGrid`, `slots.DataGrid`, and `TreeViewItemsPlugin` to a substring prefix. `@vitejs/plugin-react` 5.2+ changes JSX scope handling so the inner named function expression no longer gets a `2` suffix in the `<ForwardRef(DataGrid2)>` frame. The prefix match is forward compatible with both the current `ForwardRef(DataGrid2)` form and the future `ForwardRef(DataGrid)` form, so a future `vite` / `vitest` / `@vitejs/plugin-react` catalog bump won't need to touch these tests again.
arminmeh
pushed a commit
to arminmeh/mui-x
that referenced
this pull request
Apr 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
An effort to reduce the lock file bloat and hopefully prevent Renovate OOMs.
Changes
examplesworkspace from pnpm configurationpackage.json:@types/requestidlecallback@0.3.7—requestIdleCallbackis inlib.domsince TS 4.4 and the only consumer (x-data-grid-generator/src/services/asyncWorker.ts) typechecks fine without it.process@0.11.10— only referenced inside@mui/monorepo/test/bundling/scripts/createTemplate.js, which mui-x never invokes.x-telemetrypackage:@types/device-uuid@1.0.3@mui/icons-materialas explicit dev dependency tox-schedulerpackage to lock version to catalogautoInstallPeerswas picking the lowest version matching the peer-dep range (^7.3.0 || ^9.0.0-beta.1), pulling an entire extra@mui/icons-material@7.3.9projection into the lockfile and producing an unmet@mui/material@^7.3.9peer warning.pnpm dedupeto collapse duplicatevite@8.0.2-suffixed projections of@vitest/*,@vitejs/plugin-react{,-swc},@codspeed/vitest-plugin,@mui/internal-test-utils, and@lerna/createinto the existingvite@7.xprojections used elsewhere in the workspace.Impact
pnpm-lock.yamlsizepnpm-lock.yamllinesThe line count is the most relevant number for Renovate's memory pressure — its pnpm parser walks the YAML graph during update planning, and the removed entries are mostly the v7/v8
@mui/*andvite@8peer-dep projection trees.Notable trees collapsed
@mui/*tree gone:@mui/material@7.3.9,@mui/system@7.3.9,@mui/utils@7.3.9,@mui/private-theming@7.3.9,@mui/styled-engine@7.3.9,@mui/icons-material@7.3.9(last one fixed by the x-scheduler peer-dep change).@mui/x-*tree gone:@mui/x-data-grid{,-pro,-premium}@8.27.0,@mui/x-internals@8.26.0,@mui/x-license@8.26.0,@mui/x-virtualizer@0.3.3,@mui/x-telemetry@8.20.0,@mui/x-internal-exceljs-fork@4.4.3.vite@8.0.2-suffixed projections of vitest/vitejs plugins gone (collapsed bypnpm dedupe).Verification
pnpm install --frozen-lockfilepnpm typescript(full monorepo, 23 projects)pnpm --filter @mui/x-data-grid-generator run typescript(therequestIdleCallbackconsumer)pnpm --filter @mui/x-telemetry run typescriptpnpm test:unit --project x-telemetry --runpnpm docs:build(Next.js webpack build + service worker)The pre-existing
pnpm eslinterrors inx-charts-premium/src/index.ts,x-charts-pro/src/index.ts, andx-data-grid/src/hooks/utils/index.ts(No named exports found in module …) and thepnpm docs:buildlink-check failure on[null](/x)both reproduce on master without any of the changes in this PR, so they are not regressions introduced here.