Uploaded image for project: 'Red Hat Internal Developer Platform'
  1. Red Hat Internal Developer Platform
  2. RHIDP-11417

Add @backstage-community/plugin-scaffolder-backend-module-azure-devops to extensions catalog (replaces @parfuemerie-douglas/scaffolder-backend-module-azure-repositories)

    • False
    • Hide

      None

      Show
      None
    • False
    • Hide
      = Plugin @parfuemerie-douglas/scaffolder-backend-module-azure-repositories replaced by @backstage-community/plugin-scaffolder-backend-module-azure-devops

      The @parfuemerie-douglas/scaffolder-backend-module-azure-repositories is incompatible with Backstage 1.45, and the project has not seen an update since 2024.

      A replacement plugin @backstage-community/plugin-scaffolder-backend-module-azure-devops will be included in the catalog in 1.9
      Show
      = Plugin @parfuemerie-douglas/scaffolder-backend-module-azure-repositories replaced by @backstage-community/plugin-scaffolder-backend-module-azure-devops The @parfuemerie-douglas/scaffolder-backend-module-azure-repositories is incompatible with Backstage 1.45, and the project has not seen an update since 2024. A replacement plugin @backstage-community/plugin-scaffolder-backend-module-azure-devops will be included in the catalog in 1.9

      Summary

      The dynamic plugin @parfuemerie-douglas/scaffolder-backend-module-azure-repositories (incompatible with BS 1.45 / project abandoned) has been removed from RHDH as it is no longer being maintained and is incompatible.

      There exists a community-maintained @backstage-community/plugin-scaffolder-backend-module-azure-devops from the backstage/community-plugins repository at https://github.com/backstage/community-plugins/tree/main/workspaces/azure-devops/plugins/scaffolder-backend-module-azure-devops which is almost completely compatible with the old plugin.

      See details below about breaking changes

      Reason for Change

      The Parfuemerie Douglas plugin is incompatible with RHDH 1.9+ due to:

      • Dependency on deprecated @backstage/backend-common package
      • Use of legacy /alpha imports from @backstage/plugin-scaffolder-node
      • Outdated createTemplateAction API (single type argument vs two)
      • Incompatible Logger type (Winston vs LoggerService)
      • Unmaintained - last commit was Aug 2024.

      The community plugin is actively maintained and compatible with current Backstage APIs.

      Action ID Changes

      Old Action (Parfuemerie) New Action (Community)
      azure:repo:clone azure:repository:clone
      azure:repo:push azure:repository:push
      azure:repo:pr azure:pr:create

      Parameter Differences

      Clone Action

      Parameter Old Plugin New Plugin Migration Notes
      remoteUrl No change
      branch No change
      targetPath No change
      server Remove - auth handled via integrations config
      token No change
      cloneDepth New optional feature

      Push Action

      Parameter Old Plugin New Plugin Migration Notes
      remoteUrl ✗ (implicit) Required BREAKING: Must add explicit remoteUrl parameter
      branch No change
      sourcePath No change
      gitCommitMessage No change
      gitAuthorName No change
      gitAuthorEmail No change
      token New optional parameter

      Pull Request Action

      Parameter Old Plugin New Plugin Migration Notes
      organization No change
      sourceBranch No change
      targetBranch No change
      title No change
      description No change
      repoId BREAKING: Renamed to repoName
      repoName BREAKING: Replaces repoId
      project No change
      supportsIterations No change
      server No change
      token No change
      autoComplete No change
      workItemId New optional feature

      Template Migration Steps

      1. Update Action IDs

      # Before
      - id: clone
        action: azure:repo:clone
      
      # After  
      - id: clone
        action: azure:repository:clone
      

      2. Update Push Action (Breaking Change)

      # Before - remoteUrl was implicit from previous clone
      - id: push
        action: azure:repo:push
        input:     branch: main
      
      # After - remoteUrl is now required
      - id: push
        action: azure:repository:push
        input:     remoteUrl: ${{ steps.clone.output.remoteUrl }}
          branch: main
      

      3. Update PR Action Parameter Name (Breaking Change)

      # Before
      - id: pr
        action: azure:repo:pr
        input:     repoId: ${{ parameters.repoId }}
          title: "New PR"
      
      # After - repoId renamed to repoName
      - id: pr
        action: azure:pr:create
        input:     repoName: ${{ parameters.repoId }}
          title: "New PR"
      

      Dynamic Plugin Package Reference

      Version Package
      Old (deprecated) oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/parfuemerie-douglas-scaffolder-backend-module-azure-repositories:*
      New (recommended) oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/backstage-community-plugin-scaffolder-backend-module-azure-devops:bs_1.45.3__0.18.0

      Acceptance Criteria

      • [ ] Document the deprecation of @parfuemerie-douglas/scaffolder-backend-module-azure-repositories
      • [ ] Document the replacement plugin @backstage-community/plugin-scaffolder-backend-module-azure-devops
      • [ ] Provide migration guide for existing templates
      • [ ] Update release notes with breaking changes
      • [ ] Remove the deprecated plugin from the overlay repository, at least remove it from the .txt lists of supported / tech-preview / dev-preview plugins, so that it wouldn't be a mandatory plugin anymore.

              dfestal David Festal
              dfestal David Festal
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated: