--- title: Release Process has_children: false nav_order: 2 --- # Release Process This document describes how to perform a new Theodolite release. We assume that we are creating the release `v0.3.1`. Please make sure to adjust the following steps according to the release, you are actually performing. 1. Create a new branch `v0.3` if it does not already exist. This branch will never again be merged into master. 2. Checkout the `v0.3` branch. 3. Update all references to artifacts which are versioned. This includes: 1. Update all references to Theodolite Docker images to tag `v0.3.1`. These are: 1. the default `helm/values.yaml` file, 2. the example `execution/theodolite.yaml` job, 3. the Kubernetes benchmark resources in `theodolite-benchmarks/definitions/**/resources` and 2. the Docker Compose files in `theodolite-benchmarks/docker-test`. 2. Update both, the `version` and the `appVersion` fields, in the Helm `Charts.yaml` file to `0.3.1`. 3. Update `codemeta.json` to match the new version. In particular, make sure that `version` points to the version you are releasing and `dateModified` points to the date you are relasing this version. [CodeMeata generator](https://codemeta.github.io/codemeta-generator/) may help you in updating the file. 4. Update `CITATION.cff` to match the new version. At least update the `version` field. 4. Create a Helm package by running `./build-package.sh` from the chart directory. 5. Update the Helm repository index of located at `/docs` by running `./update-index.sh v0.3.1`. 6. Commit these changes to the `v0.3` branch. 7. Tag this commit `v0.3.1` (can be done via GitLab). The corresponding Docker images will be uploaded. 8. Create *releases* on GitLab and GitHub. Upload the generated Helm package to these releases. 9. Switch to the `master` branch. 10. Re-run `./update-index.sh v0.3.1` to include the latest release in the *upstream* Helm repository. You can now delete the packaged Helm chart. 11. If this release increments Theodolite's *latest* version number, 1. Update the Helm `Charts.yaml` file to `0.4.0-SNAPSHOT` (see Step 3). 2. Update the `codemeta.json` file according to Step 3. 3. Update the `CITATION.cff` file according to Step 3. 12. Commit these changes to the `master` branch.