Prior to this change, `update.py` fails with `KeyError: 'alpha'` when upstream
does not have a version in the `experimental` channel:
./update.py --username XXXXXXXX --token "$(wl-paste)"
Traceback (most recent call last):
File "./update.py", line 180, in <module>
app.run(main)
File "/nix/store/854z51wg8fj1s6ghxasp1xxx8khb3r8v-python3-3.8.9-env/lib/python3.8/site-packages/absl/app.py", line 303, in run
_run_main(main, args)
File "/nix/store/854z51wg8fj1s6ghxasp1xxx8khb3r8v-python3-3.8.9-env/lib/python3.8/site-packages/absl/app.py", line 251, in _run_main
sys.exit(main(argv))
File "./update.py", line 162, in main
new_our_versions = generate_our_versions(factorio_versions)
File "./update.py", line 92, in generate_our_versions
version = factorio_versions[release_channel.name][release_type.name]
KeyError: 'alpha'
I chose to make it so that the versions in nixpkgs' `factorio-*` packages are
either experimental (when available) or stable, as this seems like the most
coherent approach
The updateScript knows how to automatically fetch and update the version
data from the Factorio versions API (and update the hashes
appropriately), which makes it easier to update whenever experimental
does.