This PR pulls that data into this repo and exposes a new /support.json and /versions.json (which is just /support.json + /releases.json combined) to act as the single source of truth for this information. There are two generated fields, isSupported (true if the major is not EOL) and isStable (true if the vX.0.0 release exists for the major).
Doing this lets us remove the hardcoding in this repo added in #15 to keep E22 as a stable release, since now that is dynamically determined by the EOL date in src/versions-support.json.
π The big picture idea is this information will be used in a bunch of places in downstream projects:
Create a new @electron/versions package which takes the Versions logic from @electron/fiddle-core and refactors to use /versions.json so that supported majors are not hardcoded
Update various bots to using the new @electron/versions package and remove the duplicated logic we have with a hardcoded number of supported versions:
electron/roller
electron/sudowoodo
electron/trop
electron/unreleased
Generate the documentation versions table (the source of this data) on electron/website
Currently it does not show v26, because it is showing the docs for v25. If we generate it based on this data, it will be updated each time the website does a deploy (regularly scheduled)
Update @electron/fiddle-core and Fiddle to use @electron/versions, ensuring that Fiddle accurately reflects supported majors
Migrate other repos using @electron/fiddle-core to find the latest stable release to using @electron/versions
electron/chromedriver
electron/mksnapshot
β Soliciting feedback on key names and the overall data shape here. Currently it's an array (similar to the existing /releases.json data shape) but it would also be reasonable to make it an object keyed by the major number, which is what Node.js does with their equivalent at https://github.com/nodejs/Release/blob/main/schedule.json.
Here's what the output for a given major looks like:
π§ Kicking this off for discussion.
Currently this information lives in a table in the
e/e
docs atdocs/tutorial/electron-timelines.md
, it was copied over directly (with dates tweaked to match expected format).This PR pulls that data into this repo and exposes a new
/support.json
and/versions.json
(which is just/support.json
+/releases.json
combined) to act as the single source of truth for this information. There are two generated fields,isSupported
(true if the major is not EOL) andisStable
(true if the vX.0.0 release exists for the major).Doing this lets us remove the hardcoding in this repo added in #15 to keep E22 as a stable release, since now that is dynamically determined by the EOL date in
src/versions-support.json
.π The big picture idea is this information will be used in a bunch of places in downstream projects:
@electron/versions
package which takes theVersions
logic from@electron/fiddle-core
and refactors to use/versions.json
so that supported majors are not hardcoded@electron/versions
package and remove the duplicated logic we have with a hardcoded number of supported versions:electron/roller
electron/sudowoodo
electron/trop
electron/unreleased
electron/website
@electron/fiddle-core
and Fiddle to use@electron/versions
, ensuring that Fiddle accurately reflects supported majors/support.json
to pull the stable kickoff date when creating new release project boards one/e
@electron/fiddle-core
to find the latest stable release to using@electron/versions
electron/chromedriver
electron/mksnapshot
β Soliciting feedback on key names and the overall data shape here. Currently it's an array (similar to the existing
/releases.json
data shape) but it would also be reasonable to make it an object keyed by the major number, which is what Node.js does with their equivalent at https://github.com/nodejs/Release/blob/main/schedule.json.Here's what the output for a given major looks like: