Disallow user tagging with SemVer (which is what causes a release).
Create a YAML file (or something similar) that has the current released version.
Add an action that detects changes to the YAML file and tags the commit that included the version change. This step will cause a release as it currently does but it will be guaranteed to be committed.
This would make the release procedure PR based and ensure everything is committed before generating a version tag; it has the added benefit of doing the tagging automatically.
We can make releasing easier:
This would make the release procedure PR based and ensure everything is committed before generating a version tag; it has the added benefit of doing the tagging automatically.