Versioning
Closed this issue · 1 comments
andreas-bauer commented
This project should have version information deployed and communicate different states of CiRA.
My proposal for versioning is as follows:
cira application:
- Semantic version on a Python package level. So that CiRA could be distributed as a Python package.
setup.py
or something similar could be used to declare the version.- REST API should be able to show the version of the application, e.g., with an endpoint like
/api/health
or/api/version
. - git tags or GitHub releases are not necessary since the main way of distributing CiRA will be Docker images.
cira application Docker image:
- A new build of the application Docker container will have two tags attached to the image:
latest
and the semantic version of the application, e.g.,1.3.2
. - The application images always use
FROM cira-dev:latest
when created. - Older versions can be pulled using the semantic version, e.g.,
cira:1.3.2
.
cira-dev Docker image:
- A new build of the dev container has always the
latest
tag without any further versioning information. Previous states can be pulled by using the git hash, e.g.,cira-dev@sha256:0276f14...
. - In my opinion, additional versioning information for the dev container confuses more than it helps.
JulianFrattini commented
I'll investigate the use of setup.py and pyproject.toml