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