Skip to content

fix(quay): migrate MUIv4 to MUIv5#9473

Open
ciiay wants to merge 4 commits into
backstage:mainfrom
ciiay:quay-mui-migration
Open

fix(quay): migrate MUIv4 to MUIv5#9473
ciiay wants to merge 4 commits into
backstage:mainfrom
ciiay:quay-mui-migration

Conversation

@ciiay

@ciiay ciiay commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Hey, I just made a Pull Request!

Migrated the Quay plugin and dev app from Material UI v4 to MUI v5. Replaced @material-ui/* with @mui/material, @mui/icons-material, and @mui/styles; migrated makeStyles in the plugin to @mui/styles and in the dev app to tss-react/mui. Existing @backstage/ui CSS imports are unchanged. No breaking API changes.

✔️ Checklist

  • A changeset describing the change and affected packages. (more info)
  • Added or updated documentation
  • Tests for new functionality and regression tests for bug fixes
  • Screenshots attached (for UI changes)
  • All your commits have a Signed-off-by line in the message. (more info)

Signed-off-by: Yi Cai <yicai@redhat.com>
@backstage-goalie

backstage-goalie Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Missing Changesets

The following package(s) are changed by this PR but do not have a changeset:

  • @backstage-community/plugin-scaffolder-backend-module-quay
  • @backstage-community/plugin-quay-backend
  • @backstage-community/plugin-quay-common

See CONTRIBUTING.md for more information about how to add changesets.

Changed Packages

Package Name Package Path Changeset Bump Current Version
@backstage-community/plugin-copilot workspaces/copilot/plugins/copilot minor v1.0.0
app workspaces/quay/packages/app none v0.0.0
@backstage-community/plugin-scaffolder-backend-module-quay workspaces/quay/plugins/quay-actions none v2.20.0
@backstage-community/plugin-quay-backend workspaces/quay/plugins/quay-backend none v1.16.0
@backstage-community/plugin-quay-common workspaces/quay/plugins/quay-common none v1.21.0
@backstage-community/plugin-quay workspaces/quay/plugins/quay patch v1.34.0

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR migrates the Quay workspace (plugin + dev app) off Material-UI v4 to MUI v5 by updating component/icon imports and styling helpers, along with the necessary dependency and tooling config updates in the workspace.

Changes:

  • Replaced @material-ui/* imports with @mui/material, @mui/icons-material, and styling via @mui/styles / tss-react.
  • Updated Quay workspace dependencies/lockfile for MUI v5 + Emotion, and added an ESLint rule to prevent reintroducing MUI v4 imports.
  • Adjusted Prettier configuration/ignores for API report generation artifacts.

Reviewed changes

Copilot reviewed 23 out of 24 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
workspaces/quay/yarn.lock Updates lockfile to reflect MUI v5 + Emotion + related dependency graph changes.
workspaces/quay/plugins/quay/src/hooks/quay.tsx Migrates core UI imports (Box/Chip/makeStyles) to MUI v5.
workspaces/quay/plugins/quay/src/components/QuayWidget/QuayWidget.tsx Migrates Card/CardHeader imports to MUI v5.
workspaces/quay/plugins/quay/src/components/QuayTagDetails/component.tsx Migrates icons/table components to MUI v5 and updates inline styling to sx.
workspaces/quay/plugins/quay/src/components/QuayRepository/tableHeading.tsx Migrates Tooltip import to MUI v5 and adjusts column metadata.
workspaces/quay/plugins/quay/src/components/QuayRepository/QuayRepository.tsx Migrates Box/Typography imports and updates props to MUI v5 equivalents.
workspaces/quay/plugins/quay/src/components/PermissionAlert/PermissionAlert.tsx Replaces MUI v4 lab Alert imports with MUI v5 material equivalents.
workspaces/quay/plugins/quay/package.json Swaps MUI v4 deps for MUI v5 + Emotion + @mui/styles.
workspaces/quay/plugins/quay/.prettierignore Ignores generated API report markdown files.
workspaces/quay/plugins/quay/.eslintrc.js Enforces @backstage/no-top-level-material-ui-4-imports to prevent regressions.
workspaces/quay/plugins/quay-common/.prettierignore Ignores generated API report markdown files.
workspaces/quay/plugins/quay-backend/.prettierignore Ignores generated API report markdown files.
workspaces/quay/plugins/quay-actions/.prettierignore Ignores generated API report markdown files.
workspaces/quay/packages/app/src/components/SearchPage.tsx Migrates Grid/Paper + switches styling from MUI v4 makeStyles to tss-react.
workspaces/quay/packages/app/src/components/Root/Root.tsx Migrates sidebar icons + makeStyles to MUI v5 / tss-react.
workspaces/quay/packages/app/src/components/Root/LogoIcon.tsx Migrates makeStyles usage to tss-react.
workspaces/quay/packages/app/src/components/Root/LogoFull.tsx Migrates makeStyles usage to tss-react.
workspaces/quay/packages/app/src/components/EntityPage.tsx Migrates Button/Grid imports to MUI v5.
workspaces/quay/packages/app/package.json Adds MUI v5 + Emotion + tss-react dependencies for the dev app.
workspaces/quay/packages/app/knip-report.md Updates knip report output after dependency changes.
workspaces/quay/package.json Workspace-level tooling config adjustment (prettier config moved to .prettierrc.js).
workspaces/quay/.prettierrc.js Adds explicit Prettier config for the workspace with plugin search disabled.
workspaces/quay/.prettierignore Ignores generated API report markdown files at workspace root.
workspaces/quay/.changeset/quiet-maps-dream.md Adds changeset documenting the migration.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +50 to +52
"@mui/icons-material": "^5.16.7",
"@mui/material": "^5.16.7",
"@mui/styles": "^5.16.7",
Comment on lines +5 to +7
Migrated the Quay plugin and dev app from Material UI v4 to MUI v5. Replaced `@material-ui/*` with `@mui/material`, `@mui/icons-material`, and `@mui/styles`; migrated `makeStyles` in the plugin to `@mui/styles` and in the dev app to `tss-react/mui`. Existing `@backstage/ui` CSS imports are unchanged. No breaking API changes.

---
ciiay added 2 commits June 15, 2026 10:11
Signed-off-by: Yi Cai <yicai@redhat.com>
Signed-off-by: Yi Cai <yicai@redhat.com>
Copilot AI review requested due to automatic review settings June 15, 2026 14:43

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 22 out of 23 changed files in this pull request and generated 1 comment.

};
});
}, [tags, localClasses.chip, tagManifestLayers, tagManifestStatuses]);
}, [tags, tagManifestLayers, tagManifestStatuses, localClasses]);
Signed-off-by: Yi Cai <yicai@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants