4 ms·
For major products we use v3-alpha-789 where 789 is number of commits since tag v3-alpha, v3 is the marketing version, and alpha is the maturity statement, here
by dustingetz 2y ago
For major products we use v3-alpha-789 where 789 is number of commits since tag v3-alpha, v3 is the marketing version, and alpha is the maturity statement, here meaning “stable with new feature work and enhancements in development, minor breaking changes are allowed”. For minor projects we use v20220101-789, which means “read the commit log”. There is a “git describe” flag to generate these strings. The v prefix makes the strings valid git tags.
Advantage of git tags also is they can be assigned after the fact without changing the content hash, which means you can repackage releases under a new name (e.g. to republish a release candidate as stable) without needing any automated boilerplate commits. In Clojure ecosystem there are a bunch of stable libraries with -alpha baked into various places, and no way to fix it without hours of maintainer attention to click stupid buttons and run fragile scripts (with possible breaking changes!, e.g. god forbid you put -alpha in the namespace name, which core actually did). The maturity tag belongs in the git tag!