document prereleases

This commit is contained in:
Zeke Sikelianos 2017-08-23 08:54:23 -07:00
parent 2d269fb7f1
commit cc80930e2b

View file

@ -4,7 +4,7 @@ If you've been using Node and npm for a while, you are probably aware of [Semant
## Overview of Semantic Versioning ## Overview of Semantic Versioning
Semantic versions are always made up of three numbers: Semantic versions are always made up of (at least) three numbers:
``` ```
major.minor.patch major.minor.patch
@ -22,10 +22,13 @@ A simple mnemonic for remembering this scheme is as follows:
breaking.feature.fix breaking.feature.fix
``` ```
Unstable versions may also have a _pre-release identifier_. See
[Prereleases](#prereleases).
## Electron Versioning ## Electron Versioning
Due to its dependency on Node and Chromium, it is not possible for the Electron Due to its dependency on Node and Chromium, it is not possible for the Electron
project to adhere to a SemVer policy. **You should therefore always project to adhere to a strict SemVer policy. **You should therefore always
reference a specific version of Electron.** reference a specific version of Electron.**
Electron version numbers are bumped using the following rules: Electron version numbers are bumped using the following rules:
@ -52,4 +55,24 @@ Alternatively, you can use the `~` prefix in your SemVer range, like `~1.6.2`.
This will lock your major and minor version, but allow new patch versions to This will lock your major and minor version, but allow new patch versions to
be installed. be installed.
## Prereleases
Starting at version 1.8, unstable releases of Electron have a suffix called a
[pre-release identifier] appended to their version number,
e.g. `1.8.0-beta.0`. A version may have many prereleases before it is
considered stable, e.g. `1.8.0-beta.0`, `1.8.0-beta.1`, and eventually `1.8.0`.
When major, minor, and patch are equal, a pre-release version has lower
precedence than a [normal version], e.g. `1.8.0-beta.0 < 1.8.0`. This is
convenient because it allows you to use a range like `^1.8.0` and know
that it will never match an unstable pre-release version.
The `latest` and `next` [npm dist tags] are also used:
- `npm install electron@latest` will install the latest _stable_ version.
- `npm install electron@next` will install the very latest _unstable_ version.
[Semantic Versioning]: http://semver.org [Semantic Versioning]: http://semver.org
[pre-release identifier]: http://semver.org/#spec-item-9
[npm dist tags]: https://docs.npmjs.com/cli/dist-tag
[normal version]: http://semver.org/#spec-item-2