crankshaft-ui-slim is the slim UI frontend for Crankshaft, implemented with Qt 6 and QML.
It provides the runtime projection view, connection UX, settings UI, and integration with core services.
src/: C++ application logic, QML UI, tests, translations, and packaging filesdeps/: OS package manifests consumed bybuild.sh --install-deps.github/workflows/: CI pipeline definitionsbuild.sh: Main build/test/package entrypoint used locally and in CI
Install host dependencies from distro-aware manifests:
./build.sh --install-depsBuild (default Release):
./build.shClean build:
./build.sh --cleanBuild with tests disabled:
BUILD_TESTS=OFF ./build.sh --cleanBuild and package artifacts (.deb, .tgz):
BUILD_PACKAGE=ON ./build.sh --cleanRun code quality and format checks:
CODE_QUALITY=ON FORMAT_CHECK=ON BUILD_TESTS=OFF ./build.sh --cleanCoverage build:
ENABLE_COVERAGE=ON BUILD_TESTS=ON ./build.sh --cleanBuild and generate SBOMs from source + package artifacts:
BUILD_PACKAGE=ON BUILD_SBOM=ON ./build.sh --cleanGenerate SBOMs only from an existing build directory:
BUILD_DIR=build-release BUILD_SBOM=ON ./build.sh --sbom-onlyCI resolves version values from git tags, sanitizes them to SemVer, and passes them to build.sh.
build.sh forwards that version to CMake (CRANKSHAFT_VERSION), which is used by CPack for package metadata.
The CI pipeline includes:
- Unified gate job for quality + coverage + quick packaging on
ubuntu-24.04 - Full multiarch build + test matrix for
push/workflow_dispatch - Coverage summary published directly in the workflow run page
- Build artifacts (
.deb,.tgz) and per-build SBOM artifacts - Release metadata generation (changelog + release notes + downloaded SBOM artifacts)