Browse Source

document prereleases

Zeke Sikelianos 7 years ago
parent
commit
cc80930e2b
1 changed files with 25 additions and 2 deletions
  1. 25 2
      docs/tutorial/electron-versioning.md

+ 25 - 2
docs/tutorial/electron-versioning.md

@@ -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
 
-Semantic versions are always made up of three numbers:
+Semantic versions are always made up of (at least) three numbers:
 
 ```
 major.minor.patch
@@ -22,10 +22,13 @@ A simple mnemonic for remembering this scheme is as follows:
 breaking.feature.fix
 ```
 
+Unstable versions may also have a _pre-release identifier_. See 
+[Prereleases](#prereleases).
+
 ## Electron Versioning
 
 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.**
 
 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
 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
+[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