Qt Creator Plug-in Contribution Guide

From Qt Wiki
Jump to navigation Jump to search

Even though there is already a good Gallery of Plug-ins for Qt Creator, the tool may not yet do what you want it to do. If so, you are free to write your own plug-in. If you do, there is no need to contribute your plug-in to Qt Creator; you can always write and distribute your own plug-ins separately, provided you follow the licensing terms.

But we hope you will consider contributing your new plug-in to Qt Creator. We hope the following description makes the process of accepting or rejecting plug-ins for inclusion into the Qt Creator repository as transparent as possible. If our hopes are sadly unrealized and you still have questions, please let us know at Qt Creator developer mailing list.

Here are the advantages you get by contributing your plug-in:

  • Greater visibility for your plug-in: It becomes part of the default installation and is available to all users of Qt Creator. Your chances to find other developers willing to help improve the plug-in increases.
  • The core developers will help to maintain the plug-in. It is part of the code base all core developers work on, so any breakages will be visible instantly. Updates to APIs, etc. will be applied to your plug-in as part of the routine maintenance.
  • The plug-in will be covered by our QA infrastructure
  • We will help with translations and include your plug-in in the Qt Creator documentation.

Contributing new Plug-ins

Here are the criteria we use when deciding whether to include a plug-in:

  • A change containing the plug-in code was submitted to codereview.qt.io. This process covers some "paperwork" like accepting Qt Contribution Agreement http://qt.io/legal/QtContributionLicenseAgreement.pdf that is legally required in order to accept code.
  • The plug-in provides functionality that is considered useful by at least two core developers.
  • The functionality is provided in such a way that changes to Qt Creator itself and to other plug-ins are minimized. A plug-in should be as stand alone as possible.
  • Our due diligence process does not discover issues with the code. This includes patent issues as well as copyright issues.
  • A positive review was made by at least one core developer. This code review covers:
    • formal issues like coding standard conformance
    • a clean git history
    • code quality and maintainability considerations
  • There is a tangible commitment by the submitter to help maintain the code.
  • The submitter signals that he/she is willing to accept bugs assigned to him/her in our bugtracker at bugreports.qt.io/.

Unit tests or manual testing instructions are helpful but not required at this time.

Retirement Plan for Plug-ins

Occasionally we will want to retire plug-ins and remove them from the code base. This can happen when functionality becomes obsolete, other plug-ins take over all the functionality, or the maintenance burden becomes too high.

The following steps will be taken to retire a plug-in:

  1. An agreement among core developers is reached to remove the plug-in.
  2. The pending removal is announced on the Qt Creator developer mailing list.
  3. The plug in is disabled in the next release of Qt Creator
  4. The plug-in is removed from the development branch of Qt Creator after the next release.

The process can be interrupted at any point based on community and user feedback.

Further Discussion