Skip to content

feat: MUI 4 to BUI migration - add migration recipe workflow #127

Description

@schultzp2020

Summary

Add a misc migration recipe workflow that chains every deterministic MUI 4 to BUI codemod in a single ordered run for Backstage app and plugin repositories.

This recipe is not tied to a single Backstage release. It is the orchestration package for the ongoing MUI 4 to BUI migration work.

Release sequencing (required)

  1. Implement and merge the codemod issues below (each with changeset -> Version Packages -> registry publish).
  2. Only then implement and merge this recipe issue.
  3. Do not publish the recipe to the registry until all dependency packages are published.

Recipe workflow steps must use source: '@backstage/<package>' (registry resolution), not local paths.

Recipe order (proposed)

# Package Domain
1 @backstage/migrate-mui-bootstrap-to-bui Bootstrap / package setup
2 @backstage/migrate-mui-icons-to-remix-icons Icon source migration
3 @backstage/migrate-mui-styles-to-bui-css-modules Styling architecture
4 @backstage/migrate-mui-typography-to-text Typography
5 @backstage/migrate-mui-alert-to-bui-alert Alert banners
6 @backstage/migrate-mui-button-to-bui-button Standard buttons
7 @backstage/migrate-mui-icon-button-to-button-icon Icon buttons
8 @backstage/migrate-mui-tooltip-to-bui-tooltip Tooltips
9 @backstage/migrate-mui-dialog-to-bui-dialog Dialogs
10 @backstage/migrate-mui-tabs-to-bui-tabs Tabs
11 @backstage/migrate-mui-menu-popover-to-bui-menu Menus / popovers
12 @backstage/migrate-mui-list-family-to-bui-list Lists
13 @backstage/migrate-mui-chip-to-tag Tags / chips
14 @backstage/migrate-mui-select-family-to-bui-select Select
15 @backstage/migrate-mui-textfield-to-bui-textfield TextField
16 @backstage/migrate-mui-accordion-to-bui-accordion Accordion
17 @backstage/migrate-mui-radio-checkbox-groups-to-bui-groups Radio / checkbox groups
18 @backstage/migrate-mui-slider-to-bui-slider Slider
19 @backstage/migrate-mui-layout-to-bui-layout Layout primitives

Deliverables

  • codemods/misc/mui4-to-bui-migration-recipe/ directory (package.json, codemod.yaml, workflow.yaml, README.md, CHANGELOG.md)
  • Package name: @backstage/mui4-to-bui-migration-recipe
  • README table listing each step with registry links and a short explanation of what each codemod covers
  • Workflow version: '1' with sequential codemod: steps

Recipe behavior

  • The recipe runs every codemod at default deterministic settings.
  • The recipe ships no aiFixup parameter.
  • Codemods should use TODO(backstage-codemod) markers rather than embedded AI workflow nodes for ambiguous cases.
  • The README should document the expected manual follow-up pass after the recipe, including searching for remaining MUI imports and TODO markers.

Out of scope for recipe (document only in README)

  • Timeline and unsupported Material UI Lab widgets without a stable BUI equivalent
  • @material-table/core and broader table-system migrations that are not a safe 1:1 replacement
  • Perfect theme parity, dark-mode polish, and final design-token tuning after the source-level migration
  • Custom wrapper abstractions that hide MUI components behind project-specific APIs

QA target

Document dry-run against sample monorepo: ../backstage (C:/Users/pschu/Projects/backstage/backstage).

Changeset (when implementing)

  • Package: @backstage/mui4-to-bui-migration-recipe
  • Bump: minor (initial release)

Blocked by

Implementation notes

  • Target directory: codemods/misc/mui4-to-bui-migration-recipe/
  • Branch/worktree: .worktrees/feat/mui4-to-bui/mui4-to-bui-migration-recipe
  • One PR; merge after the codemod issues are merged and published

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions