# Release tooling Active contributors: Douwe de Vries, vriesd ## Purpose Release tooling builds desktop artifacts, validates package metadata, and publishes GitHub releases and Linux repository assets. It is script-heavy and CI-driven. ## Key source files | File | Purpose | | --- | --- | | `.github/workflows/ci.yml` | CI verification workflow. | | `.github/workflows/release.yml` | Release packaging and publishing workflow. | | `scripts/package-tauri-linux.mjs` | Linux Tauri packaging orchestration. | | `scripts/package-rust-macos.mjs` | macOS Rust/Tauri packaging helper. | | `scripts/build_apt_repository.py` | Builds APT repository metadata. | | `scripts/validate_linux_package_metadata.py` | Validates `.deb` and `.rpm` metadata. | | `scripts/check-release-metadata.mjs` | Release metadata guard. | | `docs/releasing.md` | Human release procedure. | ## Integration points Release tooling uses the same build commands listed in [Getting started](overview--getting-started.md), and it depends on package metadata in `package.json`, `frontend/package.json`, and Tauri config files under `src-tauri`. ## Entry points for modification Start with `.github/workflows/release.yml` for pipeline changes. Use `scripts/check-release-metadata.mjs`, `scripts/validate_linux_package_metadata.py`, and tests under `tests` when changing package metadata rules.