This document lists the versioning scheme adopted in the OpenServerles projects.
We use semantic version in this format:
X.Y.Z-<timestamp>.<variant>
the <timestamp> is in format yymmddHHMM and can be obtained easily with date +%y%m%d%H%M
the <variant> identifies some state like <dev> <alpha> or some special cases
Whem using versions in tags (like in the CLI) the version MUST have the v in front. This is required by GO versioning.
When using version in branches (like in tasks) the version MUST NOT have the v in from. This makes easier to compare.
We should use versions in docker image tags. We have 2 cases:
we follow the general schema: for example apache/openserverless-operator:0.1.0-alpha.2407311416
Runtimes are special because they depends on the language so the version is actually
<language-version>-<timestamp>[.<variant>]
where:
<language-version> is the version of the language (Python 3.11, NodeJS 20.1 etc)<timestamp> is the timestamp (and it is automatically calculated and)<variant> identifies a variant of the image, like an ai version (3.11-2407311140.ai) or a customer specific version (3.11-2407311140.ca).