Application Versioning

Estimated Reading Time:  8 minutes

TIP  This Unqork feature is currently part of an early-access program. Contact your Unqork representative to learn more.

Overview

Application Versioning is an important process in software development. Because many team members contribute to the creation of an application, versioning ensures team members are building and testing the correct application version at the correct environment level. Application Versioning also lets you easily add enhancements, test functionality, troubleshoot issues, and roll back an application to a working version. When enabled, you can create unique, uneditable copies of the application at any time, retain versions for stability, and view previous versions.

What You'll Learn

In this article, you'll learn about Application Versioning in Unqork, how to enable it, create application versions, set dependencies, and view version history.

Design Versus Run-Time Versions

Currently, when you make changes to an application, they display automatically in Express View Express View is how your end-user views you application. Express View also lets you preview your applications to test your configuration and view the styling. This is also the view your end-users will see when interacting with your application. After configuring a module, click Preview in the Module Builder to interact with the module in Express View.. Application Versioning introduces a distinct separation between Design-time and Run-time applications. These distinctions are the following:

This separation lets you select any of your Run-time application versions and make it the active one. An active application version are those that you promote to your Production environment so your end-users can interact with it.

A static image displays how any application version can be selected as the active one.

Enabling Application Versioning

You can enable Application Versioning when creating a new application, or from the application Settings of an existing one.

IMPORTANT  Once Application Versioning is enabled, you cannot disable it.

Enabling Application Versioning for a New Application

To enable Application Versioning when creating a new application:

1. Navigate to your workspace.
2. At the top right of the page, click + Create New.
3. Complete the App Details section of the Create App modal A modal is a window that appears on top of the content you are currently viewing..
4. Select the Data Settings tab.
5. Set Enable Application Versioning to (ON).
6. Click Create.

Enabling Application Versioning for an Existing Application

To enable Application Versioning for your existing applications:

1. Navigate to your application.
2. Click Manage ▾.
3. Click Settings.
4. Select the Data Settings tab.
5. Set Enable Application Versioning to (ON).
6. Click Create.

A static image displaying the Enable Application Versioning toggle set to ON.

Application Dependencies

When enabling Application Versioning in an existing application, modules must not be available to the application as shared elements. All shared modules must be unshared and moved to a new application that acts as the sole owner of those modules. You can think of this new application as the child application. The child application can then be a dependency for the main (or parent) application, so it can access the child application's modules. Repeat this process until a child application exists without any dependencies. Once achieved, the lowest child application in the dependency tree can be versioned and act as a dependency by the parent application.

This model ensures that a given element executing in an application runs as the same version each time. For example, consider the image below. In this example, Applications A, B, C, and D are linked. So, Application A can only access elements of Application B. Application B can only access the elements of Application C. And, Application C can only access the elements of Application D.

A static image displaying the application linking model.

Below are some other considerations when using dependencies:

Application Settings

To use a header, footer, login, or logout module in your application, they must be dependencies in your versioned application.

Module Builder

Panel and Plug-In components allow references to other modules. If you want to import or execute a module from a dependency, the relationship must be created.

Workflow Builder

Only modules from the parent application or its dependencies can be used in a Task node. You can only hand-off workflows from dependency applications. If no relationship exists, modules are not available to select from Task and Handoff nodes.

Manage Dependencies

Once your child module is set, you can use it as a dependency in your parent module. To add or manage dependencies, you'll access the Manage Dependencies page of your parent application.

IMPORTANT  Both parent and child applications must have Application Versioning enabled, so you can select a child dependency in your parent application.

To add and manage dependencies for a parent application:

1. Access your parent application.
2. At the top right of the page, click ··· (ellipsis).
3. Select Manage Dependencies. You'll navigate to the Manage Dependencies page.

A static image displaying the ellipsis drop-down and selection of Manage Dependencies at the Application level of the parent application.

If you already have dependencies added, you'll see a grid displaying the following information and attributes for those dependencies:

Attribute Description

Name

The name of the dependency application.

Last Modified

The date and time the dependency application was last modified.

Version

The selected version of the dependency application.

Actions

This column displays the available actions you can take on the dependency application.

View App

Lets you view the dependency application at the Application level.

Update Version

Lets you update which version of the dependency application you want to use.

Remove

Removes the dependency application from the parent application.

Adding a Dependency

You'll use the Manage Dependencies page to add one or more dependencies to your parent application. To add a dependency, click + Add Dependencies at the top right of the page. The Add Dependencies modal A modal is a window that appears on top of the content you are currently viewing. displays the application name and ID for all available dependency applications in your environment.

IMPORTANT  Only applications with Application Versioning enabled display in this modal.

A static image displaying the Add Dependencies modal with all available dependency applications in your environment.

To select a dependency and its version:

1. Click Select for the dependency you want to add.

IMPORTANT  You can only select one dependency at a time.

2. Select the version of the dependency application you want to use.

NOTE  The most recent version is selected by default.

A static image displaying the selection of a dependency and version in the Add Dependencies modal.

3. Click Confirm Add Dependency. You'll return to the Manage Dependencies page.

Repeat the process to add more dependencies to your parent application.

Creating an Application Version

After enabling Application Versioning, the initial version is 0.0.0 by default. After creating or updating modules or workflows in your application, you can create a new version while retaining the original one. Not only can you create a specific type of version, but you can also provide a description for why it was created.

At the Application level of your versioned application, click Create Application Version at the top of the page. The Create Application Version modal A modal is a window that appears on top of the content you are currently viewing. displays so you can enter information about the new version. Below are the follow fields you'll use to make your new version:

Attribute Description

Review Elements

This section only displays if you created a previous version(s). Expand the panels to display the changes made since the previous version.

Latest Version Number

Displays the previous version number.

New Version Type

To provide software versioning standardization for each of your versions, our Application Versioning tool lets you create the following version types:

  • Major: Use this version type for large improvements and changes that drastically affect your application. For example, adding new modules. Major version types follow a default numbering scheme that only affects the first digit of the version number. For example, when you create a major version from a 1.0.0 version, the new version is 2.0.0.

  • Minor: Use this version type for small improvements or fixes that do not drastically affect your application. For example, updating styles or improving end-user experience. Minor version types follow a default numbering scheme that only affects the second digit of the version number. For example, when you create a minor version from a 1.0.0 version, the new version is 1.1.0.

  • Patch: Use this version type when making urgent changes that drastically affect your application. For example, fixing a Plug-In component that is no longer making an API call. Patch version types follow a default numbering scheme that only affects the last digit of the version number. For example, when you create a patch version from a 1.0.0 version, the new version is 1.0.1.

  • Custom: Major, minor, and patch version types follow a default numbering scheme that cannot be altered. Doing so ensures a standardized numbering convention to avoid confusion. However, if your organization prefers a different versioning system, use this option to create your own version numbers.

New Version Number

The new default version number created based on the version type you selected.

Version Notes

Enter version notes to clarify what's included in this new version.

Cancel

Closes the Create Application Version modal without creating a new version.

Create Version

Creates the new version based on the information you included.

A static image displaying the Create Application Version modal and its attributes for creating a new application version.

Viewing Application History

After creating a new application version, you can view details about it and previous versions. At the Application level of your versioned application, click View Version History at the top of the page. The Application Version History modal displays information about each of your application versions.

A static image displaying the Application Version History modal and the latest version expanded to see its details.

After opening the modal, expand a version panel to display its information. The table below details the information you should expect for your application version:

Attribute Description

Version Number

The version number associated with that application version.

Latest Version

This icon displays only if this version is the most recent application one created.

Created

The date and time the version was created.

Application Elements

The application elements that exist in the application version.

Type

The type of application element. For example, Module or Workflow.

Last Modified

The date and time the application element was last modified.

View

Click the View button for an application element to view its revision history.

Best Practices

The following best practices help you to understand the versioning processes for new applications in your Staging environment and those in your Production environment.

Creating Your First Application Version

It's important to always create application versions in your Staging environment. That way, you can take advantage of Unqork's environment levels to standardize an efficient software development life cycle. After configuring an application in Staging, create a version that you can test in your UAT and QA environments. Then, promote it to Production.

Below is a general scenario illustrating the best practices when using Application Versioning with environment promotions:

Making Changes to an Existing Production Release

When you update an application that already exists in your Production environment, you must always begin with that version in Staging. Application Versioning makes it easy to create an updated version of the application and retain the older versions simultaneously. Create a new version of the application in Staging and follow the normal promotion processes.

Below is a general scenario illustrating the best practices for updating an application and promoting it:

Styles and Managed Assets

Styles and managed assets are stored in an S3 S3 (Simple Storage Service) Buckets are public cloud storage containers that act as file folders and object storage. They can be accessed by the S3 Bucket's URL. bucket. Each time you create a new application version, a new S3 bucket is created to store styles and managed assets for that version. That way, when you use a different application version, the correct styles and managed assets are used. Only the styles and managed assets that are part of the application are versioned. If the application uses styles and managed assets outside the application version, they will not be versioned.

Resources