Skip to content

Code Submission ​

This section contains topics about contributing code, including coding style, testing and the format of pull requests.

INFO

QGroundControl (QGC) is dual-licensed as Apache 2.0 and GPLv3. All contributions have to be made under both licenses.

Contribution Workflow ​

  1. Fork the QGC repository, clone your fork, and create a branch for your change.

  2. Set up your development environment and build QGC as described in Getting Started.

  3. Make your change following the coding style, and add or update unit tests.

  4. Run the checks that CI runs:

    sh
    just lint    # pre-commit checks: formatting, linters and QGC-specific code checks
    just test    # unit and integration tests

    just check runs both, plus the Python tooling tests.

  5. Write commit messages that follow Conventional Commits (for example fix(Vehicle): guard null activeVehicle in telemetry handler); the commit type drives the release automation.

  6. Open a pull request against the master branch.

See CONTRIBUTING.md for the full contribution guidelines, including the core architecture patterns all code must follow.

Documentation ​

This guide is built with VitePress from the Markdown files in the docs directory. Only edit the English pages in docs/en: the other languages are translated on Crowdin.

  • Preview your changes by running npm ci and then npm run docs:dev in the docs directory (use the Node.js version in docs/.nvmrc).
  • Lint the pages with the docs hooks CI runs with just lint-docs (add --changed to check only the pages changed on your branch).