Code Reviews
Note: this page is partly redundant with , which gives a better introduction.
Participating in the Qt project by contributing and reviewing
This Wiki provides information on how to contribute and review code. It also provides directions to the information on Gerrit and Git used for developing Qt.
Overview of the technical landscape
The servers, database, and tools related to the Qt Open Governance code contribution process as well as their interactions are illustrated in the adjacent picture. The process has been designed to provide increased transparency and quick pass-through for code contributions, and its core is the easy-to-use code review tool, Gerrit. The tool is available for everybody, and besides using it for its main purpose of contributors and feedback gathering, it can be utilized for studying the code of the other contributors.
Here's an overview diagram of the process:
In order to gain access and log in to Gerrit, a contributor needs to have an existing JIRA account. A new account can be obtained from https://bugreports.qt.io/.
Gerrit tool is used in the Qt Project for approval of changes and both automated quality checks and human reviews. It is hosted under the codereview.qt.io domain. Contributions are sent as patches to Gerrit with the Git push command, with target ref as refs/for/<branch name>. There will be no direct pushing into a branch. Repository can be accessed with SSH on port 29418.
Continuous Integration (CI) system is used for building and testing. CI fetches reviewed changes from Gerrit, runs build & test for the changes and transfers the changes passed further to the public tip. Staging branches are stored in the Git repository of Gerrit.
In addition to Gerrit's Git repository, the repository is pushed to Gitorious repository on qt.gitorious.org. That repository is read-only.
Using Git
Using Gerrit
- Setting up your Gerrit environment
- Introduction to Gerrit
- Contribution creation and uploading
- Requesting and receiving contribution feedback
- Approving and abandoning
- Continuous integration and staging
- Merging feature branches
- Access rights
- Providing feedback about the set up