Each .json file is a ‘release channel’:
preview.json: the user has opted in to this channel, or previously installed a prereleasestable.json: the user has only used stable releasesThe preview channel usually should point at the latest release, regardless of if it’s a prerelease or not; the stable channel should usually point at the latest stable release.
This decouples actually making releases from the autoupdates; in particular, this allows:
These files are in the same format as https://api.github.com/repos/OpenKneeboard/OpenKneeboard/releases, documented at https://docs.github.com/en/rest/releases
The files can be manually modified, but generation is usually desired:
generate.ps1git status and git diff to check the changesstable.json to push a new release only to the prerelease channel