Release management
This section of the console allows you to manage your app's releases based on a Release Channels model.
What are Release Channels
The Release Channels model allows you to deploy 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 Channels 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.
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
App channels are split into two groups:
Production
—your app's public channel.Testing
—your app's testing channel.
Changing App Channels
Your testers/users can get the custom app for a specific version from either the Production channel, or the Testing channel.
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 number 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 canResume
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.
- When this happens, the old phased version's rollout will be considered
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:
- New Release—upload a new app version.
- Public Releases—manage the currently live versions in the channel.
- Release History—manage past app versions.
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.
Dragging an .opk
file (or pressing Upload
and selecting one), creates a new version release called draft.
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.
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
.
The release process begins once the version is approved.
Production
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.
Press Confirm to release the version from draft mode. It then becomes a full release, and can be found in Public Releases.
At any point throughout the process you can decide to discard this version's draft. To delete the draft version, press Discard release.
Press Confirm to finish deleting the draft version.
Public Releases
Under Public Releases, you can manage the current active versions.
- Opened
- Closed
Release History
Under Release History, you can get an overview of previous versions.
Previous versions are split into pages using The Paging Footer.
- Opened
- 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
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:
- 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
- Empty
- Filled
Release rollout percentage
This section only appears on the Phasing version and won't appear for any other version.
Release rollout percentage
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 %).
Automatic updates
You can set your electron app to automatically update making sure your app uses the latest version of OW-Electron.
Use the autoUpdater
API to ensure that your app stays up to date. Add the channel
parameter to make sure that the update is for the correct channel in your developer's console.
Example:
autoUpdater.channel = 'YourTestChannel';
autoUpdater.setFeedURL({
provider: 'generic',
url: 'https://electron-updates.overwolf.com/electron-updates/your_app_id',
});
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
- Edit
- Preview
Use the Preview button to see what your release notes will look like when published.
Use the Edit button to switch back to the editor.
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
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.
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-id
—npijmgiaiiemcnijaljcfddgeihcbifdbhpffihe
version
—6.0.71
The link looks like:
`https://console-api.overwolf.com/v1/apps/npijmgiaiiemcnijaljcfddgeihcbifdbhpffihe/versions/6.0.71/release-notes/${page}`
This is the JSON response with three versions of release notes.
- Page 0
- Page 1
- Page 2
The result for page 0 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 1.
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 result for page 2 would be:
{
"versions":[
],
"meta":{
"perPage":3
}
}
Which is empty, since there are only 3 published release notes from this version.