You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Our current snapshot versioning scheme is broken according to
SemVer. For example, every snapshot release after v0.104.3
is built as something like v0.104.3-SNAPSHOT-1234abcd, but that
would make it sort beforev0.104.3. It also
doesn't account for the fact that a Git hash can always be
numeric-only, which can also affect sorting in weird ways. What we should
do instead is something like:
NEXT_MINOR_RELEASE-alpha.NUM.gCOMMIT_HASH
Where NUM is the number of commits since the last real
release, and COMMIT_HASH is the hash of the commit. The
g prefix is required to force alphabetical sorting as opposed to
a numeric one.
We could also adopt the practice of having a VERSION file
in the repo that is updated before every release. This way, ZIP downloads
of the repo will also be able to build with the correct version.
We've merged the first part of it—the one about better snapshotting—into master today. New snapshot versions look like v0.123.0-a.56+abcd1234, where 123 is the next minor (not patch) release, and 56 is the number of commits since the last minor (not patch) release.
The next steps are a mechanism for ZIP downloads and a mechanism for release branches.
It seems like source code archives containing the version isn't a high priority for most users. Release branches seem to be working well. I think there isn't anything left to do here.
Our current snapshot versioning scheme is broken according to SemVer. For example, every snapshot release after
v0.104.3
is built as something likev0.104.3-SNAPSHOT-1234abcd
, but that would make it sort beforev0.104.3
. It also doesn't account for the fact that a Git hash can always be numeric-only, which can also affect sorting in weird ways. What we should do instead is something like:Where
NUM
is the number of commits since the last real release, andCOMMIT_HASH
is the hash of the commit. Theg
prefix is required to force alphabetical sorting as opposed to a numeric one.We could also adopt the practice of having a
VERSION
file in the repo that is updated before every release. This way, ZIP downloads of the repo will also be able to build with the correct version.Related:
The text was updated successfully, but these errors were encountered: