From Fedora Project Wiki
(note that the flow applies only to conventional bugs)
Line 4: Line 4:


This bug state flow came as a result of the bug triage relaunch that started in January 2008.  This work flow was approved at the [http://fedoraproject.org/wiki/Extras/SteeringCommittee/Meeting-20080124 meeting on January 24, 2008] .  As a work flow these are not hard and fast rules to impose on people.  Instead it is intended to bring more uniformity and predictability to the life of a bug.  If you have a good reason to break them, feel free.  This is the process the triage team will follow.
This bug state flow came as a result of the bug triage relaunch that started in January 2008.  This work flow was approved at the [http://fedoraproject.org/wiki/Extras/SteeringCommittee/Meeting-20080124 meeting on January 24, 2008] .  As a work flow these are not hard and fast rules to impose on people.  Instead it is intended to bring more uniformity and predictability to the life of a bug.  If you have a good reason to break them, feel free.  This is the process the triage team will follow.
This document applies only to 'conventional' bugs - i.e., it does not apply to special cases that happen to use the Bugzilla system, like package review requests.


Updated 17 March 2009 to reflect changes to the NEEDINFO representation.
Updated 17 March 2009 to reflect changes to the NEEDINFO representation.

Revision as of 20:27, 12 May 2009

Fedora Bug Life Cycle

Background

This bug state flow came as a result of the bug triage relaunch that started in January 2008. This work flow was approved at the meeting on January 24, 2008 . As a work flow these are not hard and fast rules to impose on people. Instead it is intended to bring more uniformity and predictability to the life of a bug. If you have a good reason to break them, feel free. This is the process the triage team will follow.

This document applies only to 'conventional' bugs - i.e., it does not apply to special cases that happen to use the Bugzilla system, like package review requests.

Updated 17 March 2009 to reflect changes to the NEEDINFO representation.

Overview

BugZappers BugStatusWorkFlow fedora-bug-lifecycle.png

Source: File:BugZappers BugStatusWorkFlow fedora-bug-lifecycle.odg

NEW

When a reporter files a bug, the report automatically starts out in a NEW state. The triage team will be primarily looking at bugs in this state. From this state, the triage team will change the status to:

  • ASSIGNED: The bug is well defined and triaged
  • CLOSED: Duplicate, not a bug, not part of Fedora, etc.
  • NEW but with needinfo flag: More information needed from reporter before being ASSIGNED.

Needinfo

The needinfo flag is added by bug triagers or maintainers when adequate information is missing to move the bug towards resolution. If adequate information is provided, the triager will clear the flag, and set the bug to ASSIGNED. If not, needinfo bugs are eligible for closure (changed to CLOSED INSUFFICIENT_DATA) by the triage team after all of the following have been met:

  1. Bug was originally placed in needinfo by a triager or package maintainer
  2. Requested information requested has not been provided
  3. Bug has been flagged needinfo for 30 continuous days

A stock message will be used by all triagers for bugs meeting the closure criteria. Stock bug triaging messages are found at BugZappers/StockBugzillaResponses.

Because needinfo is a flag and not an exclusive state, these bugs can also simultaneously be marked as NEW, ASSIGNED, etc.

ASSIGNED

The triage team believes that this is a complete actionable bug. It contains:

  • the correct component
  • the correct product
  • enough information for the package maintainer to investigate the issue
  • enough information to research with upstream or fix the bug
  • applicable release blocker or tracker bugs

The reporter has has also included one or more of the following (as applicable):

  • clear steps describing how the bug occurred
  • clear steps describing how to reproduce the problem
  • stack trace for a crasher
  • various log files
  • AVC message for SELinux

See BugsAndFeatureRequests for more details.

ON_DEV

This optional state is used to show that someone is working on fixing this bug. This is especially useful if there exists a team of maintainers for a package.

POST

  • This state is primarily used by developers working on virtualization and the kernel.
  • A bug is moved to the POST state (from ASSIGNED) when a patch has been attached to the bugzilla entry and the gate keeper is waiting for the patch to receive three ACKS. Therefore, POST means "a patch is ready, but not yet applied".
  • After the patch is applied to the package the bug state changes to MODIFIED.

MODIFIED

When a maintainer has a fix for a bug checked into CVS the bug should be placed in the MODIFIED state. This is an indication that the fix is checked into CVS and has potentially been submitted to be built in a new package. Adding a link to package in koji is very helpful for adventuresome testers and the original bug reporter to verify the fix.

The use of MODIFIED for Rawhide bugs is optional; a maintainer may choose to use it to ask the reporters to test the fixed package to make sure the fix works before closing the bug, but can also go direct to CLOSED RAWHIDE on committing a fix, or change a MODIFIED bug to CLOSED RAWHIDE if no reporter appears willing or able to confirm the fix.

ON_QA

A bug automatically transitions to this state when an updated package is submitted to bodhi for a particular bug and the package is in the testing repo. This tells the bug reporter that a fix for the bug is available and that they should test the package. After testing the package the bug tester or original reporter should put feedback in bodhi and add a comment to the Bugzilla.

CLOSED

Once a bug has been fixed and included in a new package in rawhide or the updates repo it should be closed. For a stable release, the resolution ERRATA should be used. For Rawhide, the resolution RAWHIDE should be used.

The CURRENTRELEASE and DEFERRED resolutions are not intended for use by Fedora (they are used in the RHEL process).

For Rawhide, maintainers can choose to move to CLOSED RAWHIDE as soon as they commit a fix to CVS, if outside a freeze period; the MODIFIED process is optional.

  • Bugs can be closed as DUPLICATE by a triager or maintainer at any point when they are identified as a duplicate of another bug.
  • Bugs can be closed as INSUFFICIENT_DATA by a triager or maintainer if it seems impossible or very unlikely that the reporter will be willing or able to provide sufficient information.
  • Bugs can be closed as NOTABUG by triagers during the triage stage if it becomes clear they are not truly a bug in Fedora (e.g. the reporter's hardware is malfunctioning), or by the maintainer.
  • The resolutions CANTFIX, WONTFIX, and WORKSFORME are for use by maintainers only, and are self-explanatory.
  • The resolution NEXTRELEASE is for use by maintainers only. It is used if a bug was filed for a given release, but will only be fixed for later releases - for instance, if a bug is filed in the current stable release, but the maintainer only thinks it safe or worthwhile to fix it in Rawhide and future releases, not the release on which it was reported.
  • The resolution UPSTREAM can be used by maintainers to denote a bug that they expect to be fixed by upstream development and naturally rolled back into Fedora as part of the update process. Ideally, a comment should be added with a link to the upstream bug report.

If so designated by the maintainer, Bodhi can automatically close a bug when the package moves from the updates-testing repo to the updates repo.

VERIFIED, FAILS_QA, RELEASE_PENDING

The VERIFIED, FAILS_QA and RELEASE_PENDING bug states are not used by Fedora (they are used in the RHEL process).

See also