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:
-
Design-time: Applications you edit and configure in Designer View.
-
Run-time: Applications your end-users End-users, also known as Express Users, are the individuals accessing an application through Express View. In most cases, end-users are the customers using the product. interact with in Express View.
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.
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:
Enabling Application Versioning for an Existing ApplicationTo enable Application Versioning for your existing applications:
|
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.
Below are some other considerations when using dependencies:
Application Settings
|
Module Builder
|
Workflow Builder
|
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. |
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.
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.
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:
|
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.
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