Merge pull request #10336 from electron/document-prereleases
document new release and versioning process
This commit is contained in:
commit
61e606bedc
5 changed files with 233 additions and 90 deletions
|
@ -2,25 +2,15 @@
|
||||||
|
|
||||||
This document describes the process for releasing a new version of Electron.
|
This document describes the process for releasing a new version of Electron.
|
||||||
|
|
||||||
## Create a backport branch
|
## Find out what version change is needed
|
||||||
|
Is this a major, minor, patch, or beta version change? Read the [Version Change Rules](docs/tutorial/electron-versioning.md#version-change-rules) to find out.
|
||||||
If you're about release a new major or minor version of Electron like `1.8.0`,
|
|
||||||
`1.9.0`, or `2.0.0`, first create a branch from the most recent minor release
|
|
||||||
for later backports:
|
|
||||||
|
|
||||||
Assuming you're about to publish `1.8.0`, and the highest `1.7` release was
|
|
||||||
`1.7.6`:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
git checkout -b 1-7-x v1.7.6
|
|
||||||
git push origin HEAD
|
|
||||||
```
|
|
||||||
|
|
||||||
## Create a temporary branch
|
## Create a temporary branch
|
||||||
|
|
||||||
Create a new branch from `master`. Name it `release` or anything you like.
|
- **If releasing beta,** create a new branch from `master`.
|
||||||
|
- **If releasing a stable version,** create a new branch from the beta branch you're stablizing.
|
||||||
|
|
||||||
Note: If you are creating a backport release, you'll check out `1-6-x`, `1-7-x`, etc instead of `master`.
|
Name the new branch `release` or anything you like.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
git checkout master
|
git checkout master
|
||||||
|
@ -54,8 +44,6 @@ git push origin HEAD
|
||||||
|
|
||||||
This will bump the version number in several files. See [this bump commit] for an example.
|
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].
|
|
||||||
|
|
||||||
## Wait for builds :hourglass_flowing_sand:
|
## Wait for builds :hourglass_flowing_sand:
|
||||||
|
|
||||||
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
|
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
|
||||||
|
@ -73,7 +61,6 @@ Writing release notes is a good way to keep yourself busy while the builds are r
|
||||||
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, nor a PR from another repo like libcc.
|
- Each listed item should reference a PR on electron/electron, not an issue, 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 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).
|
- 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).
|
||||||
|
@ -98,6 +85,16 @@ For a `patch` release, use the following format:
|
||||||
### Windows
|
### Windows
|
||||||
|
|
||||||
* Fixed a Windows thing. #1234
|
* Fixed a Windows thing. #1234
|
||||||
|
```
|
||||||
|
|
||||||
|
### Minor releases
|
||||||
|
|
||||||
|
For a `minor` release, e.g. `1.8.0`, use this format:
|
||||||
|
|
||||||
|
```
|
||||||
|
## Upgrades
|
||||||
|
|
||||||
|
- Upgraded from Node `oldVersion` to `newVersion`. #123
|
||||||
|
|
||||||
## API Changes
|
## API Changes
|
||||||
|
|
||||||
|
@ -116,33 +113,50 @@ For a `patch` release, use the following format:
|
||||||
* Changed a Windows thing. #123
|
* Changed a Windows thing. #123
|
||||||
```
|
```
|
||||||
|
|
||||||
### Minor releases
|
### Major releases
|
||||||
|
|
||||||
For a `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
|
## Upgrades
|
||||||
|
|
||||||
- Upgraded from Chrome `oldVersion` to `newVersion`. #123
|
- Upgraded from Chromium `oldVersion` to `newVersion`. #123
|
||||||
- Upgraded from Node `oldVersion` to `newVersion`. #123
|
- Upgraded from Node `oldVersion` to `newVersion`. #123
|
||||||
- Upgraded from v8 `oldVersion` to `newVersion`. #9116
|
|
||||||
|
## Breaking API changes
|
||||||
|
|
||||||
|
* Changed a thing. #123
|
||||||
|
|
||||||
|
### Linux
|
||||||
|
|
||||||
|
* Changed a Linux thing. #123
|
||||||
|
|
||||||
|
### macOS
|
||||||
|
|
||||||
|
* Changed a macOS thing. #123
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
* Changed a Windows thing. #123
|
||||||
|
|
||||||
## Other Changes
|
## Other Changes
|
||||||
|
|
||||||
- Some other change. #123
|
- Some other change. #123
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Beta releases
|
||||||
|
Use the same formats as the ones suggested above, but add the following note at the beginning of the changelog:
|
||||||
|
```
|
||||||
|
**Note:** This is a beta release 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`.
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## Edit the release draft
|
## Edit the release draft
|
||||||
|
|
||||||
1. Visit [the releases page] and you'll see a new draft release with placeholder release notes.
|
1. Visit [the releases page] and you'll see a new draft release with placeholder release notes.
|
||||||
1. Edit the release and add release notes.
|
1. Edit the release and add release notes.
|
||||||
1. Ensure the `prerelease` checkbox is checked. This should happen automatically for Electron versions >=1.7
|
1. Uncheck the `prerelease` checkbox if you're publishing a stable release; leave it checked for beta releases.
|
||||||
1. Click 'Save draft'. **Do not click 'Publish release'!**
|
1. Click 'Save draft'. **Do not click 'Publish release'!**
|
||||||
1. Wait for all builds to pass before proceeding.
|
1. Wait for all builds to pass before proceeding.
|
||||||
|
|
||||||
|
@ -209,37 +223,6 @@ git push origin :release # delete remote branch
|
||||||
[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
|
[electron-versioning]: /docs/tutorial/electron-versioning.md
|
||||||
|
|
||||||
## Promote a release on npm
|
|
||||||
|
|
||||||
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 `version/1.7.x`.
|
|
||||||
|
|
||||||
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 `latest`):
|
|
||||||
|
|
||||||
```
|
|
||||||
npm dist-tag add electron@1.2.3 latest
|
|
||||||
```
|
|
||||||
|
|
||||||
Then edit the release on GitGub:
|
|
||||||
|
|
||||||
1. Remove `beta` from the release name: electron v1.7.5 ~~beta~~
|
|
||||||
1. Uncheck the `prerelease` checkbox.
|
|
||||||
1. Click "Update release"
|
|
||||||
|
|
||||||
## Fix missing binaries of a release manually
|
## Fix missing binaries of a release manually
|
||||||
|
|
||||||
In the case of a corrupted release with broken CI machines, we might have to
|
In the case of a corrupted release with broken CI machines, we might have to
|
||||||
|
|
97
docs/images/tutorial-release-schedule.svg
Normal file
97
docs/images/tutorial-release-schedule.svg
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
<?xml version="1.0" standalone="yes"?>
|
||||||
|
<svg width="520" height="220" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<marker id="arrow" viewBox="-1 0 12 10" refX="10.5" refY="5" markerWidth="8" markerHeight="8" orient="auto">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10"/>
|
||||||
|
</marker>
|
||||||
|
<g transform="translate(0,40)">
|
||||||
|
<!-- master -->
|
||||||
|
<text x="60" y="30" text-anchor="end" alignment-baseline="middle">master</text>
|
||||||
|
<path d="M70 30 H 500" stroke-width="2" stroke="black"/>
|
||||||
|
<!-- v2.0 -->
|
||||||
|
<g>
|
||||||
|
<path d="M100 30 l 20 30 H 200" stroke-width="2" stroke="black" fill="transparent"/>
|
||||||
|
<text x="110" y="60" text-anchor="end" alignment-baseline="middle">2.0</text>
|
||||||
|
<circle cx="120" cy="60" r="5"/>
|
||||||
|
<text x="110" y="60" text-anchor="end" alignment-baseline="middle" transform="rotate(-60 120,60)">v2.0.0-beta0</text>
|
||||||
|
<circle cx="200" cy="60" r="5"/>
|
||||||
|
<text x="190" y="60" text-anchor="end" alignment-baseline="middle" transform="rotate(-60 200,60)">v2.0.0</text>
|
||||||
|
</g>
|
||||||
|
<!-- v2.1 -->
|
||||||
|
<g transform="translate(130,0)">
|
||||||
|
<path d="M100 30 l 20 30 H 200" stroke-width="2" stroke="black" fill="transparent"/>
|
||||||
|
<text x="110" y="60" text-anchor="end" alignment-baseline="middle">2.1</text>
|
||||||
|
<circle cx="120" cy="60" r="5"/>
|
||||||
|
<text x="110" y="60" text-anchor="end" alignment-baseline="middle" transform="rotate(-60 120,60)">v2.1.0-beta0</text>
|
||||||
|
<circle cx="160" cy="60" r="5"/>
|
||||||
|
<text x="150" y="60" text-anchor="end" alignment-baseline="middle" transform="rotate(-60 160,60)">v2.1.0-beta1</text>
|
||||||
|
<circle cx="200" cy="60" r="5"/>
|
||||||
|
<text x="190" y="60" text-anchor="end" alignment-baseline="middle" transform="rotate(-60 200,60)">v2.1.0</text>
|
||||||
|
</g>
|
||||||
|
<!-- v3.0 -->
|
||||||
|
<g transform="translate(260,0)">
|
||||||
|
<path d="M100 30 l 20 30 H 200" stroke-width="2" stroke="black" fill="transparent"/>
|
||||||
|
<text x="110" y="60" text-anchor="end" alignment-baseline="middle">3.0</text>
|
||||||
|
<circle cx="120" cy="60" r="5"/>
|
||||||
|
<text x="110" y="60" text-anchor="end" alignment-baseline="middle" transform="rotate(-60 120,60)">v3.0.0-beta0</text>
|
||||||
|
<circle cx="200" cy="60" r="5"/>
|
||||||
|
<text x="190" y="60" text-anchor="end" alignment-baseline="middle" transform="rotate(-60 200,60)">v3.0.0</text>
|
||||||
|
</g>
|
||||||
|
<!-- Bug fixes -->
|
||||||
|
<g transform="translate(160,30)">
|
||||||
|
<circle cx="0" cy="0" r="3"/>
|
||||||
|
<text x="10" y="0" text-anchor="start" alignment-baseline="middle" transform="rotate(-60 0,0)">bug fix</text>
|
||||||
|
<path d="M0 0 l0,30" marker-end="url(#arrow)" stroke-dasharray="2,2" stroke="#000"/>
|
||||||
|
</g>
|
||||||
|
<g transform="translate(260,30)">
|
||||||
|
<circle cx="0" cy="0" r="3"/>
|
||||||
|
<text x="10" y="0" text-anchor="start" alignment-baseline="middle" transform="rotate(-60 0,0)">bug fix</text>
|
||||||
|
<path d="M0 0 l0,30" marker-end="url(#arrow)" stroke-dasharray="2,2" stroke="#000"/>
|
||||||
|
</g>
|
||||||
|
<g transform="translate(280,30)">
|
||||||
|
<circle cx="0" cy="0" r="3"/>
|
||||||
|
<text x="10" y="0" text-anchor="start" alignment-baseline="middle" transform="rotate(-60 0,0)">bug fix</text>
|
||||||
|
<path d="M0 0 l0,30" marker-end="url(#arrow)" stroke-dasharray="2,2" stroke="#000"/>
|
||||||
|
</g>
|
||||||
|
<g transform="translate(400,30)">
|
||||||
|
<circle cx="0" cy="0" r="3"/>
|
||||||
|
<text x="10" y="0" text-anchor="start" alignment-baseline="middle" transform="rotate(-60 0,0)">bug fix</text>
|
||||||
|
<path d="M0 0 l0,30" marker-end="url(#arrow)" stroke-dasharray="2,2" stroke="#000"/>
|
||||||
|
</g>
|
||||||
|
<g transform="translate(430,30)">
|
||||||
|
<circle cx="0" cy="0" r="3"/>
|
||||||
|
<text x="10" y="0" text-anchor="start" alignment-baseline="middle" transform="rotate(-60 0,0)">bug fix</text>
|
||||||
|
<path d="M0 0 l0,30" marker-end="url(#arrow)" stroke-dasharray="2,2" stroke="#000"/>
|
||||||
|
</g>
|
||||||
|
<!-- Features -->
|
||||||
|
<g transform="translate(130,30)">
|
||||||
|
<circle cx="0" cy="0" r="3"/>
|
||||||
|
<text x="10" y="0" text-anchor="start" alignment-baseline="middle" transform="rotate(-60 0,0)">feature</text>
|
||||||
|
</g>
|
||||||
|
<g transform="translate(200,30)">
|
||||||
|
<circle cx="0" cy="0" r="3"/>
|
||||||
|
<text x="10" y="0" text-anchor="start" alignment-baseline="middle" transform="rotate(-60 0,0)">feature</text>
|
||||||
|
</g>
|
||||||
|
<g transform="translate(340,30)">
|
||||||
|
<circle cx="0" cy="0" r="3"/>
|
||||||
|
<text x="10" y="0" text-anchor="start" alignment-baseline="middle" transform="rotate(-60 0,0)">feature</text>
|
||||||
|
</g>
|
||||||
|
<!-- Chromium update -->
|
||||||
|
<g transform="translate(310,30)">
|
||||||
|
<circle cx="0" cy="0" r="3"/>
|
||||||
|
<text x="10" y="0" text-anchor="start" alignment-baseline="middle" transform="rotate(-60 0,0)"><tspan>chromium</tspan><tspan dy="10" x="10">update</tspan></text>
|
||||||
|
</g>
|
||||||
|
<!-- Timeline -->
|
||||||
|
<g transform="translate(100,160)">
|
||||||
|
<text x="50" y="0" text-anchor="middle" alignment-baseline="text-after-edge">~1 week</text>
|
||||||
|
<path d="M0 0 l0 10 l0 -5 H100l0 -5l0 10" stroke-width="2" stroke="black" fill="transparent"/>
|
||||||
|
</g>
|
||||||
|
<g transform="translate(230,160)">
|
||||||
|
<text x="50" y="0" text-anchor="middle" alignment-baseline="text-after-edge">~1 week</text>
|
||||||
|
<path d="M0 0 l0 10 l0 -5 H100l0 -5l0 10" stroke-width="2" stroke="black" fill="transparent"/>
|
||||||
|
</g>
|
||||||
|
<g transform="translate(360,160)">
|
||||||
|
<text x="50" y="0" text-anchor="middle" alignment-baseline="text-after-edge">~1 week</text>
|
||||||
|
<path d="M0 0 l0 10 l0 -5 H100l0 -5l0 10" stroke-width="2" stroke="black" fill="transparent"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.3 KiB |
|
@ -1,9 +1,9 @@
|
||||||
# Electron Versioning
|
# Electron Versioning
|
||||||
|
|
||||||
If you've been using Node and npm for a while, you are probably aware of [Semantic Versioning], or SemVer for short. It's a convention for specifying version numbers for software that helps communicate intentions to the users of your software.
|
|
||||||
|
|
||||||
## Overview of Semantic Versioning
|
## Overview of Semantic Versioning
|
||||||
|
|
||||||
|
If you've been using Node and npm for a while, you are probably aware of [Semantic Versioning], or SemVer for short. It's a convention for specifying version numbers for software that helps communicate intentions to the users of your software.
|
||||||
|
|
||||||
Semantic versions are always made up of three numbers:
|
Semantic versions are always made up of three numbers:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -22,34 +22,99 @@ A simple mnemonic for remembering this scheme is as follows:
|
||||||
breaking.feature.fix
|
breaking.feature.fix
|
||||||
```
|
```
|
||||||
|
|
||||||
## Electron Versioning
|
## Before Version 2
|
||||||
|
|
||||||
Due to its dependency on Node and Chromium, it is not possible for the Electron
|
Before version 2 of Electron we didn't follow SemVer, instead the following was used:
|
||||||
project to adhere to a SemVer policy. **You should therefore always
|
|
||||||
reference a specific version of Electron.**
|
|
||||||
|
|
||||||
Electron version numbers are bumped using the following rules:
|
- **Major**: Breaking changes to Electron's API
|
||||||
|
- **Minor**: Major Chrome, minor node or "significant" Electron changes
|
||||||
|
- **Patch**: New features and bug fixes
|
||||||
|
|
||||||
* **Major** is for breaking changes in Electron's API. If you upgrade from `0.37.0`
|
This system had a number of drawbacks, such as:
|
||||||
to `1.0.0`, you will have to make changes to your app.
|
|
||||||
* **Minor** is for major Chrome and minor Node upgrades, or significant Electron
|
|
||||||
changes. If you upgrade from `1.5.0` to `1.6.0`, your app is supposed to
|
|
||||||
still work, but you might have to work around small changes.
|
|
||||||
* **Patch** is for new features and bug fixes. If you upgrade from `1.6.2` to
|
|
||||||
`1.6.3`, your app will continue to work as-is.
|
|
||||||
|
|
||||||
We recommend that you set a fixed version when installing Electron from npm:
|
- New bugs could be introduced into a new patch version because patch versions added features
|
||||||
|
- It didn't follow SemVer so it could confuse consumers
|
||||||
|
- It wasn't clear what the differences between stable and beta builds were
|
||||||
|
- The lack of a formalized stabilization process and release schedule lead to sporadic releases and betas that could last several months
|
||||||
|
|
||||||
```sh
|
## Version 2 and Beyond
|
||||||
npm install electron --save-exact --save-dev
|
|
||||||
|
From version 2.0.0, Electron will attempt to adhere to SemVer and follow a
|
||||||
|
release schedule and stabilization process similar to that of Chromium.
|
||||||
|
|
||||||
|
### Version Change Rules
|
||||||
|
|
||||||
|
Here are the general rules that apply when releasing new versions:
|
||||||
|
|
||||||
|
| Type of change | Version increase
|
||||||
|
|---|---
|
||||||
|
| Chromium version update | Major
|
||||||
|
| Node *major* version update | Major
|
||||||
|
| Electron breaking API change | Major
|
||||||
|
| Any other changes deemed "risky" | Major
|
||||||
|
| Node *minor* version update | Minor
|
||||||
|
| Electron non-breaking API change | Minor
|
||||||
|
| Electron bug fix | Patch
|
||||||
|
|
||||||
|
When you install an npm module with the `--save` or `--save-dev` flags, it
|
||||||
|
will be prefixed with a caret `^` in package.json:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"devDependencies": {
|
||||||
|
"electron": "^2.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
The `--save-exact` flag will add `electron` to your `package.json` file without
|
The [caret semver range](https://docs.npmjs.com/misc/semver#caret-ranges-123-025-004)
|
||||||
using a `^` or `~`, e.g. `1.6.2` instead of `^1.6.2`. This practice ensures that
|
allows minor- and patch-level changes to be installed, i.e. non-breaking
|
||||||
all upgrades of Electron are a manual operation made by you, the developer.
|
features and bug fixes.
|
||||||
|
|
||||||
Alternatively, you can use the `~` prefix in your SemVer range, like `~1.6.2`.
|
Alternatively, a more conservative approach is to use the
|
||||||
This will lock your major and minor version, but allow new patch versions to
|
[tilde semver range](https://docs.npmjs.com/misc/semver#tilde-ranges-123-12-1)
|
||||||
be installed.
|
`~`, which will only allow patch-level upgrades, i.e. bug fixes.
|
||||||
|
|
||||||
|
|
||||||
|
### The Release Schedule
|
||||||
|
|
||||||
|
**Note: The schedule outlined here is _aspirational_. We are not yet cutting
|
||||||
|
releases at a weekly cadence, but we hope to get there eventually.**
|
||||||
|
|
||||||
|
<img style="width:100%;margin:20px 0;" src="../images/tutorial-release-schedule.svg">
|
||||||
|
|
||||||
|
Here are some important points to call out:
|
||||||
|
|
||||||
|
- A new release is performed approximately weekly.
|
||||||
|
- Minor versions are branched off of master for stabilization.
|
||||||
|
- The stabilization period is approximately weekly.
|
||||||
|
- Important bug fixes are cherry-picked to stabilization branches after landing
|
||||||
|
in master.
|
||||||
|
- Features are not cherry picked; a minor version should only get *more stable*
|
||||||
|
with its patch versions.
|
||||||
|
- There is little difference in the release schedule between a major and minor
|
||||||
|
release, other than the risk/effort it may take for third parties to adopt
|
||||||
|
- Chromium updates will be performed as fast as the team can manage. In an ideal
|
||||||
|
world this would happen every 6 weeks to align with
|
||||||
|
[Chromium's release schedule][Chromium release].
|
||||||
|
- Excluding exceptional circumstances, only the previous stable build will
|
||||||
|
get backported bug fixes.
|
||||||
|
|
||||||
|
### The Beta Process
|
||||||
|
|
||||||
|
Electron relies on its consumers getting involved in stabilization. The short
|
||||||
|
target stabilization period and rapid release cadence was designed for shipping
|
||||||
|
security and bug fixes out fast and to encourage the automation of testing.
|
||||||
|
|
||||||
|
You can install the beta by specifying the `beta` dist tag when installing via
|
||||||
|
npm:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm install electron@beta
|
||||||
|
```
|
||||||
|
|
||||||
[Semantic Versioning]: http://semver.org
|
[Semantic Versioning]: http://semver.org
|
||||||
|
[pre-release identifier]: http://semver.org/#spec-item-9
|
||||||
|
[npm dist tag]: https://docs.npmjs.com/cli/dist-tag
|
||||||
|
[normal version]: http://semver.org/#spec-item-2
|
||||||
|
[Chromium release]: https://www.chromium.org/developers/calendar
|
|
@ -7,12 +7,11 @@ The preferred method is to install Electron as a development dependency in your
|
||||||
app:
|
app:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm install electron --save-dev --save-exact
|
npm install electron --save-dev
|
||||||
```
|
```
|
||||||
|
|
||||||
The `--save-exact` flag is recommended as Electron does not follow semantic
|
See the
|
||||||
versioning. See the
|
[Electron versioning doc](https://electron.atom.io/docs/tutorial/electron-versioning/)
|
||||||
[versioning doc](https://electron.atom.io/docs/tutorial/electron-versioning/)
|
|
||||||
for info on how to manage Electron versions in your apps.
|
for info on how to manage Electron versions in your apps.
|
||||||
|
|
||||||
## Global Installation
|
## Global Installation
|
||||||
|
|
|
@ -24,7 +24,6 @@ github.repos.getReleases({owner: 'electron', repo: 'electron'})
|
||||||
const draft = drafts[0]
|
const draft = drafts[0]
|
||||||
|
|
||||||
check(draft.tag_name === `v${pkg.version}`, `draft release version matches local package.json (v${pkg.version})`)
|
check(draft.tag_name === `v${pkg.version}`, `draft release version matches local package.json (v${pkg.version})`)
|
||||||
check(draft.prerelease, 'draft is a prerelease')
|
|
||||||
check(draft.body.length > 50 && !draft.body.includes('(placeholder)'), 'draft has release notes')
|
check(draft.body.length > 50 && !draft.body.includes('(placeholder)'), 'draft has release notes')
|
||||||
|
|
||||||
const requiredAssets = assetsForVersion(draft.tag_name).sort()
|
const requiredAssets = assetsForVersion(draft.tag_name).sort()
|
||||||
|
|
Loading…
Add table
Reference in a new issue