Bug Reporting – How Are Bugs Categorized and Lifecycle


How do bugs in ubuntu get categorized and what is a bug's life cycle?

Also, "What does each bug's 'Status' mean, and how is it determined"

Best Answer

All bugs in Ubuntu have life cycles. As well, they each have a "Status" that helps to explain what its life cycle is. In Ubuntu, each bug as its life cycle continues has various statuses set on it.

While this is all documented in extraordinary detail in the Triage Guide, I will (for now, as I dont have a huge amount of time to write up this process in text, but i will later) post the "Flowcharts" that are provided by the Bug Squad for this (click here for source of flow charts). Each status (in the mean time) can be explained in the Bugs/Status BugSquad Documentation, but I've documented them here as well.

(Note the below information may be out of date with the documentation on the wiki, you should refer to the wiki for the most up-to-date information.)

The following is a description of each status indicator on a bug:

  • New:
    • Bugs are submitted with this status
    • They sometimes lack information and
    • All of them should be untriaged
  • Incomplete:
    • If you have to ask the reporter questions, set the bug to Incomplete
    • Ask the submitter to provide any necessary information in a comment, and make sure you subscribe yourself to the bug report so you will get any updates to the bug via e-mail.
    • Some bugs are never responded to by the submitter (also called "original poster", or "OP"). These bugs will be automatically expired by Launchpad in 60 days, counted from the day it was set incomplete. There is no need to act on them (and, actually, changing the bug will restart the expiry period). Note that this applies for the Ubuntu project (i.e., those bug tasks that have "(Ubuntu)" in their name). Other projects may, or may not, have automatic incomplete bug expiration set.
    • If anyone, including you, comments on the bug, the 60 day expiration clock is reset.
  • Opinion:
    • The status 'opinion' means there is a difference of opinion around a particular bug and people are free to continue the discussion, but the project or package maintainers need to move to other work and are considering the issue closed. The idea is that bugs can be marked closed, so developers aren't wasting time on them, but discussion can still be on-going.
    • This status 'opinion' is considered an experiment, and will be closely monitored.
  • Invalid:
    • This status should be used when the bug report does not contain adequate information to determine whether or not it is a bug even if it is resolved for the reporter
    • This should also be used if the reported problem is not a bug at all, but for example user error
    • It should be used conservatively as bugs marked as Invalid no longer show up in default searches
    • Be sure to triple-check a bug before you invalidate it
  • Expired:
    • This status is similar to Invalid, but is meant specifically for bugs that have been Incomplete for too long. (See above.)
    • This status is only able to be set by using launchpadlib or the email interface.
    • Like Invalid bugs, Expired bugs do not show up in default searches.
  • Confirmed:
    • Another reporter has experienced the same bug, this can come in the form of a duplicate bug or a bug comment
    • Confirmed bugs require confirmation from someone other than the original reporter
    • This helps ensure that the bug is applicable to Ubuntu in general, and not a problem with the reporter's system, therefore...
    • Please don't confirm your own bugs!
  • Triaged:
    • A member of UbuntuBugControl believes that the report describes a genuine bug in enough detail that a developer could start working on a fix. (also see tip below)
    • Use this when you are confident that it should be looked at by a developer and has enough information
    • While not a requirement a bug's Ubuntu task status will be Triaged before any upstream forwarding occurs
    • With bugs about linux Triaged means that the bug has been tested with the upstream mainline kernel
  • In Progress:
    • If you are working on fixing a bug, set it to In Progress so people know what's going on
    • In Progress bugs should be assigned to the person working on them
  • Fix Committed:
    • Ubuntu bug task: the changes are pending and to be uploaded soon (it's what PENDINGUPLOAD was in Bugzilla)
    • Fix Committed is also used when an updated package exists in a -proposed repository i.e. hardy-proposed
    • Fix Committed is not to be used when a patch is attached to a bug
    • Upstream bug task: the fix is in CVS/SVN/bzr or committed to some place
  • Fix Released:
    • Ubuntu bug task: a fix was uploaded to an official Ubuntu repository
    • N.B. This does not include -proposed i.e. hardy-proposed
    • Please don't hesitate to add a changelog as a comment, so people know in which package version a bug was fixed
    • If a bug is fixed in the current development release, it is Fix Released. If the bug also needs to be fixed in a stable release, use the "Target to release" link to nominate it for that release.
    • Upstream bug task: a release tarball was announced and is publicly available
  • Won't Fix:
    • This status is sometimes used when the bug fix is too controversial
    • It is most often used for bugs with a release target that will not be fixed in that particular release but may be fixed later
    • It may also be used for feature requests that the developers do not want to implement

(formatting will differ slightly from the wiki as the formatting here is more limited)

Related Questions and Answers:
Importance Value: How are Ubuntu Bugs' Importance Values Decided