scripts/mui-to-bui/README.md
This script provides accurate TypeScript AST-based analysis of MUI to @backstage/ui migration progress in the Backstage repository.
Key Benefits:
# From anywhere in the repository
yarn mui-to-bui # Generate console report
yarn mui-to-bui --json # Export detailed JSON data
yarn mui-to-bui --csv # Export component usage CSV
yarn mui-to-bui --markdown # Generate GitHub-optimized markdown
yarn mui-to-bui --components # Show detailed list of all components
@material-ui/*), MUI v5 (@mui/*), and Backstage UI (@backstage/ui)š Backstage MUI to BUI Migration Report
=======================================
Analyzing migration from MUI to @backstage/ui in the Backstage repository
š SUMMARY
--------------------
Total files analyzed: 2,847
Files with MUI imports: 987
Files with Backstage UI imports: 345
Total import statements: 2,134
Components found: 156
š MIGRATION PROGRESS
--------------------
ā
Fully migrated: 345 files (25.9%)
š Mixed imports: 234 files (17.5%)
ā Not started: 756 files (56.6%)
š LIBRARY USAGE
--------------------
@material-ui/core: 1,234 imports in 456 files
@mui/material: 567 imports in 234 files
@backstage/ui: 345 imports in 234 files
š” RECOMMENDATIONS
--------------------
š“ 756 files still use MUI v4 (@material-ui). These should be prioritized for migration.
š” 234 files have mixed imports. Focus on completing these migrations first for quick wins.
šµ Migration progress: 25.9% of files fully migrated to Backstage UI
@material-ui/* should be migrated firstThe migration progress is automatically tracked via GitHub Actions:
The workflow is defined in .github/workflows/mui-migration-tracker.yml and:
scripts/mui-to-bui/
āāā backstage-migration-analytics.js # AST-powered migration analytics
āāā README.md # This documentation
.github/workflows/
āāā mui-migration-tracker.yml # GitHub Actions workflow for automated updates
.tsx, .ts, .jsx, .jsnode_modules, dist, build, .git, coverage, .yarnts-morph package (already in dependencies)GITHUB_TOKEN for issue updates@material-ui/core, @material-ui/lab, @material-ui/icons@mui/material, @mui/lab, @mui/icons-material@backstage/ui, @spotify-portal/canonThis comprehensive analysis helps you make informed decisions about migration priorities and strategies, with automated tracking to monitor progress over time.
# Save outputs to files for sharing or further analysis
yarn mui-to-bui --markdown > migration-report.md
yarn mui-to-bui --csv > migration-components.csv
yarn mui-to-bui --json > migration-data.json
yarn mui-to-bui --components > all-components.txt
# Save with timestamps
yarn mui-to-bui --csv > "migration-$(date +%Y%m%d).csv"
yarn mui-to-bui --markdown > "migration-report-$(date +%Y%m%d).md"
# See detailed breakdown of all 420+ components
yarn mui-to-bui --components
This shows:
1. Typography
Usage: 1,633 times across 705 files
Top files:
⢠plugins/catalog/src/components/CatalogTable/CatalogTable.tsx (15 uses)
⢠plugins/search/src/components/SearchResult/SearchResult.tsx (14 uses)
⢠plugins/techdocs/src/components/TechDocsPage.tsx (13 uses)
... and 702 more files
2. Box
Usage: 1,572 times across 697 files
Top files:
⢠plugins/app-visualizer/src/components/AppVisualizerPage/DetailedVisualizer.tsx (15 uses)
⢠plugins/scaffolder/src/components/TemplateCard/TemplateCard.tsx (14 uses)
... and 695 more files