HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

Upgrade CMS

Describes how to upgrade your Optimizely Content Management System (CMS) solution through Visual Studio and the NuGet package manager.

The Optimizely framework is a set of NuGet packages part of a web application, which you can host locally or in the cloud. You upgrade Optimizely through Visual Studio and the NuGet package manager. Releases are available weekly to keep your solutions up to date.

📘

Note

Looking to upgrade to ASP.NET Core and CMS 12? See Why upgrade to Optimizely Content Management System (CMS 12)?.

Upgrade 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 through the Package Manager or command prompt in Visual Studio.

  1. If not done, add the Optimizely NuGet feed to the NuGet Package Manager in Visual Studio; see Install a sample site.
  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 to add the latest changes to your project.
  4. Compile your solution and start the website. Conflicting application and database schema versions may cause a system application exception, as each database schema version targets a specific Optimizely version.
  5. In the Visual Studio Package Manager Console, run the command update-epidatabase.
  6. Reload the website and verify that you can access the user interface.

Release management

Semantic versioning

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

  • A major release version occurs when Optimizely increments the first digit. Major versions are releases with breaking changes, meaning developers may have to change something in their code before upgrading.
  • A minor release version occurs when Optimizely increments the second digit. A minor release has some new features.
  • A bugfix major release version occurs when Optimizely increments the third digit and only contains bug fixes. It does not contain any new functionality.

Example of releases

  • 10.0.0 (breaking changes)
  • 10.1.0 (contains the same functionality as 10.0.0 plus some new functionality)
  • 10.1.1 (contains the 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 releasing large versions once or twice a year, Optimizely uses a continuous release process with short development and test cycles and new versions released every week or fortnight.

This way, each release contains only a limited number of features and bug fixes, speeding up the time spent on the market and making upgrades smoother. Each release package is cumulative, which means that it also contains all previous updates.

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

How frequently should you upgrade?

The Optimizely platform's upgrade frequency is entirely up to you and is probably driven by specific features and fixes that you want or need. Update packages are cumulative, but the longer you wait between upgrades, the more likely it is that bigger changes were introduced, which may result in a larger upgrade project.

If you find and verify an issue in the Optimizely platform, you should do the following:

  1. Upgrade your staging environment to the latest minor version within the same major version to see if a later minor version resolves the issue.
  2. If a later minor version does not resolve the issue, go to the release notes and see if a later major version resolved the issue. If so, read the change log up to that version and consider whether an upgrade is reasonable. Major releases often have their documentation, such as Upgrade to Optimizely Content Management System (CMS 12), for example.
  3. If you consider the upgrade too big or and update did not resolve the issue, contact Support for a possible workaround.
  4. If Support does not have a workaround, you may request a patch version within your current major version. The Optimizely development team triages your request with the following criteria for approving or declining a patch version:
    1. Actual impact for the customer.
    2. Identified regression issues for the patch. If Optimizely declines the patch version, it treats the issue as a bug and prioritizes it for the next update.

See also the blog Continuous Release Process by Per Ivansson on June 19, 2014.

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 displays in the Optimizely release notes feed with the status 'Soon to be released''. When the feature or bug fix is approved and released, it is associated with a specific release, and the status changes to a release date. Use the release notes to see details about what Optimizely includes 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, user interface features that were released during the last six months.
  • Optimizely updates
    Approximately once a week, Optimizely publishes release packages to the Optimizely NuGet feed and an update to the Optimizely release update feed summarizing the weekly release information. Use the weekly updates as an overview to review updates and decide when to upgrade a solution.

Beta features

To get access to developing features, you can install Beta features; see Beta features for information on how to work with these.

Related topics