AAAAXY releases are published in the following places:
- GitHub Releases
- AppImage
- Primary copy on GitHub Releases; seems mirrored in lots of places.
- Snap
- Flathub
- Analytics
- To see active users per release, run
sh scripts/flathub-stats.sh
.
- Itch
The official binary release is built using
sh scripts/binary-release.sh
. This will also print instructions about
releasing to AppImage, Snap, Flathub and Itch.
We follow semantic versioning, but in an adapted form to suppport speedrunning leaderboards.
Thus, the version components are incremented as follows:
- Level version must be incremented on changes that break most save
games in ways that are not easy to "repair".
- In particular removing or renaming checkpoint internal names causes this; the game will not start if the current checkpoint is not on the map.
- However, changing a checkpoint's "text" property is OK and does not require a level version bump.
- Generally such changes are strongly discouraged.
- This also requires bumping the major version. Set the level version to the new major version then.
- Major version must be incremented on changes that likely break
existing speedruns.
- In particular, slowing down a section required for any speedrun categories, including 100%, requires a major version bump.
- Exception: when some major cheese (grossly unintended skip) is fixed, a minor version bump is sufficient.
- Exception: slowing down "All Secrets" speedruns only requires a minor version bump.
- Minor version must be incremented on changes that likely add faster
speedruns.
- In particular, simplifying a section or making it optional requires a minor version bump.
- Incrementing is also permissible for other "interesting" changes.
- Patch level must be incremented in any other case.
- We use
*-alpha.*
pre-release sub-versions whenever major or minor have been bumped; this only gets turned into a real new<major>.<minor>.0
version when actually releasing.- When patch level is bumped, switching to a pre-release version is not necessary.
Note that I say “likely”; if a section is not required for any known/published speedrun, slowing it down may not require a major version bump.
Version is partially automated using git.
The version is built based on the closest git v<major>.<minor>-alpha
or v<major>.<minor>
tag. Binary releases will be tagged
v<major>.<minor>.<patch>
or v<major>.<minor>.0-alpha<patch>
; any
commit on git counts as a source-only release with a patchlevel and
needs not be released as a binary.
The Windows scheme differs a little from semantic versioning by using a
major.minor.revision.buildnumber
scheme. We convert as follows:
major
maps tomajor
.minor
maps tominor
.patch
maps torevision+N
where N is0
for alpha,10000
for beta,20000
for rc and30000
for finished versions.buildnumber
is always the total number of commits in the repository.