Virtual Happy Hour this month, Jun 28, we'll be getting a sneak preview at our soon to launch SaaS CMS!

Try our conversational search powered by Generative AI!

Area: Optimizely CMS
Applies to versions: Latest

Upgrading Optimizely

Recommended reading 
Note: This documentation is for the preview version of the upcoming release of CMS 12/Commerce 14/Search & Navigation 14. Features included here might not be complete, and might be changed before becoming available in the public release. This documentation is provided for evaluation purposes only.

The Optimizely framework is simply a set of NuGet packages that are part of a web application, which can be hosted locally or in the cloud. Optimizely is easily upgraded through Visual Studio and the NuGet package manager. New releases are available weekly, making it easy to keep your solutions up to date.

In this topic

Upgrading steps

Optimizely products consist of a main NuGet package with dependencies to other required packages. When updating, you only have to select the main package.

Optimizely release packages are published to the Optimizely NuGet feed. You can download and install release packages from here via the Package Manager or command prompt in Visual Studio

  1. If not already done, add the Optimizely NuGet feed to the NuGet package manager in Visual Studio, see Installing Optimizely updates how to do this.
  2. Right-click on References in your project, and select Manage NuGet Packages.
  3. Select Updates Episerver and click Update for the EPiServer.Cms.Web package. This adds the latest changes to your project.
  4. Compile your solution and start the website. If you have configured  DataAccessOptions.UpgradeDatabaseSchema to false, then you may see a system application exception caused by conflicting application and database schema versions, as each database schema version targets a specific Optimizely version. In that case you should use the EPiServer database cli tool to update the database.
  5. Reload the website, and verify that you can log in to the user interface.

Release management

Semantic versioning

Optimizely follows semantic versioning. Release packages are numbered with a three-digit series, for example 10.2.0.

When the first digit is bumped, the release is called a major version. Major versions are releases that have some breaking changes. And by breaking changes, we mean that a developer may have to change something in their code before they can upgrade. 

When the second digit is bumped, the release is called a minor version. A minor release has some new features. When the third digit is bumped, the release is a bugfix version and only contains bug fixes. It does not contain any new functionality.

Example of releases:

10.0.0 (breaking changes) -> 10.1.0 (contains same functionality as 10.0.0 plus some new functionality) -> 10.1.1 (contains same functionality as 10.1.0 plus some bug fixes) -> 10.2.0 (same functionality as 10.1.1 plus new functionality) -> ... -> 10.8.2 (contains all features and bug fixes from previous versions plus new bug fixes) -> 11.0.0 (breaking changes).

Continuous releases

Instead of doing large releases once or twice a year, Optimizely uses a continuous release process with short development and test cycles, and release of new versions every week or fortnight.

This way each release only contains a limited number of features and bug fixes, speeding up the time to market and making upgrading smoother. Each new release package is cumulative, which means that it contains all previous updates as well. 

As a developer, you decide how often you want to upgrade, but the more often you upgrade, the smoother it is.

Release information

  • Optimizely release notes
    The Optimizely development teams use a software tracking system to track work items. When a feature or bug fix is in test, it is  displayed in the Optimizely release notes feed with the status 'Soon to be released''. As soon as the feature or bug fix is approved and released, it is associated with a specific release and the status is changed to a release date. Use the release notes to see details about what is included in a specific package version for a product. You can also use the filters in the release notes feed to create a list of, for example, all new user interface features that have been released during the last six months.
  • Optimizely updates
    Once a week, all release packages that are ready for release are published to the Optimizely NuGet feed. At the same time, an update summarizing the weekly release information is published to the Optimizely release update feed. Use the weekly updates as an overview to browse updates and decide when to upgrade a solution.

Beta features

To quickly get access to new features that are being developed, you can install Beta features, see Beta features for more information on how to work with these.

Related topics

Next topic in Learning path

Do you find this information helpful? Please log in to provide feedback.

Last updated: Jul 02, 2021

Recommended reading