Developing applications, merging branches, and deploying changes in a distributed development environment
When you work in a distributed development environment, you generally work in branches and merge them to incorporate changes into the base application. The implementation of some of your tasks depends on your specific configuration, such as which automation server you are using.
In general, working in a distributed development environment consists of the following tasks and methods:
On the remote development system, build a team application layer that is built on top of the main production application. The team application layer contains branches, tests, and other development rulesets that do not go into the production application. For more information, see the Pega Community Using multiple built-on applications.
Lock the application ruleset by performing the following steps:
In the header of Dev Studio, click the name of your application, and then click Definition.
In the Edit Application rule form, in the Application rulesets section, click the Open icon for the ruleset that you want to lock.
On the Edit Ruleset rule form, click Lock and Save.
In the Lock Ruleset Version dialog box, in the Password field, enter the password that locks the ruleset.
In the Confirm Password field, reenter the password to confirm it.
Click Submit.
Save the Edit Ruleset rule form.
Save the Edit Application rule form.
Create a branch of your production ruleset in the team application. For more information, see Adding branches to your application.
Work in branches on remote development systems.
Use release toggles to disable features that are not available for general use. For more information, see Toggling features on and off.
Create a review so that other developers can review branch content. For more information, see Creating a branch review.
Conduct developer reviews to review the content and quality of the branch. For more information, see Reviewing branches.
Lock the branch. For more information, see Locking a branch.
Migrate branches to the source development system and then merge and validate the branches. Depending on your configuration, you can either do both steps at the same time or separately. Do one of the following tasks:
To migrate and merge branches at the same time, perform step 10.
To migrate and merge branches separately, perform steps 11 - 13.
To migrate and merge branches at the same time, do one of the following actions:
- Use Deployment Manager to create pipelines and start a deployment. For more information, see Migrating and merging branches by using Deployment Manager.
- Configure third-party automation servers to automatically merge branches after you publish branches to the source development system. For more information, see Migrating and merging branches with third-party automation servers.
To migrate a branch and then separately merge and validate the branch, migrate branches to the source development system by doing one of the following tasks:
- Publish a branch to the source development system. For more information, see Publishing a branch to a repository.
- Use prpcUtils to automatically package and migrate the application. For more information, see Automatically deploying applications with prpcUtils and Jenkins.
- Manually migrate the application package by packaging and exporting it. For more information, see Exporting a branch to the source development system.
Merge and validate branches by using the Merge Branches wizard. For more information, see Merging branches into target rulesets.
Migrate the merged rules back to the remote development systems by doing one of the following tasks:
- Rebase the development application to obtain the latest ruleset versions from the source development system. For more information, see Understanding rule rebasing.
- Use prpcServiceUtils to export a product archive of your application and import it to the remote development systems. For more information, see Automatically deploying applications with prpcUtils and Jenkins.
- Manually migrate the application by exporting it from the development source system and then importing it into the remote development system. For information, see Importing a branch into remote development systems after merging.
- Migrating and merging branches by using Deployment Manager
If you are using Deployment Manager as your automation server, you can use it to merge branches on the source development system. You must configure certain settings on the source development system before you can create pipelines that model pre-merge criteria and can merge branches.
- Migrating and merging branches with third-party automation servers
If you are using a third-party automation server such as Jenkins, you can automatically start a branch merge after you publish the branch to the development source system.
- Publishing a branch to the source development system
You can migrate a branch to the source development system by publishing a branch to it through a Pega repository.
- Exporting a branch to the source development system
In a distributed development environment, developers migrate branches to a source development system on which they then merge the branches. You can manually migrate a branch to the source development system by packaging the branch on your remote development system and then exporting it to the source development system.
- Importing a branch into remote development systems after merging
After you merge branches on the source development system, manually migrate the merged branches back to the remote development system by packaging and then importing it.
Previous topic Understanding the components of a distributed development environment Next topic Migrating and merging branches by using Deployment Manager