Skip to content

chore(scorecard): migrate from Material UI v4 to MUI v5#3312

Open
Eswaraiahsapram wants to merge 1 commit into
redhat-developer:mainfrom
Eswaraiahsapram:feat/scorecard-mui-v5-migration
Open

chore(scorecard): migrate from Material UI v4 to MUI v5#3312
Eswaraiahsapram wants to merge 1 commit into
redhat-developer:mainfrom
Eswaraiahsapram:feat/scorecard-mui-v5-migration

Conversation

@Eswaraiahsapram
Copy link
Copy Markdown
Member

Hey, I just made a Pull Request!

Fix: https://redhat.atlassian.net/browse/RHIDP-13844

Migrates the scorecard workspace from Material UI v4 to MUI v5.

--- NFS ---

Screen.Recording.2026-06-05.at.11.31.20.AM.mov

--- Legacy app ---

Screen.Recording.2026-06-05.at.11.29.15.AM.mov

✔️ 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)

@rhdh-gh-app
Copy link
Copy Markdown

rhdh-gh-app Bot commented Jun 5, 2026

Unexpected Changesets

The following changeset(s) reference packages that have not been changed in this PR:

  • /home/runner/work/rhdh-plugins/rhdh-plugins/workspaces/scorecard/.changeset/mui-v5-scorecard.md: @red-hat-developer-hub/backstage-plugin-scorecard

Note that only changes that affect the published package require changesets, for example changes to tests and storybook stories do not require changesets.

Changed Packages

Package Name Package Path Changeset Bump Current Version
app-legacy workspaces/scorecard/packages/app-legacy none v0.0.0
app workspaces/scorecard/packages/app none v0.0.0

@Eswaraiahsapram Eswaraiahsapram changed the title feat(scorecard): migrate from Material UI v4 to MUI v5 chore(scorecard): migrate from Material UI v4 to MUI v5 Jun 5, 2026
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Jun 5, 2026

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 5, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 53.95%. Comparing base (763507e) to head (537049a).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3312      +/-   ##
==========================================
- Coverage   53.95%   53.95%   -0.01%     
==========================================
  Files        2379     2377       -2     
  Lines       86136    86126      -10     
  Branches    23892    23892              
==========================================
- Hits        46473    46466       -7     
+ Misses      38071    38068       -3     
  Partials     1592     1592              
Flag Coverage Δ *Carryforward flag
adoption-insights 83.58% <ø> (ø) Carriedforward from 763507e
ai-integrations 70.03% <ø> (ø) Carriedforward from 763507e
app-defaults 69.60% <ø> (ø) Carriedforward from 763507e
augment 46.39% <ø> (ø) Carriedforward from 763507e
bulk-import 72.86% <ø> (ø) Carriedforward from 763507e
cost-management 17.48% <ø> (ø) Carriedforward from 763507e
dcm 59.64% <ø> (ø) Carriedforward from 763507e
extensions 62.24% <ø> (ø) Carriedforward from 763507e
global-floating-action-button 74.30% <ø> (ø) Carriedforward from 763507e
global-header 61.63% <ø> (ø) Carriedforward from 763507e
homepage 51.52% <ø> (ø) Carriedforward from 763507e
konflux 91.01% <ø> (ø) Carriedforward from 763507e
lightspeed 68.50% <ø> (ø) Carriedforward from 763507e
mcp-integrations 85.46% <ø> (ø) Carriedforward from 763507e
orchestrator 37.33% <ø> (ø) Carriedforward from 763507e
quickstart 62.09% <ø> (ø) Carriedforward from 763507e
sandbox 79.56% <ø> (ø) Carriedforward from 763507e
scorecard 83.89% <100.00%> (+0.04%) ⬆️
theme 64.54% <ø> (ø) Carriedforward from 763507e
translations 8.49% <ø> (ø) Carriedforward from 763507e
x2a 78.79% <ø> (ø) Carriedforward from 763507e

*This pull request uses carry forward flags. Click here to find out more.


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 763507e...537049a. Read the comment docs.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@fullsend-ai-review
Copy link
Copy Markdown

Review

Findings

Low

  • [missing-peer-dep] workspaces/scorecard/packages/app-legacy/package.json — The PR removes @material-ui/icons from app-legacy's dependencies, but @red-hat-developer-hub/backstage-plugin-theme@0.14.7 declares @material-ui/icons: ^4.11.3 as a peer dependency. In practice this is a pre-existing condition (the app package never had @material-ui/icons despite the same peer requirement from theme v0.13.0), so the theme works fine without it. However, this may produce a peer dependency warning during install. Consider adding @material-ui/icons back or confirming the theme package doesn't need it at runtime.

  • [inconsistent-dep-spec] workspaces/scorecard/packages/app-legacy/package.json — MUI v5 packages are pinned to exact version 5.18.0 (no caret) in app-legacy, while the app package uses ^5.18.0 (with caret). This inconsistency is harmless for resolution but could confuse maintainers.

  • [styling-approach-consistency] workspaces/scorecard/packages/app-legacy/src/components/search/SearchPage.tsx:47 — SearchPage.tsx retains makeStyles (imported from @mui/styles) for the filter class while using inline sx props on Paper components for other styles. Within this PR, Root.tsx and SidebarLogo.tsx fully migrate away from makeStyles to sx/style. Other migrated workspaces (e.g., global-header) do not use @mui/styles makeStyles. Consider converting the remaining filter class to an sx prop to fully remove the @mui/styles dependency from this file.

  • [scope-classification] workspaces/scorecard/.changeset/mui-v5-scorecard.md — The PR is titled as "chore" (non-functional maintenance) but the changeset classifies the change as "patch" for the published scorecard plugin. The changeset description mentions "scope JSS class names to prevent style collisions," which implies a user-facing behavioral fix. Consider whether "fix" or "refactor" is a more accurate conventional-commit prefix.

Info

  • [test-adequacy] workspaces/scorecard/packages/app-legacy/src/App.test.tsx — The existing smoke test validates that the App renders without crashing, which would catch broken imports from the migration. No tests were weakened or removed.

  • [scope-containment] All 16 changed files are confined within workspaces/scorecard/. The ESLint shared config, theme bump, and Logo component consolidation are all within scope of a MUI v4→v5 migration. The ESLint config matches the established pattern from global-header, quickstart, and orchestrator workspaces.

},
filter: {
'& + &': {
marginTop: theme.spacing(2.5),
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[low] pattern-inconsistency

Mixed styling approach: makeStyles from @mui/styles retained for filter class while sx props used for other styles. Other files in this PR and other migrated workspaces fully remove makeStyles.

@fullsend-ai-review fullsend-ai-review Bot added the ready-for-merge All reviewers approved — ready to merge label Jun 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-merge All reviewers approved — ready to merge workspace/scorecard

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant