Skip to content

Commit 1bd34ee

Browse files
committed
docs: document the release process
1 parent 0440a9c commit 1bd34ee

File tree

2 files changed

+100
-0
lines changed

2 files changed

+100
-0
lines changed
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# Making and deploying releases
2+
3+
The versioning of `DIRAC`, `DIRACCommon`, `diracx`, `diracx-charts` and all the extensions are very linked to one another.
4+
5+
```mermaid
6+
flowchart LR
7+
subgraph diracx-block["diracx"]
8+
diracx-charts("diracx-charts")
9+
diracx("diracx")
10+
diracx-web("diracx-web")
11+
end
12+
13+
subgraph extension-block["extension"]
14+
extension("extension")
15+
extension-web("extension-web")
16+
extension-charts("extension-charts")
17+
end
18+
19+
20+
diracx -->|commit| diracx-charts
21+
diracx-web -->|commit| diracx-charts
22+
23+
diracx -->|renovate| extension
24+
diracx-web -->|renovate| extension-web
25+
extension -->|commit and bump diracx-charts| extension-charts
26+
extension-web -->|commit| extension-charts
27+
28+
linkStyle 0 stroke: blue
29+
linkStyle 1 stroke: blue
30+
linkStyle 2 stroke: red
31+
linkStyle 3 stroke: red
32+
linkStyle 4 stroke: blue
33+
linkStyle 5 stroke: blue
34+
```
35+
36+
## Dependencies between diracx, DIRAC and DIRACCommon
37+
38+
Both `DIRAC` and `diracx` depend on `DIRACCommon`. However, `DIRACCommon` is in the same repository as `DIRAC`, and versioned together. This means that if we need to move code from `DIRAC` to `DIRACCommon` such that it is usable by `diracx`, we need first a new release of `DIRAC` and `DIRACCommon` just moving the code, before being able to use it in `diracx`.
39+
40+
The releases of `DIRAC` and `DIRACCommon` are managed as they have always been, and are described in the `DIRAC` documentation
41+
42+
## Dependencies between diracx and diracx-charts
43+
44+
`diracx-charts` has a version number, as well as an `appversion`, which corresponds to the `diracx` version. This means that a new release of `diracx` requires a new `diracx-charts` release, which will update:
45+
46+
- the diracx-charts version
47+
- the AppVersion
48+
- the container versions
49+
50+
The `update-charts` CI job in `diracx` pushes a new commit in `diracx-charts`, which results in a new `diracx-charts` release.
51+
52+
## Dependencies between diracx and the extensions
53+
54+
Because the client extension regenerates the vanilla diracx client as well, the extension MUST have a strict dependency on the `diracx` version. This dependency is at the level of the python packaging (`pyproject.toml`) as well as in the containers (`Dockerfile`).
55+
56+
Your extension should setup [Renovate](https://github.com/renovatebot/renovate), this way it will pick up the new `diracx` version.
57+
58+
In turn, a new extension release should trigger a release of your extension chart.
59+
In this case, a new extension-chart release means updating:
60+
61+
- the chart version
62+
- the AppVersion
63+
- the containers versions
64+
- the diracx-charts version to the latest compatible with the diracx version required by lhcbdiracx
65+
66+
## Dependencies between diracx, diracx-web and diracx-charts
67+
68+
The `diracx-web` version is only very loosely coupled with the `diracx` version.
69+
A new `diracx-web` release will trigger a new `diracx-charts` updating:
70+
71+
- the chart version
72+
- the container versions
73+
- NOT the AppVersion
74+
75+
## diracx release
76+
77+
Token for release please in dirac is a token belonging which diracbot github user
78+
79+
[PROCESS TO BE COMPLETED BY ALEXANDRE]
80+
81+
A new release creates:
82+
83+
- a [github release](https://github.com/DIRACGrid/diracx/releases)
84+
- a [pypi release](https://pypi.org/project/diracx/)
85+
- new [docker images](https://github.com/DIRACGrid/diracx/)
86+
87+
### Force version number
88+
89+
You can force a specific version number following the [doc](https://github.com/googleapis/release-please?tab=readme-ov-file#how-do-i-change-the-version-number)
90+
91+
```bash
92+
git commit --allow-empty -m "chore: release 0.0.3" -m "Release-As: v0.0.3"
93+
git push upstream HEAD:main
94+
```
95+
96+
## diracx-charts releases
97+
98+
Every commit in master triggers a new release.
99+
A release

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ nav:
109109
- Security Model: admin/reference/security_model.md
110110
- Settings and Preferences: admin/reference/settings-and-preferences.md
111111
- Environment variables: admin/reference/env-variables.md
112+
- Making and deploying releases: dev/reference/making-releases.md
112113
- Charts values: admin/reference/values.md
113114
- RUN_PROD.md
114115
- SSO.md

0 commit comments

Comments
 (0)