Currently, Git versioning with Thunderstore manifest still causes some redundancy. Version tags in Git do not correspond with the package version, even though this is often the case. The standalone version of Mason should infer versions from Git, with a config to opt out. The version manifest property should not be required when using standalone, but it should still error on patcher.
A possible way to do this is to get all tags for HEAD, filter them into the SemVer-like format used by Thunderstore, then pull the highest version. This should be fed into the compiler. A config entry should be added to specify the prefix that tags use, like how MinVer does it.
It is unknown what should be done about untagged builds. The feature should still work, but the resultant version should not be the same as any tagged build. One solution may be to zero out all components and reserve that version for unreleased builds.
Currently, Git versioning with Thunderstore manifest still causes some redundancy. Version tags in Git do not correspond with the package version, even though this is often the case. The standalone version of Mason should infer versions from Git, with a config to opt out. The
version
manifest property should not be required when using standalone, but it should still error on patcher.A possible way to do this is to get all tags for HEAD, filter them into the SemVer-like format used by Thunderstore, then pull the highest version. This should be fed into the compiler. A config entry should be added to specify the prefix that tags use, like how MinVer does it.
It is unknown what should be done about untagged builds. The feature should still work, but the resultant version should not be the same as any tagged build. One solution may be to zero out all components and reserve that version for unreleased builds.