Subnavigation

How to file a Qt bug report in the new bug tracker

Unless you've been living under a rock, I'm sure you've noticed that a while ago we moved to a new public bug tracking system using Jira. The transition was bumpy, and we are still trying to iron out the kinks – however, I think that we can all agree that the system in general is a great improvement over our old proprietary solution. Having a public bug tracker is a vital organ in any living open source organism/community, and we love having it. Although it increases the transparency for how we do our bug fixes, we have yet to be as clear with our processes – until now. Thus, I present to you the ultra-failsafe guide to making a quality bug report for Qt:

Story:
Felix is a happy Qt user that has just downloaded Qt 4.6.2. He anxiously unzipped the file, and starts the compilation. He grabs a cup of tea and takes a short walk. Shortly thereafter he returns, and erupts in delight as he realizes that everything has finished compiling and that he can finally run his favourite Qt demo: affine!
However, his happiness is short lived, as he sees that the demo crashes as soon as he attempts to use the rotate slider. Oh the agony! Luckily, diligent Felix decides to file a bug report – knowing, that if he creates a detailed quality report, the hard-working Trolls in far away lands may fix it for him. This will not only help himself, but any other kindred spirits that encounter the same issue as well.

This is what he did:

  1. Visit bugreports.qt.nokia.com (create an account if it's your first time)
  2. Use the “Quick Search” field in the top right to try to find any similar bugs. If you find one, then leave a comment with any additional information you have, as well as clicking “Vote for it” in the left side menu.
  3. If you don't find a bug report which matches your issue, then click “Create New Issues”
  4. Select the appropriate project and issue type. In this case, Qt and Bug.
  5. Fill out the fields...
  6. Summary
    Enter a short but descriptive text explaining the bug in a sentence.
    Affects Version
    Select the Qt version where you're able to reproduce the bug.
    Components
    Select the component which best fits the location of the bug.
    Description
    A longer text describing, step by step, the minimum amount of actions required to reproduce the bug. Mentioning the expected outcome as well as the actual outcome is also a necessary step to gain a mutual understanding of the problem between the reporter and the assignee. Also, a vital piece of information in crash reports is the stacktrace. Retrieving a stracktrace is platform specific, however, all of them require that Qt be built with debug symbols. If you compiled Qt yourself, then make sure you supplied “-debug” during configure time. If you're using binaries, then make sure you've installed the corresponding debug packages. Paste the stacktrace in the description if it's not terribly long, else attach it as a text file. Finally, please supply any more details that you may have in this field. For instance “This bug only occurs if I have compositing enabled”, or “This is a regression from 4.6.1”.
    Environment
    Input as detailed description of your operating system, window manager, compiler, and any other pertinent information needed to reproduce the bug.
    Attachment
    This often neglected field is perhaps one of the most important. Here is where you can make a simple application that reproduces the bug and attach it. Ideally, a stand-alone main.cpp file which only has the bare minimum amount of code needed to reproduce the bug should be attached. A unit test, screen shot, or longer stacktrace is also incredibly useful.
    Source Req ID
    Leave blank
    Followed By
    Not needed
  7. Click “Create”

Here's a screenshot of the bug report that Felix made:
bug report screenshot

Felix can now either start hacking on Qt to find a solution and file a merge request, or wait until a Troll prioritizes, schedules, and fixes the bug for a release.

In short:
Always provide as much information as possible together with your bug report. The more the better. Also, please specify if a bug is a regression or not. If it is, then specify what version it worked in last. Finally, supplying a testcase main.cpp is a sure-fire way to land in the “fasttrack” of bug resolution and into the hearts of the Trolls. Also, providing a testcase is a great means of preventing the same bug from cropping up in the future as a regression.

By creating a high quality bug report, you will gain priority over those less descriptive, and your chances of a speedy resolution increased. If after all your hard work we still reject your bug, then please don't take it personally. Instead, add a comment in the report and explain your situation so that we can re-evaluate it. After all, we also make mistakes.

Finally, I would like to extend a very warm thanks to all our incredible bug reporters, community members and customers. Although we may not fix the bugs as quickly as you may always like, your feedback is incredibly valuable for us, and we look forward to seeing your quality bug reports in the future at bugreports.qt.nokia.com!

(Important) Edit:
Please file any WebKit bugs at http://trac.webkit.org/wiki/QtWebKitBugs instead.


Blog Topics:

Comments