Contribution Model Work Flow Diagram

Guidelines for Contributions to the Qt Framework

We want to create a community around the development of the Qt libraries, Qt related tools and add-ons. These guidelines will introduce you to the tools and mechanics as well as to the philosophies behind the development of Qt. You will learn how to set up your development environment for working on the library itself and how to submit code/documentation for inclusion.

Prerequisites

First you have to get the Qt source code and set up your local working environment to build Qt. See GetTheSource for instructions.

Style, Conventions and Principles

For Qt development we follow the QtCodingStyle and we stick to our established CodingConventions. The KDE Library Code Policy is based on Qt’s, so much is shared with Qt’s. You can find more information there that isn’t in Qt pages.

Our ApiDesignPrinciples aim for perfection.

Please use the following checklist when making changes:

  1. Follow the coding style and conventions.
  2. If you add new functions/classes:
    1. Ensure everything is documented properly.
    2. Discuss and verify the names of functions/classes with other Qt developers (conduct API reviews).
  3. Ensure your change compiles and works on all platforms.
  4. Verify that there are no regressions in the unit tests. (see QtAutotestsEnvironment for more info)
  5. Write new unit tests for the bugs you fixed or functionality you added.
  6. Verify that your commits have correct author information, including your name and email address as it is registered in gitorious.org.
    (Install the Qt commit template by running git config commit.template .commit-template)

Localization to Other Languages

The process of contributing translations is described in QtLocalization.

Making Changes to Qt

The GitIntroductionWithQt page describes a basic workflow of using Git to create changes and upload them to Gitorious.

Submitting your changes for inclusion into Qt

The following steps outline the process of submitting changes into Qt (see diagram above):

  1. Create a personal clone of Qt on Gitorious.
  2. Push your changes into a branch in your personal clone.
  3. Create a merge request for your changes into the Qt repository.
  4. Review and agree to our contribution agreement (you only need to do this once, unless the license changes)
  5. A team of Qt developers from Nokia will review the merge request.
  6. If your contribution satisfies our technical requirements then your code is subjected to a code scan with our legal team. This takes approximately two weeks (we hope to automate this in future).
  7. Assuming the scan is successful, will include the changes and they will appear in the Qt repository.

Developer’s Lounge

If you have any questions about the development of Qt, feel free to join the #qt-labs IRC channel on irc.freenode.net.

07 Oct 10:48