Development how-to guides
For contributors and developers
Guides for OctoMY™ contributors and developers.
Pro Tip
New to OctoMY™ development? Start with Start here in the kiln how-to, then 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, the site's kiln, vendored-source cache, and the qbs path |
| 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 | Start here: build, test and follow a build with kiln, the default build path, through one queue for the whole 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 |
| Move a documentation page | Move or rename a page with helpbuild --move, which rewrites every reference to it |
| 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 |
| Add a colormap | Add a color map of the field presenters, as one JSON file |
| Regenerate the API reference | Write the class pages with QDoc, and read the page floor and the warning ceiling |
| Trove — autonomous coding in lanes | Run autonomous claude coding sessions in the lanes of your git projects, and land what they made |
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.