It lets you manage the version of the application that you are developing, and lets you easily switch between and publish different versions even while in production.
It is a helpful tool for developers as it allows them to continue working/improving on an application while maintaining a production copy.
Users can, for instance, continue to use version 1 of a published application while developers work on an unpublished version 2.
Figure 1: Version control in App
New Version - Create a new version of the current selected app version.
Publish - Set selected version as Published version.
Unpublish - Set selected published version to unpublished.
View - Switch to current selected version to work on its design.
Delete - Delete selected version.
By deleting a version of App, any form data created by the app will be retained to avoid loss of data. Technically, the AppDefinition object is being deleted.
Any running process instances will continue to persist and not to be deleted on deletion of App Version so that one can properly handle them later on. It is critical to note that upon deletion of App Version, forms once tied to the running process instances will cease to exists therefore it is advisable that one should plan on how to manage the running instances first before deleting the App Version.
We would like to advice users to branch the app to a new version whenever they would like to make changes to their app that is already rolled out to production. This would also ensure that existing process instances will continue to run without being affected by your uncommitted/incomplete development work.