Some projects bump version before kicking off a new development, while the other projects bump version when tagging a release.
Which approach is better?
If version number not changed at the start of new phase, the developers may forget to change it and simply release the program.
If version number changed before tagging release, then 2 the version numbers (tag and Makefile/AssemblyInfo.cs) do not match.
git describe may give you v220.127.116.11-15-g1234567 if current revision is after v18.104.22.168, but you have already changed the files to have v22.214.171.124