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 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.
- On 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 Creating branches.
- Work in branches on remote development systems.
- Optional: Use release toggles to disable features that are not available for general use. For more information, see Toggling features on and off.
- Optional: Create a review so that other developers can review branch content. For more information, see Creating a branch review.
- Optional: 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.
- 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, do the following steps:
- Migrate branches to the source development system by doing one of the following actions:
- 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 source development system and then importing it into the remote development system. For information, see Importing a branch into remote development systems after merging.