Skip to content

how to contribute tooling

Douwe de Vries edited this page Jul 2, 2026 · 2 revisions

Tooling

Tooling covers Rust, Node/Vite, Tauri, GitHub Actions, and project-owned release scripts. The main config files are Cargo.toml, frontend/package.json, frontend/vite.config.ts, src-tauri/tauri.conf.json, and .github/workflows/ci.yml.

Build tools

Tool Config Purpose
Cargo Cargo.toml, src-tauri/Cargo.toml Rust library, local server, Tauri wrapper, tests, clippy, benches.
Vite frontend/vite.config.ts React dev server, build, proxy from /api to localhost:3001, Vitest config.
TypeScript frontend/tsconfig.json Strict frontend type checking with no emit.
oxlint frontend/package.json Frontend lint with npm run lint.
Tauri src-tauri/tauri.conf.json Desktop dev/build commands, CSP, bundle metadata, Linux/macOS settings.

Scripts

Script Purpose
scripts/build_frontend_for_tauri.sh Builds or verifies frontend assets for Tauri packaging.
scripts/check_release_metadata.py Verifies version metadata and changelog headings for releases.
scripts/validate_linux_deb_metadata.py Validates Debian/RPM AppStream, desktop, binary, and license metadata.
scripts/normalize_linux_deb_desktop_id.py Normalizes Debian desktop IDs after Tauri bundling.
scripts/build_rpm_package.py Builds the project-owned RPM package from Tauri release output.
scripts/build_apt_repository.py Builds signed APT repository metadata for releases.
scripts/install-apt-repo.sh End-user repository setup script published with releases.

CI

.github/workflows/ci.yml path-filters jobs for Rust, frontend, Tauri, and release metadata. .github/workflows/release.yml waits for CI artifacts, validates release notes, publishes GitHub Release assets, and builds the APT repository.

Deployment details are in deployment. Package-specific history is in lore.

Clone this wiki locally