Semantic versioning
I've moved the AgonConsole8 fork of agon-vdp to use semantic versioning.
There's several reasons why. On other projects I've used CI tooling that will do things like automatically increment version numbers and create new releases when new commits get pushed to main, and at some point I'd like to implement that.
Another reason is that I think it would be good for us to make more frequent releases. By having "major.minor.patch" it feels like the stakes are lower for cutting a new release that contains only patch changes. It's also not such a big deal to add in new minor features.
This PR sets the version at "2.0.0 Alpha 1". This is a straw-man number. Given that there has been quite a lot of changes made since the last full release, and this moves to a new version numbering system it feels like a justifiable number.
From the commit message:
move version info out to version.h file.
version info now a semantic version, with major, minor, patch, and “candidate” info, as well as an indicator for candidate type (displayed if candidate number is non-zero)
support for showing an automatically-generated build number added, which can be provided by a build script and is intended to be derived from the git hash
with this approach it should also be possible in the future to add other tooling to automatically increment version numbers
version info also includes the codebase variant, allowing us to easily differentiate between Quark and Console8
I'll switch to this after 1.04 has been released properly, save confusing everyone (including myself)