feat: source of truth for version support #18
+231
−20
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🚧 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: