blob: eac2f7eb0ad406812321b3c0c4e87583de78f8dd [file] [view]
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
# Versioning in OpenServerless
This document lists the versioning scheme adopted in the OpenServerles projects.
# General schema:
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
# Tags and branches
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.
# Image tags
We should use versions in docker image tags. We have 2 cases:
- normal tags of OpenServerless images, like the operator:
we follow the general schema: for example apache/openserverless-operator:0.1.0-alpha.2407311416
- runtimes
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).