Development

For contributors and developers

Development how-to guides

Guides for OctoMY™ contributors and developers.

Pro Tip

New to OctoMY™ development? Start with Build for Linux desktop to set up your environment, then review Contribute for the workflow. Setting up a whole machine to carry several branches at once? Set up a build site is the end-to-end runbook.


Guides

Build

Guide Description
Set up a build site One machine, many lanes: bare repo + worktrees, ccache, qbs, vendored-source cache
Replace or add the build disk Prepare a new /build disk: 4 KiB sectors, XFS with reflink, mount, swap file, lane folders
Build for Linux desktop Native build on Debian/Ubuntu
Build for Android Compile and deploy to Android devices
Build for Windows (MSVC) Native MSVC 2022 build via the dockerised Windows farm
Local Windows 11 build VM A libvirt VM on your own machine with the farm's exact toolchain
ccache Setup Machine-local cache config and cross-checkout sharing
Build through the kiln queue One queue for every compile, link and qbs run on a machine
Build and move container images Reproducible OCI images from a directory; push, pull and copy them between image registries, with no Docker
Check a worker farm with the debug workloads Make each fault a farm must survive on demand: crash, hang, corrupt, drop, and replay a recorded fault
Rent machines to run the work Buy cloud machines that join as executors, under a spend rail, and reap the ones that bill for nothing
Choose a cloud provider for the fleet Hetzner and AWS side by side: tokens, regions, currency, billing, spot and image registries
GPU stack integration GPU driver and RHI backend setup
Run with the Vulkan validation layer Enable it, install it per platform, read its output, ship it with a build
Build a branded edition Ship the applications under your own names, colors and logo

Develop

Guide Description
Run tests Run the suites with kiln test: profiles, parallel runs, result files, the shared binary
Write a test Add a new suite in nine steps, from its category to its first record
Contribute code Submit changes to OctoMY™
Debugger panel Inspect node state during development
Constellation management Launch MockNode groups for testing
Code coverage Instrumented builds and coverage reports
Regenerate the icons Export content/design/icons.svg into the libres icon set
Regenerate the API reference Write the class pages with QDoc, and read the page floor and the warning ceiling
Trove — overnight autonomous coding Queue autonomous claude coding sessions and review finished branches at dawn

Did You Know?

OctoMY™ uses Qbs as its build system - a declarative build tool from Qt. It's faster than CMake for incremental builds and has better Qt integration.