This document describes the process for releasing a new version of Electron.

Compile release notes

The current process is to maintain a local file, keeping track of notable changes as pull requests are merged. For examples of how to format the notes, see previous releases on the releases page.

Create a temporary branch

Create a new branch from master named release.

git checkout master
git pull
git checkout -b release

This branch is created as a precaution to prevent any merged PRs from sneaking into a release between the time the temporary release branch is created and the CI builds are complete.

Bump the version

Run the bump-version script, passing major, minor, or patch as an argument:

npm run bump-version -- patch
git push origin HEAD

This will bump the version number in several files. See this bump commit for an example.

Most releases will be patch level. Upgrades to Chrome or other major changes should use minor. For more info, see electron-versioning.

Edit the release draft

  1. Visit the releases page and you’ll see a new draft release with placeholder release notes.
  2. Edit the release and add release notes.
  3. Click ‘Save draft’. Do not click ‘Publish release’!
  4. Wait for all the builds to pass. :hourglass_flowing_sand:

Merge temporary branch

Merge the temporary back into master, without creating a merge commit:

git merge release master --no-commit
git push origin master

If this fails, rebase with master and rebuild:

git pull
git checkout release
git rebase master
git push origin HEAD

Run local debug build

Run local debug build to verify that you are actually building the version you want. Sometimes you thought you were doing a release for a new version, but you’re actually not.

npm run build
npm start

Verify the window is displaying the current updated version.

Set environment variables

You’ll need to set the following environment variables to publish a release. Ask another team member for these credentials.

  • ELECTRON_GITHUB_TOKEN - A personal access token with “repo” scope.

You will only need to do this once.

Publish the release

This script will download the binaries and generate the node headers and the .lib linker used on Windows by node-gyp to build native modules.

npm run release

Note: Many distributions of Python still ship with old HTTPS certificates. You may see a InsecureRequestWarning, but it can be disregarded.

Delete the temporary branch

git checkout master
git branch -D release # delete local branch
git push origin :release # delete remote branch

© 2013–2017 GitHub Inc.
Licensed under the MIT license.