JulianFrattini/cira

Versioning

Closed this issue · 1 comments

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.

I'll investigate the use of setup.py and pyproject.toml