Contributing
Thank you for contributing to tuna-installer-kde, the Qt 6 / Kirigami
frontend that drives the fisherman
bootc install backend! This document covers the local build/test workflow
and pull request guidelines.
Prerequisites (Fedora)β
Kirigami and Kirigami Addons are QML-only and resolved at runtime from the QML import path β nothing links against KF6 at build time.
sudo dnf install -y cmake gcc-c++ ninja-build \
qt6-qtbase-devel qt6-qtdeclarative-devel \
kf6-kirigami kf6-kirigami-addons kf6-qqc2-desktop-style breeze-icons
Buildβ
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
./build/tuna-installer-kde
Running Testsβ
Backend unit tests (CTest / QtTest)β
cmake -B build -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=ON
cmake --build build
ctest --test-dir build --output-on-failure
Screenshot capture harnessβ
cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_CAPTURE=ON
cmake --build build
./build/tuna-installer-capture
Flatpakβ
Build and run the packaged app locally:
flatpak-builder --user --install --force-clean build-flatpak flatpak/org.tunaos.InstallerKde.json
flatpak run org.tunaos.InstallerKde
Code styleβ
- C++: match the existing style in
src/(the codebase has no.clang-formatyet β follow the conventions of the file you are editing). - QML: one
SetupModuleper wizard step undermodules/<name>/contents/ui/main.qml, using Kirigami/Kirigami Addons components andKirigami.Unitsfor metrics rather than hardcoded pixel values. - JSON (the fisherman recipe schema, Flatpak manifest, Renovate config,
and walkthrough screenshot metadata): formatted per
biome.json.
Pull requestsβ
- Open pull requests against
main. - Run the backend test suite (
ctest) before submitting. - Describe which wizard screen(s) or recipe fields are affected, and note any change to the recipe contract β it is shared with the other TunaOS installer frontends.