User Story Bundle - Migration from Pilot to GA Version

Updated 2 weeks ago by Copado Solutions

Introduction

Some clients had the opportunity to use a pilot version of the bundle. While names and labels might be similar, the GA version of User Story Bundles is a managed package, and therefore independent of the pilot version. 

Similarities and Differences Between Pilot and GA

What stayed
  • USB feature branch creation involves a commit from the org to which the USB is linked.
  • Deployment tasks are considered
What changed
  • Data model is now linked with packages and package versions
  • Canceling a bundle is initiated by changing the status picklist value
  • Full Profile/Permission Set and Destructive Change commits are considered
  • Limitations around the number of components should be removed
  • Added UI and validations
  • USB is a User Story with the Utility record type

Migrating Bundles from Pilot to GA version

Option 1: Phase out old ones
  • Existing bundles can be moved across the pipeline and phased out
  • New bundles are created with the GA package version

This option might be a good fit for smaller teams where duplication of certain UI elements such as the “Is Bundle” checkbox does not require training on a large user base.

Here is a list of pilot metadata and suggestions on what to rename while phasing out pilot bundles:

Type

Name

Parent Object

What to do during Cutover?

Button or Link

User_Story_Bundle

User Story

Rename Label: add "(Pilot)"

Flow Definition

Update_child_user_stories_with_bundle_status

Nothing

Flow Definition

Cancel_a_Bundle

Nothing

Permission Set

Copado_User_Story_Bundle

Only assign to those who need to have access to phased out pilot bundles. Rename Label: add "(Pilot)"

Apex Class

CUSB_TriggerHandler

Nothing

Custom Field

Is Bundle

User Story

Rename Label: add "(Pilot)"

Custom Field

Bundle User Story

User Story

Rename Label: add "(Pilot)"

Apex Class

CUSB_UserStoryBundleController

Nothing

Apex Class

CUSB_TestUserStoryBundle

Nothing

Apex Class

CUSB_TestUserStoryBundleTriggerHelper

Nothing

Apex Class

CUSB_TestTriggerHandler

Nothing

Visualforce Component

CUSB_EmailTemplateHeader

Nothing

Apex Trigger

CUSB_UserStoryBundleTrigger

User Story

Nothing

Visualforce Component

CUSB_EmailTemplateLegal

Nothing

Visualforce Component

CUSB_EmailTemplateFooter

Nothing

Apex Class

CUSB_EmailError

Nothing

Apex Class

CUSB_TestEmailError

Nothing

Visualforce Page

CUSB_UserStoryBundle

Nothing

Visualforce Component

CUSB_ErrorEmailTemplate

Nothing

Visualforce Component

CUSB_ErrorEmailTemplateContainer

Nothing

Action

Cancel_Bundle

User Story

Rename Label: add "(Pilot)"

Classic Email Template Folder

Copado User Story Bundle

Nothing

Apex Class

CUSB_UserStoryBundleTriggerHelper

Nothing

Apex Class

CUSB_UserStoryBundleQueueable

Nothing

Apex Class

CUSB_UserStoryBundleTriggerHandler

Nothing

Classic Email Template

CopadoUserStoryBundleEmailError

Nothing

Custom Field

CUSB Source Deployment Task

Deployment Task

Rename Label: add "(Pilot)"

Validation Rule

Cancelling_a_child_user_story_bundled

User Story

Deactivate if it is conflicting with new bundle

Option 2: Re-create bundles
  • Create a new GA Bundle based on the original source stories for the pilot bundle as well as the pilot bundle itself.
  • This will remove the pilot bundle from the pipeline

While this option is easy and a good fit for many teams it does not mirror the history of promotions of the pilot bundle on the new one. The pilot bundle feature branch is also not merged into the new bundle branch. In addition, the amount of effort to transition scales with the amount of “active” pilot bundles a client has. 

Option 3: Convert the pilot bundle story

There is a possibility to convert the existing pilot bundle to a GA bundle by creating the package, package version, and bundled story, setting the proper field values, and matching the commit attachments on the package version.

We are investigating how this process could be automated.

What to do after migration?

Once the migration is complete and no pilot bundles are used the pilot package can be uninstalled. Please be aware that once you uninstall a package, all related records are deleted, meaning that your pilot bundle story records will be deleted. However, their feature branches will continue to be part of your history.


How did we do?