This commit changes the KES CLI and server versioning scheme from
semver to a rolling release model where the server version is the
RFC3339 commit timestamp.
In general, semver is useful for libraries, like the KES SDK, to
signal compatibility and API breaking changes.
However, it is less useful for a server and CLI. Further, the KES
repo contains the SDK as well as the CLI and server code. If, for
example, there would be a breaking change in the SDK but not in the
CLI or server API we still would create a new major release of the
KES server and CLI. Likewise vice-versa.
Hence, we separate the SDK and CLI/server versioning. The SDK continuous
to use semver. However, the CLI and server will use rolling release
versioning.
In particular, the CLI and server version is now the time of the last
commit. For example: 2022-12-01T11-40-08Z.
This allows snapshot and hotfix releases at any point in time without
implications on the SDK semver.
Also, this information is automatically available in the Go binary.
Ref: go version -m <binary>
This commit changes the KES CLI and server versioning scheme from semver to a rolling release model where the server version is the RFC3339 commit timestamp.
In general, semver is useful for libraries, like the KES SDK, to signal compatibility and API breaking changes. However, it is less useful for a server and CLI. Further, the KES repo contains the SDK as well as the CLI and server code. If, for example, there would be a breaking change in the SDK but not in the CLI or server API we still would create a new major release of the KES server and CLI. Likewise vice-versa.
Hence, we separate the SDK and CLI/server versioning. The SDK continuous to use semver. However, the CLI and server will use rolling release versioning.
In particular, the CLI and server version is now the time of the last commit. For example:
2022-12-01T11-40-08Z
.This allows snapshot and hotfix releases at any point in time without implications on the SDK semver. Also, this information is automatically available in the Go binary. Ref:
go version -m <binary>
We convert the RFC3339 time format by replacing all ':' with '-' since git tags and docker image names cannot contain a ':'.