This document describes the process for releasing a new version of Electron.
Create a new branch from
master. Name it
release or anything you like.
Note: If you are creating a backport release, you'll check out
1-7-x, etc instead of
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-version script, passing
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.
To monitor the build progress, see the following pages:
Writing release notes is a good way to keep yourself busy while the builds are running. For prior art, see existing releases on the releases page.
#123will automatically be converted to links on github.com.
patch release, use the following format:
## Bug Fixes * Fixed a cross-platform thing. #123 ### Linux * Fixed a Linux thing. #123 ### macOS * Fixed a macOS thing. #123 ### Windows * Fixed a Windows thing. #1234 ## API Changes * Changed a thing. #123 ### Linux * Changed a Linux thing. #123 ### macOS * Changed a macOS thing. #123 ### Windows * Changed a Windows thing. #123
minor release (which is normally a Chromium update, and possibly also a Node update), e.g.
1.8.0, use this format:
**Note:** This is a beta release. This is the first release running on upgraded versions of Chrome/Node.js/V8 and most likely will have have some instability and/or regressions. Please file new issues for any bugs you find in it. This release is published to [npm](https://www.npmjs.com/package/electron) under the `beta` tag and can be installed via `npm install electron@beta`. ## Upgrades - Upgraded from Chrome `oldVersion` to `newVersion`. #123 - Upgraded from Node `oldVersion` to `newVersion`. #123 - Upgraded from v8 `oldVersion` to `newVersion`. #9116 ## Other Changes - Some other change. #123
prereleasecheckbox is checked. This should happen automatically for Electron versions >=1.7
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 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.
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.
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.
git checkout master git branch -D release # delete local branch git push origin :release # delete remote branch
New releases are published to npm with the
beta tag. Every release should
eventually get promoted to stable unless there's a good reason not to.
Releases are normally given around two weeks in the wild before being promoted.
Before promoting a release, check to see if there are any bug reports
against that version, e.g. issues labeled with
It's also good to ask users in Slack if they're using the beta versions successfully.
To see what's beta and stable at any given time:
$ npm dist-tag ls electron beta: 1.7.5 latest: 1.6.11
To promote a beta version to stable (aka
npm dist-tag add email@example.com latest