KARTOZA · QGIS DEV ENV
Hack on QGIS core, beautifully isolated¶
Fast incremental builds, a fully wired Neovim, and a checkout that stays byte-pristine to upstream — reproducible on any NixOS machine.

What it is¶
A complete, reproducible developer environment for
QGIS core — on NixOS, in Neovim. You get ccache +
mold + Ninja incremental builds (timed and logged, all cores), a
<leader>p project menu for every routine task, full LSP coverage for
C++20/Qt6, Python/PyQGIS, CMake, Nix and Bash, git-worktree workflows, a
QA harness (sanitizers, valgrind, heaptrack, perf) and a fully configured
editor (nix-vim) — while the QGIS
checkout itself stays invisible to upstream git at all times.
graph LR
A[Check out QGIS] --> B[Embed qgis-dev-env]
B --> C[Bootstrap and trust]
C --> D[First compile]
D --> E[Edit in Neovim]
E --> F[Pre-commit checks]
F --> G[Your first patch]
Where to go¶
-
🚀 Start here
The Developer Journey walks you from an empty folder to your first upstream patch, step by step.
-
⌨️ Live here
The Reference section holds the complete
qgis-devcommand set, the Neovim keymap, build profiles, worktree and QA guides — plus the troubleshooting field notes. -
🔒 The golden rule
Nothing from this environment may ever reach upstream QGIS. Read the AI policy — it is why this project exists in its current shape.
-
📐 The blueprint
The full Software Requirements Specification records every requirement, decision and acceptance criterion.
Why this exists¶
QGIS is a ~1.5 million line C++/Qt6/Python codebase. A naive rebuild after
every change costs hours; a hand-rolled editor setup costs days and drifts
between machines. This sidecar gives every developer on the team the same
pinned toolchain (flake.lock), the same editor experience, and the same
guard rails — cloned in minutes, byte-identical everywhere.
And because upstream QGIS does not accept AI-generated contributions,
the entire environment is engineered so that none of its files can leak
into a QGIS commit: local git excludes, an anti-leak pre-push hook, and a
doctor that audits every worktree.