Bithack / principia

Open source physics-based sandbox game.
https://principia-web.se
Other
260 stars 25 forks source link

Switching to CalVer #153

Closed rollerozxa closed 3 months ago

rollerozxa commented 5 months ago

Ever since the initial open sourcing of the game, Principia has been developed to eventually reach a state where version 1.5.2 will be released. And to tide people over during its development, beta builds were released to provide people who do not (or cannot) build from source recent builds of the open source Principia.

However as I see it now I don't think a 1.5.2, as I envision it, will ever be released within the next couple of years. I initially thought that we should get things fixed up so that we can release what would basically be "1.5.1 without DRM, with up to date dependencies, with HTTPS, with Linux support", make a lit trailer and achieve world domination. Now that we've added new features to it, and I now would very much like puzzles to be fixed before 1.5.2 releases, the scope creep is inevitable. And to be honest, I don't really want to limit or hold onto adding new features to some future 1.6 version, I just want to be able to do it right now.

The beta builds versioned by date that I release onto principia-web has basically become de-facto new versions, making 1.5.2 basically a perpetual beta or a rolling release. So we might as well go the extra mile and rebrand these beta builds as being full release versions.

So as such, with the next "beta build", Principia will be switching to CalVer (Calendar Versioning). This won't be much different from the current 1.5.2 beta builds which are already versioned by date, but this time they will be considered more "full versions", their version code will be incremented, and will also be tagged in Git. This will make it easier for versioning Linux packaging (which currently either tracks the master branch or is fixed to random commits in the history) as well as allowing Principia to be included in F-Droid which requires full version code increments for each release due to how the Android ecosystem works.

When a new version is released, the version number will use the date of its release in ISO8601 format, but with dots for separators (Linux package managers will turn the dashes into dots anyways, so might as well be consistent). For example, Principia 1.5.2 Beta build 2023-12-26 would have been Principia 2023.12.26.

With this, it also means that officially, new features are accepted (even though it has already been the case for some while). Assuming they are unique and add something new to the game, of course.