Guidelines and HOWTOs/Bug triaging: Difference between revisions

From KDE Community Wiki
No edit summary
(Remove mentions of Phabricator (which is not used anymore) and scheduled bug triage days (which as have not done in ages))
Line 5: Line 5:


For live chat, we have the [https://webchat.kde.org/#/room/#kde-bugs:kde.org Bugsquad Matrix group] which is bridged to the [irc://irc.libera.chat/kde-bugs #kde-bugs IRC channel]. Please feel free to stop by!
For live chat, we have the [https://webchat.kde.org/#/room/#kde-bugs:kde.org Bugsquad Matrix group] which is bridged to the [irc://irc.libera.chat/kde-bugs #kde-bugs IRC channel]. Please feel free to stop by!
To join the Bugsquad, [https://phabricator.kde.org/project/update/290/join/ become a member] of our [https://phabricator.kde.org/project/profile/290/ project on Phabricator]. We organize Bug Days, where we focus on a specific product, with the goal of reviewing all open bugs by the end of the day. These meetings occur primarily on #kde-bugs and are disclosed over the [https://mail.kde.org/cgi-bin/mailman/listinfo/bugsquad Bugsquad mailing list].
We have a [https://phabricator.kde.org/calendar/ Bugsquad calendar] you can view or export as ICS to your calendar of choice. The calendar lists all of the upcoming Bug Days and what product we will be focusing on. These days are great times to get involved and ask questions!


= General considerations =
= General considerations =

Revision as of 20:22, 7 February 2022

Help Konqi catch some bugs!

The KDE Bugsquad keeps track of incoming bugs in KDE software and goes through old bugs. We verify that a bug exists, whether it is reproducible, and that the reporter has given enough information. Our goal is to save developers from doing this, which helps them fix bugs more quickly and do more work on KDE software.

Getting involved in the Bugsquad is a good place to start. An existing member will help you out and mentor you. One of the great things about the Bugsquad and bug triaging is that you do not need any programming knowledge! That said, experience has shown that members of this team learn a lot about KDE and Qt programming during the course of dealing with bug reports, and many move on to developing the software itself. If you are just starting to learn programming, bug triaging is a great way to gain familiarity with the components and give practical support to the KDE community.

For live chat, we have the Bugsquad Matrix group which is bridged to the #kde-bugs IRC channel. Please feel free to stop by!

General considerations

  • Be polite. Bug triagers are the face of KDE. Be nice to bug reporters, even if they aren't nice to you! You have an opportunity to showcase the best of the KDE community, and turn skeptics into fans. Being nice is more impactful than being right.
  • Explain your decisions. It can be very frustrating for a bug reporter if his/her report is suddenly closed without any reason. Write why you think that your action is the correct one, and don't establish your opinion as the all-ruling fact.
  • Don't be afraid to make mistakes. Everybody makes mistakes, especially when starting out with bug triaging.
  • KDE uses the Bugzilla bug tracker system. If you are not familiar with it, you may find this quick Introduction to Bugzilla useful.
  • The BugzillaJS add-on for Firefox is highly recommended, as it greatly improves the user experience.

Decide what to work on

All bugs filed recently

All bug reports of a single product

You'll want to use the Advanced search for this: https://bugs.kde.org/query.cgi

You can see which products are most in need of bug triaging here, with links to their bug lists: https://bugs.kde.org/weekly-bug-summary.cgi?tops=50&days=7

Here are some common and popular KDE products in need of bug triaging:

Bug editing permissions

All regular Bugzilla users can perform standard editing functions. You can change a number of fields, including the product, component, version, platform, status, and more. You are restricted from only a few abilities, such as bulk editing, changing the Priority and Severity fields (Importance), or re-opening CLOSED bugs. After getting comfortable with the KDE Bugzilla process, you can request "contributor" privileges from Sysadmin, which will allow you to perform those actions.

What to do with bug reports

Now that you have a list of bug reports, pick one and start working! Here is the optimal bug triaging workflow:

Note

If at any point you aren't sure how to proceed, move onto the next bug or ask a KDE developer or another more experienced contributor.


Identify duplicates

As KDE has so many users, we get a lot of reports about bugs which have already been reported (duplicates). Before putting any effort in the current report, check for an existing report. If you find a pre-existing bug report describing the same issue, mark this one as a duplicate of it.

Please see the article on identifying duplicates.

Identify bugs caused by external issues (UPSTREAM/DOWNSTREAM)

Not all real bugs affecting KDE software are actually caused by a fault in KDE software. The issue may be "upstream" or "downstream" of KDE.

"Upstream" means that the problem lies in an underlying technology that KDE software uses (e.g. Qt, X11, the Linux kernel). Others who make use of KDE software (e.g Linux distributions, 3rd party Plasma plugins) are downstream of KDE.

Examples of Upstream issues:

  • KDE app experiences a new behavioral issue after upgrading to a newer version of Qt
  • KDE app crashes in QtQuick
  • KDE app experiences an issue, but only when using the proprietary NVIDIA driver


Examples of Downstream issues:

  • A KDE app crashes because a dependent package is not automatically installed by the user's distro
  • Fonts are really hard to read, but only in certain distros
  • Graphical corruption with a Plasma theme downloaded from store.kde.org

Ask for any missing information

Now that you know that the bug report is unique and that it is not an external issue, you need to check that all the needed information is there.

  • If the reporter has not entered the Platform correctly (i.e., it is "unspecified/Linux"), then ask which platform/distro they are using. This can help determine if there are distro/downstream bugs. Mark the bug as NEEDSINFO/WAITINGFORINFO.
  • If the description is not written in English and you cannot understand it, you may want to ask other KDE contributors to translate it for you. Alternatively, you can ask the reporter to use some online translation system.
  • If the reporter has not indicated what versions of KDE Plasma, Qt, and KDE Frameworks they are using, ask them to provide that information. (Get Involved/Bug Reporting#Software_versions)
  • If the explanation is not clear enough, ask for clarification and concrete steps to reproduce. (Get Involved/Bug Reporting#Steps to Reproduce)
  • If the issue is hard to picture without a visual aid and there are no screenshots or a screen recording attached, ask for one. (Get Involved/Bug Reporting#Screenshots and screen recordings)
  • If the bug report is about a crash and the backtrace information is incomplete, ask the user to install the missing debug symbols package, reproduce the bug, and generate a new backtrace. (Guidelines and HOWTOs/Debugging/How to create useful crash reports)


Note

After asking for further information, mark the report as "NEEDSINFO" with resolution "WAITINGFORINFO" (or resolution "BACKTRACE" if you are waiting for a complete backtrace).


Reproduce the bug

At this point, the bug report enough is complete enough that you should use the information provided by the reporter and try to make the bug appear on your own system.

Note

It is important to have up-to-date KDE components installed to test bugs. Only try to reproduce bugs using the latest versions of KDE software, or even development versions.


Warning

Testing bug reports may modify/alter your own desktop configuration; also, to try to reproduce some bugs you may need a clean pristine (or slightly modified) environment. We recommend you to perform tests on a separate KDE installation or a clean user. There is also a way to start KDE applications with a clean configuration, even under your current configuration (setting the KDEDIR environment variable at run-time to an empty directory).


You may want to use this reference text to setup your testing environment: Preparing a testing environment

If you can't reproduce with any scenario mentioned in the comments, you may want to try other related situations. Write down any newly discovered steps to reproduce.

If you cannot reproduce the bug under any circumstances

Write down the steps you performed. Ask the reporter if your steps missed something, or if anyone notices any other strange or non-default situation or configuration which may be related. Also ask the reporter for more information and mark it NEEDSINFO/WAITINGFORINFO.

Hopefully, you will get feedback from the reporters and you could gather more information to try to reproduce the bug or close the report as RESOLVED/WORKSFORME (or FIXED) after a short wait.

If you can reproduce the bug

If you had to combine several steps to make your own "recipe" to reproduce, write them down. This kind of information is useful for the developers. If you had to use custom input data (text, or a file), you may want to attach it to the bug report. Don't forget to mention the environment and circumstances under which you can reproduce the bug.

Set Bugzilla fields

Often a bug report isn't properly categorized, or lacks some information in the Bugzilla fields (which are useful for sorting and filtering). If a field isn't mentioned below, you don't need to change it. All users have permission to change most Bugzilla fields.

Product

Many bug reports are reported against the wrong product. This may happen because the original reporter didn't know which application/library the bug belongs to. For example, many bugs filed to Dolphin are actually about KIO (the I/O framework) or Baloo (the search frameworks). Remember to check the KDE related technologies list.

Warning

Only reassign if you are sure the bug is in the wrong product.

Component

As with the Product field, many bug reports are reported against the wrong component or none at all. Set the Component if you are able to determine a more appropriate one than the bug's current assignment.

Version

If the report has an application version, you need to set the version in the Bugzilla field. Ideally the version field should reflect the latest version the bug is reproducible with. If the version is missing from the list, please contact the software maintainer or the KDE Bugzilla admins to add the version.

Platform

This field is only important if the bug is related to one distribution or a specific system (the majority of bug reports are common to most platforms).

Severity

Mark the bug's severity. Some hints about the various severity options:

  • Critical: A widespread, easily reproducible issue that causes data loss.
  • Grave: The software is basically unusable, with no workaround.
  • Major: A major feature is broken, and the workaround (if any) is painful and difficult.
  • Crash: The software crashes or hangs.
  • Normal: It's a bug that should be fixed, possibly with a reasonable workaround.
  • Minor: Minor cosmetic issue or loss of function with an easy workaround.
  • Wishlist: Request for a new feature or enhancement.

Keywords

If the bug is a regression in features or functionality, add the "regression keyword" and change the importance to HI to alert developers.

If the bug is Wayland-related, add the "wayland" keyword.

If the bug involves a poor user interface or demands a tedious workflow, tag it with the "usability" keyword.

If the bug seems like it would be really easy to fix, add the "junior-jobs" keyword. Examples of issues that would be easy to fix:

  • Inaccurate description or text label
  • Visual layout inconsistencies
  • Pixellated icons when an app is run in HiDPI mode
  • User interface element is the wrong color when using Breeze Dark

New code contributors often start with "junior-jobs" bugs, so ensuring that there is a steady supply of bugs tagged with this keyword helps them get started with small, manageable tasks.


Status

If you can reproduce the issue, and you are confident that you have set all fields correctly, set the bug report's status to CONFIRMED. Feature requests ("wishlist" items) can be set to CONFIRMED to indicate a reasonable request.

Rename the bug report

The bug report's summary might not accurately represent the bug, especially after you have triaged the bug and found the root cause or determined it to be another issue. You may want to update the summary to contain enough information to identify the issue properly. A good summary:

  • Is readable as a grammatically correct English sentence
  • Contains a brief explanation of the root cause (if it was found)
  • Includes some of the symptoms people are experiencing
  • Includes ClassName::FunctionName pairs if the bug describes a crash
  • Isn't too long

Special circumstances

Bug describes multiple issues

You must close the bug report as RESOLVED/NOT A BUG with a humane explanation that bug reports can only contain a single issue. (Get Involved/Bug Reporting#One issue per bug report)

Bug includes a patch

If the bug reporter or someone else included a patch, ask them to submit it using GitLab, and remind them about Get_Involved/Issue_Reporting#Submit_patches_using_GitLab.2C_not_the_issue_tracker.

Reporter seems very technically knowledgeable

Sometimes a very technically knowledgeable bug reporter will correctly identify the source of the issue, and maybe even the exact line of code that's causing the problem. Encourage them to submit a patch, and point them to https://community.kde.org/Get_Involved/development.

Same person reports a lot of bugs

Anybody who reports a lot of KDE bugs--especially if they are high quality bugs--is quite likely a committed KDE user who is a good candidate for becoming a more involved contributor over time. Stumbling on someone like this in the bug tracker is like striking gold. Take every opportunity to develop a relationship with this person and try to guide them through the KDE "get involved" pipeline. Oftentimes people who submit a lot of bugs move on to bug triaging and then later development.

Policies

  • Bugs placed into NEEDSINFO status will receive a reminder if the ticket:
    • Is at least 15 days old
    • Has not received any comment within 15 days
  • If a bug remains in NEEDSINFO for another 15 days with no comment, it will be closed as RESOLVED > WORKSFORME.
  • If a bug remains in NEEDSINFO with a comment provided within less than 15 days, no action will be taken (as it does not meet the above criteria).