Contributing
We welcome contributions to DBRepo!
Dependencies¶
Local development depends on the following packages for Debian 12:
apt install maven openjdk-17-jdk make nodejs npm
Required tools for local development:
- Docker Engine (docker --versionmust be at least24.x)
- Minikube (minikube versionmust be at least1.32.x)
Getting Started¶
Build the Docker images from source and run them:
make start-dev
Testing¶
We practice test-driven development and require contributors to test their code with at least 80% code coverage.
The Java-based services have the coverage reports generated by JaCoCo in the report/site/ subdirectory, the
Python-based services have the coverage reports generated by coverage in the .coverage SQLite3 database
and coverage.txt log file respectively.
Code Versioning¶
Branching Strategy¶
CI/CD¶
We get compute resources in-kind from dataLAB to run our pipeline:

For each job in the CI/CD pipeline, a pod with three containers is started:
- buildthe main build container, you can freely specify any image with- image: xyzas base
- helperthe default helper container.
- svc-0the Docker-in-Docker sidecar (rootless executed as user- rootless/- 1000) exposing the Docker socket to the- buildcontainer under `
Note. Only Docker-in-Docker (dind) is allowed as service in the pipeline currently. For each job, a
dind-sidecar container svc-0 is started that exposes the Docker socket at /var/run/dind/docker.sock in the build
container you can freely configure how you want. We are aware this is not optimal as it exposes root privileges in the
cluster.
Documentation¶
For consistency reasons across the documentation, the resolution needs to be 1280x800 (16:10 ratio)