Dev Guide
Dev GuideUser GuideGitHubNuGetDevCommunityDoc feedbackLog In

Update your app version

Optimizely Connect Platform (OCP) follows semantic versioning specification. Learn how to update the version if your OCP app.

OCP app release types

Optimizely runs four types of apps on Optimizely Connect Platform (OCP), all defined by the naming convention and the use of tags.

  • Released apps – Apps released to production are available in the Optimizely Data Platform (ODP) App Directory.
  • Private apps – Apps that are released to production, but their availability in the ODP App Directory is limited to one or more accounts.
  • Beta apps – Apps that are not released to production but can be shared via private URLs for testing.
  • Dev apps – Apps that are not released to production. These apps cannot be shared and are limited to running in the developer's associated ODP account.

This tutorial explains a dev app. Below is a brief introduction to the app naming convention in OCP .

Version control conventions

OCP follows the Semantic Versioning (semver) specification of version management.

Versioning standards

All OCP apps follow the semver.org standards. Given a version number MAJOR.MINOR.PATCH, increment:

  1. The MAJOR version when you make an incompatible API change
  2. The MINOR version when you add functionality in a backward-compatible manner
  3. The PATCH version when you make backward-compatible bug fixes

OCP also supports two types of pre-release tags: -beta and -dev. Any app with a pre-release tag is not globally visible inside the app directory and is intended to serve as a work in progress.

Your pre-release app

The versioning of your OCP app is in the following format:[APPNAME]@[APPVERSION].

In the example from Initialize your first app, the app's name and version is [email protected].

📘

Note

MAJOR.MINOR.PATCH-dev.VERSION

  • -dev identifies your build as pre-release
  • .VERSION is the pre-release incrementor

The purpose of pre-release versioning

Pre-release versioning allows you to work on a single train of code that is consistently named MAJOR.MINOR.PATCH, where you increment the pre-release tag as necessary until you are ready for your production release.

For example, if your next OCP app release is 2.1.9. During your development work, you end up with four pre-release versions before you are ready for the final release. Your versioning would look like this:

  • 2.1.9-dev.1 – This is your first pre-release version
  • 2.1.9_dev.2 – This is your second pre-release version
  • 2.1.9_dev.3 – This is your third pre-release version
  • 2.1.9_dev.4 – This is your fourth pre-release version
  • 2.1.9 - This is your release version

The pre-release tag and versioning allows you to modify your release without incrementing the MAJOR, MINOR or PATCH numbers. Your release ID remains consistent while you work on your code, only incrementing the pre-release tag as you work.

The purpose of the -dev pre-release tag in OCP

Developers can only publish -dev pre-release tags. The -dev tag allows you to work in a sandbox environment without formal code review and without the ability to impact other apps, users, and accounts. These apps are hidden from the ODP App Directory, so other users cannot see or use your apps.

Update your app version

  1. Update the app.yml file for your app on your local machine. Increment the pre-release version to .2 and save your changes. In the example from Initialize your first app:

  2. In the OCP CLI, run the following command to validate, package, upload, and build your .2 version app to prepare for publication:

    ocp app prepare
    
  3. Once complete, publish your new app. In this example, [APPVERSION] is [email protected]:

    ocp directory publish [APPVERSION]
    
  4. Your app running in your ODP production account is automatically upgraded to the new app version. You can see this by navigating to the ODP App Directory and clicking the app tile. The current version of your app displays: