Update to master.

This commit is contained in:
Charles Kerr 2018-03-07 16:32:36 +09:00
parent f0d9b93ede
commit 3b2a494033

View file

@ -4,16 +4,15 @@ This document describes the process for releasing a new version of Electron.
## Determine which branch to release from ## Determine which branch to release from
- **If releasing beta,** create a new branch from `master`. - **If releasing beta,** run the scripts below from `master`.
- **If releasing a stable version,** create a new branch from the beta branch - **If releasing a stable version,** run the scripts below from the branch
you're stabilizing. you're stabilizing.
## Find out what version change is needed ## Find out what version change is needed
Run `npm run prepare-release -- --notesOnly` to view auto generated release Run `npm run prepare-release -- --notesOnly` to view auto generated release
notes. The notes generated should help you determine if this is a major, notes. The notes generated should help you determine if this is a major, minor,
minor, patch, or beta version change. Read the patch, or beta version change. Read the
[Version Change Rules](../tutorial/electron-versioning.md#version-change-rules) [Version Change Rules](../tutorial/electron-versioning.md#semver) for more information.
for more information.
**NB:** If releasing from a branch, e.g. 1-8-x, check out the branch with **NB:** If releasing from a branch, e.g. 1-8-x, check out the branch with
`git checkout 1-8-x` rather than `git checkout -b remotes/origin/1-8-x`. `git checkout 1-8-x` rather than `git checkout -b remotes/origin/1-8-x`.
@ -21,13 +20,9 @@ The scripts need `git rev-parse --abbrev-ref HEAD` to return a short name,
e.g. no `remotes/origin/` e.g. no `remotes/origin/`
## Set your tokens and environment variables ## Set your tokens and environment variables
The Electron S3 Bucket in LastPass has environment variables needed for the You'll need Electron S3 credentials in order to create and
release process. If you don't have access to this, make a request similar to upload an Electron release. Contact a team member for more
these: information.
[1](https://github.com/github/security/issues/2660),
[2](https://github.com/github/security/issues/2951).
When you find the bucket, click on 'edit'. In the notes will be four
`ELECTRON_*` environment variables you need to export to your shell.
There are a handful of `*_TOKEN` environment variables needed by the release There are a handful of `*_TOKEN` environment variables needed by the release
scripts. Once you've generated these per-user tokens, you may want to keep scripts. Once you've generated these per-user tokens, you may want to keep
@ -47,10 +42,11 @@ Are provided by a Jenkins admin
The prepare release script will do the following: The prepare release script will do the following:
1. Check if a release is already in process and if so it will halt. 1. Check if a release is already in process and if so it will halt.
2. Create a release branch. 2. Create a release branch.
3. Bump the version number in several files. See [this bump commit] for an 3. Bump the version number in several files. See [this bump commit] for an example.
example. 4. Create a draft release on GitHub with auto-generated release notes.
4. Create a draft release on GitHub with auto-generated release notes 5. Push the release branch.
5. Push the release branch so that the release builds get built. 6. Call the APIs to run the release builds.
Once you have determined which type of version change is needed, run the Once you have determined which type of version change is needed, run the
`prepare-release` script with arguments according to your need: `prepare-release` script with arguments according to your need:
- `[major|minor|patch|beta]` to increment one of the version numbers, or - `[major|minor|patch|beta]` to increment one of the version numbers, or
@ -87,28 +83,23 @@ $ ./script/bump-version.py --bump minor --dry-run
``` ```
## Wait for builds :hourglass_flowing_sand: ## Wait for builds :hourglass_flowing_sand:
The `prepare-release` script will trigger the builds via API calls.
The presence of the word [`Bump`](https://github.com/electron/electron/blob/7961a97d7ddbed657c6c867cc8426e02c236c077/script/cibuild-linux#L3-L6) in the commit message created by the `bump-version` script
will [trigger the release process](https://github.com/electron/electron/blob/7961a97d7ddbed657c6c867cc8426e02c236c077/script/cibuild#L82-L96).
To monitor the build progress, see the following pages: To monitor the build progress, see the following pages:
- [208.52.191.140:8080/view/All/builds](http://208.52.191.140:8080/view/All/builds) for Mac - [mac-ci.electronjs.org/blue/organizations/jenkins/electron-mas-x64-release/activity](https://mac-ci.electronjs.org/blue/organizations/jenkins/electron-mas-x64-release/activity) for Mac App Store
- [circleci.com/gh/electron](https://circleci.com/gh/electron) for Linux - [mac-ci.electronjs.org/blue/organizations/jenkins/electron-osx-x64-release/activity](https://mac-ci.electronjs.org/blue/organizations/jenkins/electron-osx-x64-release/activity) for OS X
- [circleci.com/gh/electron/electron](https://circleci.com/gh/electron) for Linux
- [windows-ci.electronjs.org/project/AppVeyor/electron](https://windows-ci.electronjs.org/project/AppVeyor/electron) for Windows - [windows-ci.electronjs.org/project/AppVeyor/electron](https://windows-ci.electronjs.org/project/AppVeyor/electron) for Windows
## Compile release notes ## Compile release notes
Writing release notes is a good way to keep yourself busy while the builds Writing release notes is a good way to keep yourself busy while the builds are running.
are running. For prior art, see existing releases on [the releases page]. For prior art, see existing releases on [the releases page].
Tips: Tips:
- Each listed item should reference a PR on electron/electron, not an issue, - Each listed item should reference a PR on electron/electron, not an issue, nor a PR from another repo like libcc.
nor a PR from another repo like libcc. - No need to use link markup when referencing PRs. Strings like `#123` will automatically be converted to links on github.com.
- No need to use link markup when referencing PRs. Strings like `#123` will - To see the version of Chromium, V8, and Node in every version of Electron, visit [atom.io/download/electron/index.json](https://atom.io/download/electron/index.json).
automatically be converted to links on github.com.
- To see the version of Chromium, V8, and Node in every version of Electron,
visit [atom.io/download/electron/index.json](https://atom.io/download/electron/index.json).
### Patch releases ### Patch releases
@ -282,7 +273,7 @@ you have trouble, try running with an older version of Node, e.g. a 6.x LTS.
[the releases page]: https://github.com/electron/electron/releases [the releases page]: https://github.com/electron/electron/releases
[this bump commit]: https://github.com/electron/electron/commit/78ec1b8f89b3886b856377a1756a51617bc33f5a [this bump commit]: https://github.com/electron/electron/commit/78ec1b8f89b3886b856377a1756a51617bc33f5a
[electron-versioning]: /docs/tutorial/electron-versioning.md [versioning]: /docs/tutorial/electron-versioning.md
## Fix missing binaries of a release manually ## Fix missing binaries of a release manually