Skip to content

Development related docs

Building Packages

You can use --deb or --rpm to create packages in the respective format. If you omit these options, packages in both formats will be created.

Building .deb Packages

extras/packaging/build-all.sh --deb --version 25.3.0 --release pre.$(date +"%y%m%d%H%M%S")

Building .rpm Packages

extras/packaging/build-all.sh --rpm --version 25.3.0 --release pre.$(date +"%y%m%d%H%M%S")

Setup local Dev environment for OpenTalk

[WIP]

Pre-Commit Hooks

This repository uses pre-commit to automatically run linters and consistency checks before code is committed.
By running these checks locally, we ensure consistent formatting, licensing, and documentation quality across all contributions.

What It Does

The configured hooks perform the following checks:

Hook Description
yamllint Validates YAML files for syntax and style.
reuse Verifies license headers and REUSE compliance.
markdown-lint Lints Markdown files using mdl
shellcheck Checks shell scripts for common errors and bad practices.
ansible-lint Lints Ansible playbooks, roles, and tasks for best practices using ansible-lint.

Installation

Install pre-commit

Depending on you envoronment install pre-commit e.g.:

# Fedora
dnf install pre-commit
# Debian
apt install pre-commit
# via python pip
pip install pre-commit

Set up the Git hooks

pre-commit install

(Optional) Run all checks manually

pre-commit run --all-files

pre-commit autoupdate

To update hook versions defined in .pre-commit-config.yaml:

pre-commit autoupdate

Versioning of DEB or RPM Packages

Because the OpenTalk product version cannot be mapped 1:1 to DEB or RPM package versions without breaking update mechanics, product versions are converted accordingly. Nothing changes for authoring: keep using the product version schema when createing releases or git tags. The conversion happens when running the build scripts.

DEB-Pakages

Product Version / Input Tag Package Version Debian Filename
v25.3.2 25.3.2-1 opentalk-compose_25.3.2-1_amd64.deb
v25.3.2-1 25.3.2-1 opentalk-compose_25.3.2-1_amd64.deb
v25.3.2-2 25.3.2-2 opentalk-compose_25.3.2-2_amd64.deb
v25.3.2-beta 25.3.2~beta-1 opentalk-compose_25.3.2~beta-1_amd64.deb
v25.3.2-beta.2 25.3.2~beta2-1 opentalk-compose_25.3.2~beta2-1_amd64.deb
v25.3.2-beta.3+git-4e7d8a1f 25.3.2~beta3+git4e7d8a1f-1 opentalk-compose_25.3.2~beta3+git4e7d8a1f-1_amd64.deb
v25.3.2-beta+git4e7d8a1f 25.3.2~beta+git4e7d8a1f-1 opentalk-compose_25.3.2~beta+git4e7d8a1f-1_amd64.deb
v25.3.2+git-4e7d8a1f 25.3.2+git4e7d8a1f-1 opentalk-compose_25.3.2+git4e7d8a1f-1_amd64.deb

RPM-Pakages

Product Version / Input Tag RPM Version RPM Release RPM Filename
v25.3.2 25.3.2 1 opentalk-compose-25.3.2-1.x86_64.rpm
v25.3.2-1 25.3.2 1 opentalk-compose-25.3.2-1.x86_64.rpm
v25.3.2-2 25.3.2 2 opentalk-compose-25.3.2-2.x86_64.rpm
v25.3.2-beta 25.3.2~beta 1 opentalk-compose-25.3.2~beta-1.x86_64.rpm
v25.3.2-beta.2 25.3.2~beta2 1 opentalk-compose-25.3.2~beta2-1.x86_64.rpm
v25.3.2-beta.3+git-4e7d8a1f 25.3.2~beta3+git4e7d8a1f 1 opentalk-compose-25.3.2~beta3+git4e7d8a1f-1.x86_64.rpm
v25.3.2-beta+git4e7d8a1f 25.3.2~beta+git4e7d8a1f 1 opentalk-compose-25.3.2~beta+git4e7d8a1f-1.x86_64.rpm
v25.3.2+git-4e7d8a1f 25.3.2+git4e7d8a1f 1 opentalk-compose-25.3.2+git4e7d8a1f-1.x86_64.rpm

Renovate local test

Run Renovate to verify the renovate.json configuration or check which components are tracked:

 docker run --rm -v "$(pwd):/usr/src/app" \
   -e LOG_LEVEL=debug \
   -e RENOVATE_CONFIG_FILE=/usr/src/app/renovate.json \
   -e GITHUB_COM_TOKEN="$GITHUB_COM_TOKEN" \
   ghcr.io/renovatebot/renovate:full \
   --platform=local \
   --dry-run=lookup

Building and Testing OpenTalk Compose Package on the local machine

This section describes how to build and test the OpenTalk Compose Debian package in a Docker container.

Example for a Debian package

Build the package

extras/packaging/build-all.sh --deb --version v25.4.0

Start a Debian container with Docker-in-Docker support

With Docker:

docker run --rm -ti --name dind-debian12 \
  --privileged \
  --tmpfs /run:rw,noexec,nosuid,size=65536k \
  --tmpfs /run/lock \
  -v dind-debian-docker-root:/var/lib/docker \
  -v ./artifacts:/artifacts \
  -e DOCKER_TLS_CERTDIR= \
  git.opentalk.dev:5050/opentalk/opentalk-devops/containers/pkgtest-dind/debian12:dev bash

With Podman:

podman run --rm -ti --name dind-debian12 \
  --privileged \
  --tmpfs /run:rw,noexec,nosuid,size=65536k \
  --tmpfs /run/lock \
  -v dind-debian-docker-root:/var/lib/docker \
  -v ./artifacts:/artifacts \
  -e DOCKER_TLS_CERTDIR= \
  git.opentalk.dev:5050/opentalk/opentalk-devops/containers/pkgtest-dind/debian12:dev bash

Install the OpenTalk Compose package inside the DinD container

dpkg -i artifacts/opentalk-compose_25.4.0-1_amd64.deb

Activate the Python virtual environment

source /opt/opentalk-compose/runtime/venv/bin/activate

Run deplyment to execute ansible tasks

otctl deploy -e ot_domain=localhost