Browse Source

docs: consolidate info docs (#32964)

* docs: consolidate info docs

* fill in table

* more newlines to admonitions

* update china mirror thing
Erick Zhao 3 years ago
parent
commit
1e50f7d2b6

+ 24 - 11
README.md

@@ -34,6 +34,17 @@ For more installation options and troubleshooting tips, see
 [installation](docs/tutorial/installation.md). For info on how to manage Electron versions in your apps, see
 [Electron versioning](docs/tutorial/electron-versioning.md).
 
+## Platform support
+
+Each Electron release provides binaries for macOS, Windows, and Linux.
+
+* macOS (El Capitan and up): Electron provides 64-bit Intel and ARM binaries for macOS. Apple Silicon support was added in Electron 11.
+* Windows (Windows 7 and up): Electron provides `ia32` (`x86`), `x64` (`amd64`), and `arm64` binaries for Windows. Windows on ARM support was added in Electron 5.0.8.
+* Linux: The prebuilt binaries of Electron are built on Ubuntu 18.04. They have also been verified to work on:
+  * Ubuntu 14.04 and newer
+  * Fedora 24 and newer
+  * Debian 8 and newer
+
 ## Quick start & Electron Fiddle
 
 Use [`Electron Fiddle`](https://github.com/electron/fiddle)
@@ -54,12 +65,10 @@ npm start
 
 ## Resources for learning Electron
 
-- [electronjs.org/docs](https://electronjs.org/docs) - All of Electron's documentation
-- [electron/fiddle](https://github.com/electron/fiddle) - A tool to build, run, and package small Electron experiments
-- [electron/electron-quick-start](https://github.com/electron/electron-quick-start) - A very basic starter Electron app
-- [electronjs.org/community#boilerplates](https://electronjs.org/community#boilerplates) - Sample starter apps created by the community
-- [electron/simple-samples](https://github.com/electron/simple-samples) - Small applications with ideas for taking them further
-- [electron/electron-api-demos](https://github.com/electron/electron-api-demos) - An Electron app that teaches you how to use Electron
+* [electronjs.org/docs](https://electronjs.org/docs) - All of Electron's documentation
+* [electron/fiddle](https://github.com/electron/fiddle) - A tool to build, run, and package small Electron experiments
+* [electron/electron-quick-start](https://github.com/electron/electron-quick-start) - A very basic starter Electron app
+* [electronjs.org/community#boilerplates](https://electronjs.org/community#boilerplates) - Sample starter apps created by the community
 
 ## Programmatic usage
 
@@ -80,11 +89,15 @@ const child = proc.spawn(electron)
 
 ### Mirrors
 
-- [China](https://npmmirror.com/mirrors/electron)
+* [China](https://npm.taobao.org/mirrors/electron)
+
+See the [Advanced Installation Instructions](https://www.electronjs.org/docs/latest/tutorial/installation#mirror) to learn how to use a custom mirror.
 
-## Documentation Translations
+## Documentation translations
 
-Find documentation translations in [electron/i18n](https://github.com/electron/i18n).
+We crowdsource translations for our documentation via [Crowdin](https://crowdin.com/project/electron).
+We currently accept translations for Chinese (Simplified), French, German, Japanese, Portuguese,
+Russian, and Spanish.
 
 ## Contributing
 
@@ -93,10 +106,10 @@ If you are interested in reporting/fixing issues and contributing directly to th
 ## Community
 
 Info on reporting bugs, getting help, finding third-party tools and sample apps,
-and more can be found in the [support document](docs/tutorial/support.md#finding-support).
+and more can be found on the [Community page](https://www.electronjs.org/community).
 
 ## License
 
 [MIT](https://github.com/electron/electron/blob/main/LICENSE)
 
-When using the Electron or other GitHub logos, be sure to follow the [GitHub logo guidelines](https://github.com/logos).
+When using Electron logos, make sure to follow [OpenJS Foundation Trademark Policy](https://openjsf.org/wp-content/uploads/sites/84/2021/01/OpenJS-Foundation-Trademark-Policy-2021-01-12.docx.pdf).

+ 0 - 1
docs/README.md

@@ -64,7 +64,6 @@ an issue:
   * [Automated Testing](tutorial/automated-testing.md)
   * [REPL](tutorial/repl.md)
 * [Distribution](tutorial/application-distribution.md)
-  * [Supported Platforms](tutorial/support.md#supported-platforms)
   * [Code Signing](tutorial/code-signing.md)
   * [Mac App Store](tutorial/mac-app-store-submission-guide.md)
   * [Windows Store](tutorial/windows-store-guide.md)

+ 1 - 1
docs/development/issues.md

@@ -24,7 +24,7 @@ contribute:
 
 ## Asking for General Help
 
-["Finding Support"](../tutorial/support.md#finding-support) has a
+[The Electron website](https://electronjs.org/community) has a
 list of resources for getting programming help, reporting security issues,
 contributing, and more. Please use the issue tracker for bugs only!
 

+ 96 - 26
docs/tutorial/electron-timelines.md

@@ -1,30 +1,100 @@
-# Electron Release Timelines
+# Electron Releases
 
-Special notes:
+Electron frequently releases major versions alongside every other Chromium release.
+This document focuses on the release cadence and version support policy.
+For a more in-depth guide on our git branches and how Electron uses semantic versions,
+check out our [Electron Versioning](./electron-versioning.md) doc.
+
+## Timeline
+
+| Electron | Alpha | Beta | Stable | Chrome | Node | Supported |
+| ------- | ----- | ------- | ------ | ------ | ---- | ---- |
+| 2.0.0 | -- | 2018-Feb-21 | 2018-May-01 | M61 | v8.9 | 🚫 |
+| 3.0.0 | -- | 2018-Jun-21 | 2018-Sep-18 | M66 | v10.2 | 🚫 |
+| 4.0.0 | -- | 2018-Oct-11 | 2018-Dec-20 | M69 | v10.11 | 🚫 |
+| 5.0.0 | -- | 2019-Jan-22 | 2019-Apr-24 | M73 | v12.0 | 🚫 |
+| 6.0.0 | -- | 2019-May-01 | 2019-Jul-30 | M76 | v12.4 | 🚫 |
+| 7.0.0 | -- | 2019-Aug-01 | 2019-Oct-22 | M78 | v12.8 | 🚫 |
+| 8.0.0 | -- | 2019-Oct-24 | 2020-Feb-04 | M80 | v12.13 | 🚫 |
+| 9.0.0 | -- | 2020-Feb-06 | 2020-May-19 | M83 | v12.14 | 🚫 |
+| 10.0.0 | -- | 2020-May-21 | 2020-Aug-25 | M85 | v12.16 | 🚫 |
+| 11.0.0 | -- | 2020-Aug-27 | 2020-Nov-17 | M87 | v12.18 | 🚫 |
+| 12.0.0 | -- | 2020-Nov-19 | 2021-Mar-02 | M89 | v14.16 | 🚫 |
+| 13.0.0 | -- | 2021-Mar-04 | 2021-May-25 | M91 | v14.16 | 🚫 |
+| 14.0.0 | -- | 2021-May-27 | 2021-Aug-31 | M93 | v14.17 | 🚫 |
+| 15.0.0 | 2021-Jul-20 | 2021-Sep-01 | 2021-Sep-21 | M94 | v16.5 | 🚫 |
+| 16.0.0 | 2021-Sep-23 | 2021-Oct-20 | 2021-Nov-16 | M96 | v16.9 | ✅ |
+| 17.0.0 | 2021-Nov-18 | 2022-Jan-06 | 2022-Feb-01 | M98 | v16.13 | ✅ |
+| 18.0.0 | 2022-Feb-03 | 2022-Mar-03 | 2022-Mar-29 | M100 | TBD | ✅ |
+| 19.0.0 | 2022-Mar-31 | 2022-Apr-30 | 2022-May-24 | M102 | TBD | ✅ |
+
+**Notes:**
 
 * The `-beta.1` and `stable` dates are our solid release dates.
-* We strive for weekly beta releases, however we often release more betas than scheduled.
+* We strive for weekly beta releases, but we often release more betas than scheduled.
 * All dates are our goals but there may be reasons for adjusting the stable deadline, such as security bugs.
-* Take a look at the [5.0.0 Timeline blog post](https://electronjs.org/blog/electron-5-0-timeline) for info about publicizing our release dates.
-* Since Electron 6.0, we've been targeting every other Chromium version and releasing our stable on the same day as Chrome stable. You can reference Chromium's release schedule [here](https://chromiumdash.appspot.com/schedule). See [Electron's new release cadence blog post](https://www.electronjs.org/blog/12-week-cadence) for more details on our release schedule.
-* Starting in Electron 16.0, we will release on an 8-week cadence. See [Electron's new 8-week cadence blog post](https://www.electronjs.org/blog/8-week-cadence) for more details.
-
-| Electron | Alpha | Beta | Stable | Chrome | Node |
-| ------- | ----- | ------- | ------ | ------ | ---- |
-| 2.0.0 | -- | 2018-Feb-21 | 2018-May-01 | M61 | v8.9 |
-| 3.0.0 | -- | 2018-Jun-21 | 2018-Sep-18 | M66 | v10.2 |
-| 4.0.0 | -- | 2018-Oct-11 | 2018-Dec-20 | M69 | v10.11 |
-| 5.0.0 | -- | 2019-Jan-22 | 2019-Apr-24 | M73 | v12.0 |
-| 6.0.0 | -- | 2019-May-01 | 2019-Jul-30 | M76 | v12.4 |
-| 7.0.0 | -- | 2019-Aug-01 | 2019-Oct-22 | M78 | v12.8 |
-| 8.0.0 | -- | 2019-Oct-24 | 2020-Feb-04 | M80 | v12.13 |
-| 9.0.0 | -- | 2020-Feb-06 | 2020-May-19 | M83 | v12.14 |
-| 10.0.0 | -- | 2020-May-21 | 2020-Aug-25 | M85 | v12.16 |
-| 11.0.0 | -- | 2020-Aug-27 | 2020-Nov-17 | M87 | v12.18 |
-| 12.0.0 | -- | 2020-Nov-19 | 2021-Mar-02 | M89 | v14.16 |
-| 13.0.0 | -- | 2021-Mar-04 | 2021-May-25 | M91 | v14.16 |
-| 14.0.0 | -- | 2021-May-27 | 2021-Aug-31 | M93 | v14.17 |
-| 15.0.0 | 2021-Jul-20 | 2021-Sep-01 | 2021-Sep-21 | M94 | v16.5 |
-| 16.0.0 | 2021-Sep-23 | 2021-Oct-20 | 2021-Nov-16 | M96 | v16.9 |
-| 17.0.0 | 2021-Nov-18 | 2022-Jan-06 | 2022-Feb-01 | M98 | v16.13 |
-| 18.0.0 | 2022-Feb-03 | 2022-Mar-03 | 2022-Mar-29 | M100 | TBD |
+
+**Historical changes:**
+
+* Since Electron 5, Electron has been publicizing its release dates ([see blog post](https://electronjs.org/blog/electron-5-0-timeline)).
+* Since Electron 6, Electron major versions have been targeting every other Chromium major version. Each Electron stable should happen on the same day as Chrome stable ([see blog post](https://www.electronjs.org/blog/12-week-cadence)). When this was announced
+* Since Electron 16, Electron has been releasing major versions on an 8-week cadence in accordance to Chrome's change to a 4-week release cadence ([see blog post](https://www.electronjs.org/blog/8-week-cadence).
+
+:::info Chrome release dates
+
+Chromium has the own public release schedule [here](https://chromiumdash.appspot.com/schedule).
+
+:::
+
+## Version support policy
+
+:::info
+
+Beginning in September 2021 (Electron 15), the Electron team
+will temporarily support the latest **four** stable major versions. This
+extended support is intended to help Electron developers transition to
+the [new 8-week release cadence](https://electronjs.org/blog/8-week-cadence),
+and will continue until the release of Electron 19. At that time,
+the Electron team will drop support back to the latest three stable major versions.
+
+:::
+
+The latest three *stable* major versions are supported by the Electron team.
+For example, if the latest release is 6.1.x, then the 5.0.x as well
+as the 4.2.x series are supported. We only support the latest minor release
+for each stable release series. This means that in the case of a security fix,
+6.1.x will receive the fix, but we will not release a new version of 6.0.x.
+
+The latest stable release unilaterally receives all fixes from `main`,
+and the version prior to that receives the vast majority of those fixes
+as time and bandwidth warrants. The oldest supported release line will receive
+only security fixes directly.
+
+### Breaking API changes
+
+When an API is changed or removed in a way that breaks existing functionality, the
+previous functionality will be supported for a minimum of two major versions when
+possible before being removed. For example, if a function takes three arguments,
+and that number is reduced to two in major version 10, the three-argument version would
+continue to work until, at minimum, major version 12. Past the minimum two-version
+threshold, we will attempt to support backwards compatibility beyond two versions
+until the maintainers feel the maintenance burden is too high to continue doing so.
+
+### End-of-life
+
+When a release branch reaches the end of its support cycle, the series
+will be deprecated in NPM and a final end-of-support release will be
+made. This release will add a warning to inform that an unsupported
+version of Electron is in use.
+
+These steps are to help app developers learn when a branch they're
+using becomes unsupported, but without being excessively intrusive
+to end users.
+
+If an application has exceptional circumstances and needs to stay
+on an unsupported series of Electron, developers can silence the
+end-of-support warning by omitting the final release from the app's
+`package.json` `devDependencies`. For example, since the 1-6-x series
+ended with an end-of-support 1.6.18 release, developers could choose
+to stay in the 1-6-x series without warnings with `devDependency` of
+`"electron": 1.6.0 - 1.6.17`.

+ 10 - 1
docs/tutorial/electron-versioning.md

@@ -48,7 +48,7 @@ Stabilization branches are branches that run parallel to `main`, taking in only
 
 Since Electron 8, stabilization branches are always **major** version lines, and named against the following template `$MAJOR-x-y` e.g. `8-x-y`.  Prior to that we used **minor** version lines and named them as `$MAJOR-$MINOR-x` e.g. `2-0-x`.
 
-We allow for multiple stabilization branches to exist simultaneously, one for each supported version. For more details on which versions are supported, see our [Electron Release Timelines](./electron-timelines.md) doc.
+We allow for multiple stabilization branches to exist simultaneously, one for each supported version. For more details on which versions are supported, see our [Electron Releases](./electron-timelines.md) doc.
 
 ![Multiple Stability Branches](../images/versioning-sketch-2.png)
 
@@ -107,6 +107,15 @@ A few examples of how various SemVer ranges will pick up new releases:
 
 ![Semvers and Releases](../images/versioning-sketch-7.png)
 
+### Backport request process
+
+All supported release lines will accept external pull requests to backport
+fixes previously merged to `main`, though this may be on a case-by-case
+basis for some older supported lines. All contested decisions around release
+line backports will be resolved by the
+[Releases Working Group](https://github.com/electron/governance/tree/main/wg-releases)
+as an agenda item at their weekly meeting the week the backport PR is raised.
+
 ## Feature flags
 
 Feature flags are a common practice in Chromium, and are well-established in the web-development ecosystem. In the context of Electron, a feature flag or **soft branch** must have the following properties:

+ 4 - 127
docs/tutorial/support.md

@@ -1,128 +1,5 @@
-# Electron Support
+# This doc has moved!
 
-## Finding Support
-
-If you have a security concern,
-please see the [security document](https://github.com/electron/electron/tree/main/SECURITY.md).
-
-If you're looking for programming help,
-for answers to questions,
-or to join in discussion with other developers who use Electron,
-you can interact with the community in these locations:
-
-* [Electron's Discord server](https://discord.com/invite/APGC3k5yaH) has channels for:
-  * Getting help
-  * Ecosystem apps like [Electron Forge](https://github.com/electron-userland/electron-forge) and [Electron Fiddle](https://github.com/electron/fiddle)
-  * Sharing ideas with other Electron app developers
-  * And more!
-* [`electron`](https://discuss.atom.io/c/electron) category on the Atom forums
-* `#electron` channel on [Atom's Slack](https://discuss.atom.io/t/join-us-on-slack/16638?source_topic_id=25406)
-* [`electron-ru`](https://telegram.me/electron_ru) *(Russian)*
-* [`electron-br`](https://electron-br.slack.com) *(Brazilian Portuguese)*
-* [`electron-kr`](https://electron-kr.github.io/electron-kr) *(Korean)*
-* [`electron-jp`](https://electron-jp.slack.com) *(Japanese)*
-* [`electron-tr`](https://electron-tr.herokuapp.com) *(Turkish)*
-* [`electron-id`](https://electron-id.slack.com) *(Indonesia)*
-* [`electron-pl`](https://electronpl.github.io) *(Poland)*
-
-If you'd like to contribute to Electron,
-see the [contributing document](https://github.com/electron/electron/blob/main/CONTRIBUTING.md).
-
-If you've found a bug in a [supported version](#supported-versions) of Electron,
-please report it with the [issue tracker](../development/issues.md).
-
-[awesome-electron](https://github.com/sindresorhus/awesome-electron)
-is a community-maintained list of useful example apps,
-tools and resources.
-
-## Supported Versions
-
-_**Note:** Beginning in September 2021 with Electron 15, the Electron team
-will temporarily support the latest **four** stable major versions. This
-extended support is intended to help Electron developers transition to
-the [new eight week release cadence](https://electronjs.org/blog/8-week-cadence), and will continue until May 2022, with
-the release of Electron 19. At that time, the Electron team will drop support
-back to the latest three stable major versions._
-
-The latest three *stable* major versions are supported by the Electron team.
-For example, if the latest release is 6.1.x, then the 5.0.x as well
-as the 4.2.x series are supported.  We only support the latest minor release
-for each stable release series.  This means that in the case of a security fix
-6.1.x will receive the fix, but we will not release a new version of 6.0.x.
-
-The latest stable release unilaterally receives all fixes from `main`,
-and the version prior to that receives the vast majority of those fixes
-as time and bandwidth warrants. The oldest supported release line will receive
-only security fixes directly.
-
-All supported release lines will accept external pull requests to backport
-fixes previously merged to `main`, though this may be on a case-by-case
-basis for some older supported lines. All contested decisions around release
-line backports will be resolved by the [Releases Working Group](https://github.com/electron/governance/tree/main/wg-releases) as an agenda item at their weekly meeting the week the backport PR is raised.
-
-When an API is changed or removed in a way that breaks existing functionality, the
-previous functionality will be supported for a minimum of two major versions when
-possible before being removed. For example, if a function takes three arguments,
-and that number is reduced to two in major version 10, the three-argument version would
-continue to work until, at minimum, major version 12. Past the minimum two-version
-threshold, we will attempt to support backwards compatibility beyond two versions
-until the maintainers feel the maintenance burden is too high to continue doing so.
-
-### Currently supported versions
-
-* 19.x.y
-* 18.x.y
-* 17.x.y
-* 16.x.y
-
-### End-of-life
-
-When a release branch reaches the end of its support cycle, the series
-will be deprecated in NPM and a final end-of-support release will be
-made. This release will add a warning to inform that an unsupported
-version of Electron is in use.
-
-These steps are to help app developers learn when a branch they're
-using becomes unsupported, but without being excessively intrusive
-to end users.
-
-If an application has exceptional circumstances and needs to stay
-on an unsupported series of Electron, developers can silence the
-end-of-support warning by omitting the final release from the app's
-`package.json` `devDependencies`. For example, since the 1-6-x series
-ended with an end-of-support 1.6.18 release, developers could choose
-to stay in the 1-6-x series without warnings with `devDependency` of
-`"electron": 1.6.0 - 1.6.17`.
-
-## Supported Platforms
-
-Following platforms are supported by Electron:
-
-### macOS
-
-Only 64bit binaries are provided for macOS, and the minimum macOS version
-supported is macOS 10.11 (El Capitan).
-
-Native support for Apple Silicon (`arm64`) devices was added in Electron 11.0.0.
-
-### Windows
-
-Windows 7 and later are supported, older operating systems are not supported
-(and do not work).
-
-Both `ia32` (`x86`) and `x64` (`amd64`) binaries are provided for Windows.
-[Native support for Windows on Arm (`arm64`) devices was added in Electron 6.0.8.](windows-arm.md).
-Running apps packaged with previous versions is possible using the ia32 binary.
-
-### Linux
-
-The prebuilt binaries of Electron are built on Ubuntu 18.04.
-
-Whether the prebuilt binary can run on a distribution depends on whether the
-distribution includes the libraries that Electron is linked to on the building
-platform, so only Ubuntu 18.04 is guaranteed to work, but following platforms
-are also verified to be able to run the prebuilt binaries of Electron:
-
-* Ubuntu 14.04 and newer
-* Fedora 24 and newer
-* Debian 8 and newer
+* For information on supported releases, see the [Electron Releases](./electron-timelines.md) doc.
+* For community support on Electron, see the [Community page](https://www.electronjs.org/community).
+* For platform support info, see the [README](https://github.com/electron/electron/blob/main/README.md).