Manage Application Versions

Managing different application versions can be tricky! This page provides some high-level guidance to help you manage your application versions.

Table of Contents:

View App Changes Between Versions

This feature allows you to see changes that have been made between different versions of your application. This allows you to verify the changes you have made before releasing a new version of your application, and to efficiently develop test plans for running QA, by focusing your plan on things that have changed.

Overview

View Changes button is available on Application Releases page. The View Changes page allows you to see what has changed in every menu, form and question in your application. Using the dropdown at the top of the page, you can choose any two versions to compare, and the app changes view will show you what has changed between them.

The left pane shows the first app version you have selected, or the "base" on which comparisons will be made. The right pane shows the second version you have selected. 

Items that were added between the first version and the second version are highlighted in Green in the right pane and have a + next to them.

Items that were removed between the first version and the second version are highlighted in Red in the left pane and have a - next to them.

Items that have changed between the first version and the second version are highlighted in Yellow and have an arrow icon next to them.

  • Addition

  • Deletion

  • Addition, Deletion and Changes to:

    • Name

    • Comment

    • Display condition

Questions

  • Addition and Deletion of the question itself

  • Addition, Deletion and Changes to:

    • Names

      • Including changes to any translation

    • Comments

    • Calculations (for hidden value questions)

    • Display Conditions

    • Validation Conditions

    • Comments

    • Default Values

    • Options

    • Case property loads

    • Case property saves

Workflows

Seeing what has changed before making a new version or releasing a new version.

Before releasing a new version of your application to users, it is good practice to check all the changes you have made for consistency and accuracy. You can do this with the app changes view. Set the "base" version to the previous released version, and set the current build to be the version you are comparing to. This will show you all the changes you are about to release. Check to make sure all of these changes are known and have been tested.

Squashing bugs

You can narrow down which change might have introduced a bug by using the app changes view. You should first test various versions of your application to narrow the bug down to a small range of versions. Then select the last known "good" version as the "base" compare version. Select a "buggy" version to compare it with. You will see all the changes between these two versions. It is only necessary to look at these changes to find the bug, as nothing else in the app will have changed.

Efficient QA plan writing

While writing QA plans, you can narrow down the area you need to test by using the app changes view. With your knowledge of the application in general, and the changes that have been made since the last QA pass, you can decide to only test the parts of the application that have changed, instead of needing to test the whole app.

Control Application Versions During Updates

NOTE: This page discusses how to control the version of a CommCare app that is requested when conducting an app update. For an overview of app updates in CommCare, see https://dimagi.atlassian.net/wiki/x/bzPKfw

What are my options?

By default, app updates in CommCare will retrieve the latest starred version of your app on HQ. However, there are 2 alternatives to this behavior that are available:

  1. "Latest version" (available starting in CommCare 2.30) --  This setting will tell CommCare to retrieve the most recent build of an app, even if it is un-starred.

  2. "Latest saved state" (available starting in CommCare 2.34) – This setting will tell CommCare to retrieve the current working state of your app, even if no build has been created for it yet. 

The update target setting is configured on a per-app, per-device basis, with the goal of allowing app builders and other project admins to use one of these alternative settings, while leaving normal CommCare users on the default setting, so that they only receive starred app versions.

How can I configure my update target?

In CommCare 2.34 and above: There are 2 locations in CommCare where you can set your app's update target: either from the main Settings screen of the app (the same place where the "Enable Updating to Un-Starred Builds" setting used to be), or from the options menu of the Update screen. Screenshots of both locations can be seen below.

**IMPORTANT: In CommCare 2.36 and above – In order for the "Update Options" item to be visible in these 2 locations, you must first take the following steps:

  1. Enable Developer Options on your device (instructions for doing so can be found at https://dimagi.atlassian.net/wiki/spaces/commcarepublic/pages/2143950759).

  2. Select the "Show Update Options Item" setting, and then choose "Enabled”.

From the settings screen:

From the update screen: