Skip to content

feat(x2a): RHDH 1.10 support#3321

Draft
mareklibra wants to merge 5 commits into
redhat-developer:mainfrom
mareklibra:localRhdhExport
Draft

feat(x2a): RHDH 1.10 support#3321
mareklibra wants to merge 5 commits into
redhat-developer:mainfrom
mareklibra:localRhdhExport

Conversation

@mareklibra

@mareklibra mareklibra commented Jun 7, 2026

Copy link
Copy Markdown
Member

Fixes: FLPATH-4033

Upgrade x2a workspace to Backstage 1.49.4 for RHDH 1.10
Bump all @backstage/* dependencies from 1.45.3 to 1.49.4 manifest
levels across all plugins (x2a, x2a-backend, x2a-common, x2a-node,
x2a-mcp-extras, scaffolder-backend-module-x2a) and app packages.
Key changes:

  • Add dual frontend architecture: rename packages/app to
    packages/app-legacy (legacy frontend) and create new packages/app
    using the New Frontend System (NFS) with PageBlueprint,
    NavContentBlueprint, and TranslationBlueprint
  • Add plugins/x2a/src/alpha.tsx with NFS plugin definition
    (createFrontendPlugin, x2aTranslationsModule)
  • Integrate RHDH theme, scaffolder, config-driven sign-in, and
    sidebar navigation into the NFS app
  • Replace deprecated scaffolder-backend-module-bitbucket with
    scaffolder-backend-module-bitbucket-cloud
  • Remove variant="gridItem" props per Backstage 1.49 breaking changes
  • Remove x2a-dcr references from the app (RHDH 1.9-only workaround)
  • Add Jest 30 + cli-defaults devDependencies (Backstage 1.46+ change)
  • Add resolutions for @backstage/frontend-plugin-api, plugin-catalog,
    plugin-scaffolder, and zod to fix schema/type conflicts
  • Update CatalogService mock with new required methods
    (queryLocations, streamLocations, updateLocation)
  • Refactor DownloadStaticPublicFile to use a mockable navigateTo
    helper for Jest 30 jsdom compatibility
  • Add app.extensions config for NFS language settings

TODO:

@mareklibra mareklibra requested review from a team, elai-shalev and eloycoto as code owners June 7, 2026 20:56
@mareklibra mareklibra marked this pull request as draft June 7, 2026 20:56
@rhdh-gh-app

rhdh-gh-app Bot commented Jun 7, 2026

Copy link
Copy Markdown

Missing Changesets

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

  • @red-hat-developer-hub/backstage-plugin-scaffolder-backend-module-x2a
  • @red-hat-developer-hub/backstage-plugin-x2a-backend
  • @red-hat-developer-hub/backstage-plugin-x2a-common
  • @red-hat-developer-hub/backstage-plugin-x2a-dcr
  • @red-hat-developer-hub/backstage-plugin-x2a-mcp-extras
  • @red-hat-developer-hub/backstage-plugin-x2a-node
  • @red-hat-developer-hub/backstage-plugin-x2a

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

Changed Packages

Package Name Package Path Changeset Bump Current Version
app-legacy workspaces/x2a/packages/app-legacy none v0.0.0
app workspaces/x2a/packages/app none v0.0.0
backend workspaces/x2a/packages/backend none v0.0.0
@red-hat-developer-hub/backstage-plugin-scaffolder-backend-module-x2a workspaces/x2a/plugins/scaffolder-backend-module-x2a none v0.4.1
@red-hat-developer-hub/backstage-plugin-x2a-backend workspaces/x2a/plugins/x2a-backend none v1.6.0
@red-hat-developer-hub/backstage-plugin-x2a-common workspaces/x2a/plugins/x2a-common none v1.4.0
@red-hat-developer-hub/backstage-plugin-x2a-dcr workspaces/x2a/plugins/x2a-dcr none v0.2.0
@red-hat-developer-hub/backstage-plugin-x2a-mcp-extras workspaces/x2a/plugins/x2a-mcp-extras none v0.3.0
@red-hat-developer-hub/backstage-plugin-x2a-node workspaces/x2a/plugins/x2a-node none v0.4.0
@red-hat-developer-hub/backstage-plugin-x2a workspaces/x2a/plugins/x2a none v1.4.0

url: '${AAP_URL:-https://aap.example.com}',
orgName: '${AAP_ORG_NAME:-MyOrganization}',
username: '${AAP_USERNAME}',
password: '${AAP_PASSWORD}',
Bump all @backstage/* dependencies from 1.45.3 to 1.49.4 manifest
levels across all plugins (x2a, x2a-backend, x2a-common, x2a-node,
x2a-mcp-extras, scaffolder-backend-module-x2a) and app packages.
Key changes:
- Add dual frontend architecture: rename packages/app to
  packages/app-legacy (legacy frontend) and create new packages/app
  using the New Frontend System (NFS) with PageBlueprint,
  NavContentBlueprint, and TranslationBlueprint
- Add plugins/x2a/src/alpha.tsx with NFS plugin definition
  (createFrontendPlugin, x2aTranslationsModule)
- Integrate RHDH theme, scaffolder, config-driven sign-in, and
  sidebar navigation into the NFS app
- Replace deprecated scaffolder-backend-module-bitbucket with
  scaffolder-backend-module-bitbucket-cloud
- Remove variant="gridItem" props per Backstage 1.49 breaking changes
- Remove x2a-dcr references from the app (RHDH 1.9-only workaround)
- Add Jest 30 + cli-defaults devDependencies (Backstage 1.46+ change)
- Add resolutions for @backstage/frontend-plugin-api, plugin-catalog,
  plugin-scaffolder, and zod to fix schema/type conflicts
- Update CatalogService mock with new required methods
  (queryLocations, streamLocations, updateLocation)
- Refactor DownloadStaticPublicFile to use a mockable navigateTo
  helper for Jest 30 jsdom compatibility
- Add app.extensions config for NFS language settings
- Add dist-dynamic to eslint ignorePatterns in all plugin configs
  (x2a, x2a-backend, x2a-mcp-extras, scaffolder-backend-module-x2a)

Signed-off-by: Marek Libra <marek.libra@gmail.com>
Signed-off-by: Marek Libra <marek.libra@gmail.com>
@sonarqubecloud

sonarqubecloud Bot commented Jun 9, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
3 Security Hotspots
C Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@mareklibra

Copy link
Copy Markdown
Member Author

The plugins and conversions can be executed in RHDH 1.10 and OCP:

image

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.

2 participants