diff --git a/docs/VERSIONING.md b/docs/VERSIONING.md new file mode 100644 index 000000000..fa14a2f33 --- /dev/null +++ b/docs/VERSIONING.md @@ -0,0 +1,47 @@ +# Summary + + +``` + ┌──────────────────────────┐ + ┌─────┤ diracx/base:YYYY.MM.DD.P ├─────┐ + │ └──────────────────────────┘ │ + │ │ +┌────────────────▼──────────────────┐ ┌────────────────▼───────────────┐ +│ diracx/services-base:YYYY.MM.DD.P │ │ diracx/tasks-base:YYYY.MM.DD.P │ +└────────────────┬──────────────────┘ └────────────────┬───────────────┘ + │ │ + ┌───────────▼────────────┐ ┌──────────▼──────────┐ + │ diracx/services:v0.X.Y │ │ diracx/tasks:v0.X.Y │ + └────────────────────────┘ └─────────────────────┘ + +``` + + +# Dependencies + + +duplication between setup.cfg and environment.yaml + +diracx/base: Dockerfile with environment.yml (basically python version) +diracx/services-base: diracx/base Image + Dockerfile + environment.yml (fastapi + +whatever service needs) +diracx/services image: diracx/service-base + Dockerfile + pip install --no-dependencies diracx-service +diracx/tasks-base image: diracx/base Image + Dockerfile + environment.yml (gfal2 + htcondor + whatever tasks needs) +diracx/tasks image: diracx/tasks-base + Dockerfile + pip install --no-dependencies diracx-tasks + + + +# Image versioning + +diracx/base, diracx/service-base and diracx/tasks-base are versionned by date and regenerated every Monday. The ``latest`` tag moves along. + +A DiracX release results in the creation of new DiracXService and diracx/tasks images, base on **specific** diracx/base tags (not ``latest``), which is the latest at this point in time + +This way, we are sure that whatever run in production is stable. + +As for the DiracX tests, they can start from the ``latest`` base images, and do `pip install` with allowed dependencies + + +# DiracX versioning + +It is too early to decide on a proper long term scheme, but for the forseable future (DIRAC is around), we will have v0...