135 lines
7.6 KiB
Markdown
135 lines
7.6 KiB
Markdown
# Electron Releases
|
|
|
|
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 | EOL | Chrome | Node | Supported |
|
|
| ------- | ----- | ------- | ------ | ------ | ---- | ---- | ---- |
|
|
| 28.0.0 | 2023-Oct-11 | 2023-Nov-6 | 2023-Dec-5 | TBD | M120 | TBD | ✅ |
|
|
| 27.0.0 | 2023-Aug-17 | 2023-Sep-13 | 2023-Oct-10 | 2024-Apr-16 | M118 | v18.17 | ✅ |
|
|
| 26.0.0 | 2023-Jun-01 | 2023-Jun-27 | 2023-Aug-15 | 2024-Feb-27 | M116 | v18.16 | ✅ |
|
|
| 25.0.0 | 2023-Apr-10 | 2023-May-02 | 2023-May-30 | 2024-Jan-02 | M114 | v18.15 | ✅ |
|
|
| 24.0.0 | 2023-Feb-09 | 2023-Mar-07 | 2023-Apr-04 | 2023-Oct-10 | M112 | v18.14 | 🚫 |
|
|
| 23.0.0 | 2022-Dec-01 | 2023-Jan-10 | 2023-Feb-07 | 2023-Aug-15 | M110 | v18.12 | 🚫 |
|
|
| 22.0.0 | 2022-Sep-29 | 2022-Oct-25 | 2022-Nov-29 | 2023-Oct-10 | M108 | v16.17 | 🚫 |
|
|
| 21.0.0 | 2022-Aug-04 | 2022-Aug-30 | 2022-Sep-27 | 2023-Apr-04 | M106 | v16.16 | 🚫 |
|
|
| 20.0.0 | 2022-May-26 | 2022-Jun-21 | 2022-Aug-02 | 2023-Feb-07 | M104 | v16.15 | 🚫 |
|
|
| 19.0.0 | 2022-Mar-31 | 2022-Apr-26 | 2022-May-24 | 2022-Nov-29 | M102 | v16.14 | 🚫 |
|
|
| 18.0.0 | 2022-Feb-03 | 2022-Mar-03 | 2022-Mar-29 | 2022-Sep-27 | M100 | v16.13 | 🚫 |
|
|
| 17.0.0 | 2021-Nov-18 | 2022-Jan-06 | 2022-Feb-01 | 2022-Aug-02 | M98 | v16.13 | 🚫 |
|
|
| 16.0.0 | 2021-Sep-23 | 2021-Oct-20 | 2021-Nov-16 | 2022-May-24 | M96 | v16.9 | 🚫 |
|
|
| 15.0.0 | 2021-Jul-20 | 2021-Sep-01 | 2021-Sep-21 | 2022-May-24 | M94 | v16.5 | 🚫 |
|
|
| 14.0.0 | -- | 2021-May-27 | 2021-Aug-31 | 2022-Mar-29 | M93 | v14.17 | 🚫 |
|
|
| 13.0.0 | -- | 2021-Mar-04 | 2021-May-25 | 2022-Feb-01 | M91 | v14.16 | 🚫 |
|
|
| 12.0.0 | -- | 2020-Nov-19 | 2021-Mar-02 | 2021-Nov-16 | M89 | v14.16 | 🚫 |
|
|
| 11.0.0 | -- | 2020-Aug-27 | 2020-Nov-17 | 2021-Aug-31 | M87 | v12.18 | 🚫 |
|
|
| 10.0.0 | -- | 2020-May-21 | 2020-Aug-25 | 2021-May-25 | M85 | v12.16 | 🚫 |
|
|
| 9.0.0 | -- | 2020-Feb-06 | 2020-May-19 | 2021-Mar-02 | M83 | v12.14 | 🚫 |
|
|
| 8.0.0 | -- | 2019-Oct-24 | 2020-Feb-04 | 2020-Nov-17 | M80 | v12.13 | 🚫 |
|
|
| 7.0.0 | -- | 2019-Aug-01 | 2019-Oct-22 | 2020-Aug-25 | M78 | v12.8 | 🚫 |
|
|
| 6.0.0 | -- | 2019-Apr-25 | 2019-Jul-30 | 2020-May-19 | M76 | v12.14.0 | 🚫 |
|
|
| 5.0.0 | -- | 2019-Jan-22 | 2019-Apr-23 | 2020-Feb-04 | M73 | v12.0 | 🚫 |
|
|
| 4.0.0 | -- | 2018-Oct-11 | 2018-Dec-20 | 2019-Oct-22 | M69 | v10.11 | 🚫 |
|
|
| 3.0.0 | -- | 2018-Jun-21 | 2018-Sep-18 | 2019-Jul-30 | M66 | v10.2 | 🚫 |
|
|
| 2.0.0 | -- | 2018-Feb-21 | 2018-May-01 | 2019-Apr-23 | M61 | v8.9 | 🚫 |
|
|
|
|
**Notes:**
|
|
|
|
* The `-alpha.1`, `-beta.1`, and `stable` dates are our solid release dates.
|
|
* We strive for weekly alpha/beta releases, but we often release more than scheduled.
|
|
* All dates are our goals but there may be reasons for adjusting the stable deadline, such as security bugs.
|
|
|
|
**Historical changes:**
|
|
|
|
* Since Electron 5, Electron has been publicizing its release dates ([see blog post](https://www.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)).
|
|
* 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)).
|
|
|
|
## Version support policy
|
|
|
|
:::info
|
|
|
|
The Electron team will temporarily support Electron 22 until October 10, 2023.
|
|
This extended support is intended to help Electron developers who still need
|
|
support for Windows 7/8/8.1, which ended support in Electron 23. The October
|
|
support date follows the extended support dates from both Chromium and Microsoft.
|
|
On October 11, 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.
|
|
|
|
### Chromium version support
|
|
|
|
:::info Chromium release schedule
|
|
|
|
Chromium's public release schedule is [here](https://chromiumdash.appspot.com/schedule).
|
|
|
|
:::
|
|
|
|
Electron targets Chromium even-number versions, releasing every 8 weeks in concert
|
|
with Chromium's 4-week release schedule. For example, Electron 26 uses Chromium 116, while Electron 27 uses Chromium 118.
|
|
|
|
### Node.js version support
|
|
|
|
Electron upgrades its `main` branch to even-number versions of Node.js when they enter Active LTS. The schedule
|
|
is as follows:
|
|
|
|
<img src="https://raw.githubusercontent.com/nodejs/Release/main/schedule.svg?sanitize=true" alt="Releases">
|
|
|
|
As a rule, stable branches of Electron do not receive Node.js upgrades after they have been cut.
|
|
If Electron has recently updated its `main` branch to a new major version of Node.js, the next stable
|
|
branch to be cut will be released with the new version.
|
|
|
|
Patch upgrades of Node that contain significant security or bug fixes, and are submitted
|
|
more than 2 weeks prior to a stable release date, will be accepted into an Electron alpha
|
|
or beta release branch.
|
|
|
|
Minor upgrades of Node that contain significant security or bug fixes, and are submitted
|
|
more than 2 weeks prior to a stable release date may be accepted into an Electron alpha or
|
|
beta release branch on a case-by-case basis. These requests will be reviewed and voted on
|
|
by the [Releases Working Group](https://github.com/electron/governance/tree/main/wg-releases),
|
|
to ensure minimal disruption for developers who may be consuming alpha or beta releases.
|
|
|
|
### 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`.
|