feat: source of truth for version support #18
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/edocs 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.jsonand/versions.json(which is just/support.json+/releases.jsoncombined) 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/versionspackage which takes theVersionslogic from@electron/fiddle-coreand refactors to use/versions.jsonso that supported majors are not hardcoded@electron/versionspackage and remove the duplicated logic we have with a hardcoded number of supported versions:electron/rollerelectron/sudowoodoelectron/tropelectron/unreleasedelectron/website@electron/fiddle-coreand Fiddle to use@electron/versions, ensuring that Fiddle accurately reflects supported majors/support.jsonto pull the stable kickoff date when creating new release project boards one/e@electron/fiddle-coreto find the latest stable release to using@electron/versionselectron/chromedriverelectron/mksnapshot❓ Soliciting feedback on key names and the overall data shape here. Currently it's an array (similar to the existing
/releases.jsondata 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: