Skip to main content

Release management

This section of the console allows you to manage your app's releases, which are based on the Release Channels model. The Release Management Tab

What are Release Channels

The Release Channels model allows you to deploy of multiple different versions of your app with minimal overhead for both developers and users. The public channel (used when the channel name is left blank) serves as the public version and users will default to this channel. The developer's channel (used when the channel name is Developers), serves as a developers version and is designed to allow developers to get new releases before they reach the public channel. The developers console also allows you to create and manage your app's own release channels, or App Channels for short.

App Channel features

App Channels allow you to control several aspects of your deployment:

  • Phasing (Rollout)—release new updates to a percentage of users on a channel at a time.
  • Automatic deployment—no need for update checks, manual updating, etc. If it's set in the console, Overwolf will take care of the rest.
  • One place for everything—for every version in a channel, you can view download counts, active user counts, phasing history, internal and external changelogs, and download the *.opk file.
  • Automatic version diffs—maintain version diff files for a few versions on every channel. This significantly reduces the file size for app updates.
note

App channels can take a few minutes from the moment a version was rolled out until the version will be available for the selected clients.

The Production and Testing Environments

For an Overwolf app, channels are split into two groups, that operate similarly:

Changing App Channels

Your testers/users can get the custom app for a specific version using the:

  1. Custom download link—get the custom download link from the dev console.
    • For the Production channel, this will be the app's unique download link.
    • For Testing channels, this will be the channel's unique download link.
  2. API - Use the Overwolf API to change to a specific app channel. You can integrate this feature into your app. For example, you can display a combo box that enables your app users to change the channel from the app's UI.

Apply the channel change

After downloading the custom app version or changing the app channel you must apply the change. Use ONE of the following methods:

  1. Restart the Overwolf client.
  2. Wait up to four hours for the auto-update process to initiate.
  3. Update the app through the API and relaunch it, using the recommended extension update flow.

Phasing (Rollout)

Phasing allows you to gradually deploy new app versions to their channels.

This works by having up to two active versions of the app per channel.

  • Live—a fully rolled out version that users will default to. For test channels, if there is no live version, the production channel's live version will be used instead.
  • Phased—a partially rolled out version. This version only exists during phasing of a new version.

Users subscribed to the channel will then be chosen at random to download the phased version.

The portion of users chosen corresponds to the phasing percentage for the version. As the phasing increases, new users will be chosen to download the version. The following conditions apply to phasing:

  • Phasing can't be decreased, only increased.
  • Phasing can be Halted so that no new downloads of the version will occur, even to users that were selected for this phase. You can Resume phasing and return it to acting the way that it should.
  • Rolling out a new version replaces the current phasing version (if it exists).
    • When this happens, the old phased version's rollout will be considered Halted.
    • Users from the previous phased version remain on that version and will not be rolled back.
    • New users from the new version and onwards will only be split between the previous version and the new phased version.
    • The new phased version will randomly choose a different set of users.

In order to ensure that of all users with the old phased version move to the new one, you will need to release a newer version and roll it out fully. Once the phased version's reaches 100%, it will replace the the previous live version.

Manage An App Channel

Every App Channel, once entered, will contain these three sections: Every App Channel, once entered, will contain these three sections:

App Release Channel

New Release

Ready for release

This is where you upload a new version of your app. Make sure you have a valid .opk file for the new version. For more information about creating a new .opk file, see how to create an .opk package.

New Release

Dragging an .opk file (or pressing Upload and selecting one), creates a new version release called draft.

Processing New Release

Review

Review New Release

Version Review
  • Mandatory version reviews may not be needed once your app is deemed stable after several version reviews.
  • Test Channels are always exempt from mandatory version reviews.
  • It is recommended to submit major versions for review, even if reviews are no longer mandatory.

Add internal release notes for this version by pressing Add internal notes. Internal release notes will only be viewable by your app's team, and the Overwolf team.

Once the release notes are added, the screen will change and start the review process for the new version.

Review New Release With Notes

Press Submit to send the app for review by the Overwolf team. If at any point, you wish to pull the review back, press Cancel Request.

Reviewing New Release

The release process begins once the version is approved.

Production

New Release Approved

Use Add release notes to add public release notes to your approved production version. Then the rollout % can be specified in the relevant textbox. Press Start rollout to save

New Release Confirmation

Press Confirm to release the version from draft mode. It then becomes a full release, and can be found in Public Releases.

Deleting draft version

At any point throughout the process you can decide to discard this version's draft. To delete the draft version, press Discard release.

New Release Discard

Press Confirm to finish deleting the draft version.

Public Releases

Under Public Releases, you can manage the current active versions.

Public Releases Opened

Release History

Under Release History, you can get an overview of previous versions.

Previous versions are split into pages using The Paging Footer.

Release History Closed You can browse the different pages of older releases (in the bottom right) as well as see a total of all versions. You can change the amount displayed per page (in the bottom left).

Version Overview

Version Details

Under Version Overview you can see information about a specific version including:

  • Version—the app version associated with this version.
  • Uploaded—when was this version uploaded.
  • Rollout (Only shows up on active versions)—the current rollout status of this version. Possible values include:
    • x%—the current rollout percentage. Only exists on the "phased" version.
    • HALTED—this version's rollout is currently halted. Only exists on the Phased version.
    • Full rollout—this is the live version fully rolled out.
  • Download size—the size of the raw .opk file for this version.
  • Installs—how many (non-unique) installations of this version have ever occurred.
  • Active Installs—how many active installations exist for this version (the last 30 days).

Notes

Version Notes Empty

Use these two buttons to edit this version's internal and public release notes.

Release rollout percentage

Phasing Version

This section only appears on the Phasing version and won't appear for any other version.

Release rollout percentage

Version Phasing Active

Use this section to edit a Phased version's rollout % as well as to Halt its rollout.

Rollout History

Version Rollout History

A list of all rollout changes for this version, including:

  • Date—when was the change made.
  • Rollout—how much was the rollout increased to.
  • Halted or not—version halted status (for changes before the latest, this will count whether or not they were halted when changed to the next %).

Release Notes

There are two kinds of version release notes:

  • Internal release notes—used for documenting all changes done to the app over time. They can only be viewed by your app's staff and the Overwolf team.
  • Public release notes—your app's public release notes for documenting public changes to the app. They can be viewed by anyone, even outside of the developer's console. It is recommended to use them to manage your app's public changelog for new versions.

Edit Release Notes

Release notes are edited in the text editor using CommonMark.

Release Notes Editor

Use the Preview button to see what your release notes will look like when published.

Internal Release Notes Edit

Use the Cancel and Save buttons inside of the editor to discard or save your changes (similar to The Footer Toolbar).

Public release notes also contain two extra toggles:

  • Publish—enable the toggle to publish the release notes so that any changes made will be available for everyone to read. Disable the toggle to create a draft for your new version. For release notes you wish to keep internal, use the Internal release notes instead.
  • Important—label this version as important. Typically used to mark major versions or time-critical updates.
Public Release Notes Preview

Internal Release Notes Preview

Release Notes Delay

Changes made to the public release notes of an app will take approximately 5 minutes to update. Use the release notes endpoint to verify that they have been updated.

Release Notes Endpoint

The developer's console exposes a compiled HTML of pubic release notes for every app through the following API endpoint:

`https://console-api.overwolf.com/v1/apps/${app-id}/versions/${version}/release-notes/${page}`

Replace:

  • app-id—with your app's unique id.
  • version— with the most recent version you wish to display.
  • page—with the changelogs page number. Every page contains up to three changelogs.

The endpoint returns the following json:

{
"versions": [
{
"important": boolean,
"version": string,
"html": string,
"timestamp": number
}
],
"meta": {
"perPage": number
}
}

Any version without a published public changelog will be skipped.

The versions array contains up to three versions.

Page Numbering

Changelog page numbers start from 1. If you check for page 0, it will just be treated as page 1.

Example Values

For example:

  • app-idnpijmgiaiiemcnijaljcfddgeihcbifdbhpffihe
  • version6.0.71

The link looks like:

`https://console-api.overwolf.com/v1/apps/npijmgiaiiemcnijaljcfddgeihcbifdbhpffihe/versions/6.0.71/release-notes/${page}`

At the time of writing, this will include three versions with release notes.

The result for page 1 would be:

{
"versions":[
{
"important":true,
"version":"6.0.69",
"html":"<p>test</p>",
"timestamp":1662018568162
},
{
"important":true,
"version":"3.1.5",
"html":"<figure><img src='http://content.overwolf.com/outplayed/release-notes/069/release-notes-hero.webp'></figure>\n<p><strong>All versions great and small.</strong> This version might be small, but still bright and beautiful.</p>\n<h2 class='new'>New</h2>\n<ul>\n<li><strong>5 new games are now supported</strong> - Rayman Origins, Post Scriptum, South Park: The Stick of Truth, Shadow Tactics: Blades of the Shogun, and Firewatch. Want us to add your favorite game? Let us know on our <a href=\"https://ideas.outplayed.tv/\">Ideas portal</a>.</li>\n<li><strong>Capture mode notification</strong> - An option to turn capture OFF was added. If this option is selected, Outplayed will be disabled for this game, choose wisely (you can always enable it back from the settings).</li>\n</ul>\n<h2 class='improved'>Better</h2>\n<ul>\n<li><strong>Missing backgrounds</strong> - Remnant: From the Ashes and Project Zomboid artwork was added.</li>\n<li><strong>Settings in-game</strong> - Did you know that changing settings while in-game will only take effect after restarting the game? A big yellow alert was added to make sure you know.</li>\n</ul>\n<h2 class='bugs'>Fixed</h2>\n<ul>\n<li><strong>Capture mode notification</strong> - Allow using numeric keypad in the notification hotkeys. We like hotkeys, especially in the winter.</li>\n<li><strong>Video editor</strong> - Videos with aspect ratios different than project settings were stretched to fit. Although stretching is good for your health, we fixed it.</li>\n</ul>\n<p>Have a great idea for Outplayed? Let us know on our <a href=\"https://ideas.outplayed.tv/\">Ideas portal</a>, or talk to us directly on our <a href=\"https://discord.gg/MatrVYK\">Discord server</a>.</p>\n<p><strong>See you in the next version,<br>\nThe Outplayed team</strong></p>",
"timestamp":1643024580643
},
{
"important":false,
"version":"3.0.33",
"html":"<p>3.0.33 release notessssssss</p>",
"timestamp":1643036589211
}
],
"meta":{
"perPage":3
}
}

Which is the same as the result for page 0.

The App Channels API

You can implement the channels feature directly into your app using the app channels API.

You can read the currently installed channel of your app using overwolf.settings.getExtensionSettings().

overwolf.settings.getExtensionSettings(console.log) //{"settings":{"channel":"beta"},"success":true}

You can change the current channel using overwolf.settings.setExtensionSettings().

For example:

overwolf.settings.setExtensionSettings({ channel: "beta" }, console.log)
Production Channel Name

While testing channels each have their own unique name, the production channel does not.

In order to reference the production app channel, use channel: ""

App Channels Sample App

For an example of how to utilize app channels, download the App Channels sample app.