Bbackstage

backstage/v1-52-0-migration-recipe

Backstage 1.52.0: Migration recipe that runs every @backstage v1.52.0 codemod from the registry in a safe order.

backstagemigrationrecipeworkflowupgrade1.52.0
PublicBundle
7 executions

Run locally

npx codemod @backstage/v1-52-0-migration-recipe

v1.52.0-migration-recipe

Run every @backstage/* v1.52.0 codemod from the Codemod Registry in a single ordered pass.

What it runs

#PackageDomainType
1@backstage/migrate-bui-props-to-intersection@backstage/ui — type changebreaking
2@backstage/remove-stitching-strategy-modeapp-config — catalog configbreaking
3@backstage/rename-bui-css-tokens-v1-52@backstage/ui — CSS tokensdeprecation
4@backstage/migrate-select-combobox-props@backstage/ui — JSX propsdeprecation

Usage

bash

AI fixup

None of the four v1.52.0 codemods ship an aiFixup parameter. All transforms are fully mechanical (type rewrites, YAML key removal, CSS token renames, JSX prop restructuring).

Notes

  • Each step is invoked through the codemod: workflow action and resolved from the Codemod registry, so running the recipe installs the latest published version of every referenced package. All four underlying codemods must be published before the recipe can run end-to-end from the registry.
  • The recipe does not reorder edits across codemods; each registry package owns its own before/after behavior. Check the individual READMEs for the details of any single step.
  • Several of the codemods insert TODO(backstage-codemod) markers where a value needs human review. After the recipe finishes, grep for TODO(backstage-codemod) in your repo to find everything that still needs attention.
  • This recipe is orchestration only — it has no transform script of its own, so there are no fixture tests. Running yarn test in this package validates the workflow schema via codemod workflow validate.

Out of scope

The following changes in Backstage 1.52.0 require manual migration and are not covered by this recipe:

  • FrontendHostDiscovery discovery.endpoints — default discovery API changed to FrontendHostDiscovery in @backstage/plugin-app@0.5.0. If discovery.endpoints contains string target values pointing to internal-only URLs, update to object form { internal: "url" } to prevent the frontend from routing to internal addresses. Requires deployment topology knowledge — no automated codemod. (PR #34532)
  • Deprecated typo fixesAzureBlobStorageIntergationAzureBlobStorageIntegration (@backstage/integration), domainEntityColumsdomainEntityColumns (@backstage/plugin-catalog), editSettingsTooptipeditSettingsTooltip (@backstage/plugin-home), 'heder''header' (@backstage/core-components TableFiltersClassKey). Old names still work; rename manually if used.
  • runCliModulerunCli — deprecated in @backstage/cli-node@0.3.3. API signature change (single module → collection), not a simple rename.
  • Neutral interaction token removal--bui-bg-neutral-{1..4}-{hover,pressed,disabled} have no direct replacement. The token rename codemod adds TODO markers; manual restyling required.
  • Kubernetes standalone page removal — the default /kubernetes page was removed; it was "added by mistake" and is not a code migration.

Ready to contribute?

Build your own codemod and share it with the community.