104 lines
		
	
	
	
		
			5.7 KiB
			
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
	
		
			5.7 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 |
 | 
						|
| ------- | ----- | ------- | ------ | ------ | ---- | ---- | ---- |
 | 
						|
| 23.0.0 | 2022-Dec-01 | 2023-Jan-10 | 2023-Feb-07 | TBD | M110 | TBD | ✅ |
 | 
						|
| 22.0.0 | 2022-Sep-29 | 2022-Oct-25 | 2022-Nov-29 | TBD | M108 | v16.17 | ✅ |
 | 
						|
| 21.0.0 | 2022-Aug-04 | 2022-Aug-30 | 2022-Sep-27 | TBD | M106 | v16.16 | ✅ |
 | 
						|
| 20.0.0 | 2022-May-26 | 2022-Jun-21 | 2022-Aug-02 | TBD | 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://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)).
 | 
						|
 | 
						|
:::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`.
 |