BugWorkflow
|
Size: 1135
Comment:
|
Size: 7134
Comment: more design
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| == Goals for Ubuntu bug triage == | * '''Launchpad entry:''' https://launchpad.net/products/malone/bug-workflow * '''Created:''' [[Date(2006-11-09T21:02:33Z)]] by MatthewPaulThomas * '''Contributors:''' MatthewPaulThomas == Summary == == Use cases == The projects that use Launchpad for bug tracking can be classified into four broad types. * Small upstream: Bugs typically go directly from reported to Fixed, and there is no formal verification of fixes. Releases early and often, but there is often still some lag between fixes being committed and appearing in a release. Example: Gobby. * Large upstream: Large enough that vetting and clarifying new bug reports is a useful volunteer task in itself. Releases may have alphas and betas, so whether a bugfix has been "released" is a difficult question. Example: Firefox. * Web application: A production server is updated semi-regularly. , so there may beand there is lag between code land. Example: Launchpad. * Distribution: . Example: Ubuntu. == Rationale == Now that Ubuntu and a variety of upstreams are using Launchpad for bug tracking, we need to revisit the bug statuses available to see whether they allow and encourage useful bugtracking processes. Currently a bug report has seven possible statuses. * '''Unconfirmed''': Initial status. Has not been looked at by a developer or QA volunteer. * '''Needs Info''': Needs clarification from the reporter, or someone else who can reproduce the problem. * '''Rejected''': Either it is not a bug, or it is a bug that will not be fixed in this particular place. * '''Confirmed''': Contains enough information, presented well enough, for a developer to start fixing the bug. * '''In Progress''': Currently being fixed. * '''Fix Committed''': A fix has been included in the code, but this code is not necessarily available in a released version. * Fix Released: The bug is fixed in a released version. (Whether a bug is a duplicate is orthogonal to its status.) Current plans are to introduce a "Not For Us" status (''see'' MaloneSimplifications), which would mean that the bug is valid but is not going to be fixed in that particular place. (For example, a bug in Windows that cannot be worked around by an application it affects; or a bug in Ubuntu that is never going to be fixed for Dapper.) Problems identified with these statuses: * The meaning of "Confirmed" is unclear. Ideally it should mean "contains all necessary information for a developer to fix the bug", but many people interpret it as "has been experienced by more than one person". * "Needs Info" is ambiguous. Some people == Design == * Launchpad should have these bug statuses: * New: Initial status. Has not been processed by a developer or QA volunteer. * Discussion: Nneeds clarification from the reporter, or discussion between developers on the appropriate way of solving the problem. * Ready: Contains enough information for a developer to fix the bug. * In Progress: * Committed () * Fixed (launchpad-bazaar, buildd, or ) * Fix Verified (a QA person has verified that the bug is fixed). == Implementation == === Code changes === === Schema changes === === Data migration === == Unresolved issues == * Committed, Fixed, ''and'' "Fix Verified"? That's a lot. The benefit of separating "Committed" and "Fixed" is that "Committed" bugs still show up in bug listings, so people are less likely to report duplicates of recently-fixed bugs. Is it worth the complexity? = Discussion = == Definition of Bug Statuses == A bug workflow can move through the following logical states: '''Untriaged''' means this bug report needs an experienced user or developer to evaluate the report and ensure it has enough information for a developer to reproduce the problem. '''Triaging''' means the bug has been picked up by an experienced user or developer who is gathering enough information from the bug reporter (and possibly other people) to confirm or reject it. '''Confirmed''' means an experienced user or developer has verified that the problem described by this bug report is a valid bug. It also means that there is enough preliminary information that a developer can reproduce or isolate the bug. '''Rejected''' means this bug report is not a bug. '''More Info''' means this bug needs ''more'' input to get fixed, e.g., from a UI specialist, DBA, etc. The bug may also turn out to have been trickier than it first seemed, and information gathered while Triaging was insufficient. This is distinct from Needs Info, because the bug has ''already been triaged''. '''In Progress''' means a developer is fixing this bug. '''Fix Committed''' means the fix is available in the source code repository, but isn't yet available in an official release. '''Fix Released''' means the bug has been fixed in an official release. '''Closed/Verified''' means the bug has been fixed in an official release, and the fix verified by QA. See BugVerificationWorkflow. == Notes == Untriaged should be a status. Having Untriaged be a permission implies that you must know how important this bug is to fix to be able to say it's been triaged. We don't currently have a Closed/Verified status, and Simon says there hasn't yet been a need for it. It's easy to imagine Closed/Verified being useful in a paid support scenario, but, because adding a new status is a quick change, we should wait until there is a pressing need for this status before adding it. |
| Line 21: | Line 117: |
| '''Rationale:''' Bug reports must be reasonably complete in order to be diagnosed by a developer. Because the development team is relatively small compared to the community of bug reporters, the development team must focus on complete reports. |
|
| Line 22: | Line 120: |
'''Rationale:''' Some bug reports are hopeless, for example if the reporter is unresponsive to questions, and must be abandoned in order for the bug system to remain manageable. attachment:bug-workflow.png ---- ["CategoryBugSquad"] |
Launchpad entry: https://launchpad.net/products/malone/bug-workflow
Created: Date(2006-11-09T21:02:33Z) by MatthewPaulThomas
Contributors: MatthewPaulThomas
Summary
Use cases
The projects that use Launchpad for bug tracking can be classified into four broad types.
- Small upstream: Bugs typically go directly from reported to Fixed, and there is no formal verification of fixes. Releases early and often, but there is often still some lag between fixes being committed and appearing in a release. Example: Gobby.
- Large upstream: Large enough that vetting and clarifying new bug reports is a useful volunteer task in itself. Releases may have alphas and betas, so whether a bugfix has been "released" is a difficult question. Example: Firefox.
- Web application: A production server is updated semi-regularly. , so there may beand there is lag between code land. Example: Launchpad.
- Distribution: . Example: Ubuntu.
Rationale
Now that Ubuntu and a variety of upstreams are using Launchpad for bug tracking, we need to revisit the bug statuses available to see whether they allow and encourage useful bugtracking processes.
Currently a bug report has seven possible statuses.
Unconfirmed: Initial status. Has not been looked at by a developer or QA volunteer.
Needs Info: Needs clarification from the reporter, or someone else who can reproduce the problem.
Rejected: Either it is not a bug, or it is a bug that will not be fixed in this particular place.
Confirmed: Contains enough information, presented well enough, for a developer to start fixing the bug.
In Progress: Currently being fixed.
Fix Committed: A fix has been included in the code, but this code is not necessarily available in a released version.
- Fix Released: The bug is fixed in a released version.
(Whether a bug is a duplicate is orthogonal to its status.)
Current plans are to introduce a "Not For Us" status (see MaloneSimplifications), which would mean that the bug is valid but is not going to be fixed in that particular place. (For example, a bug in Windows that cannot be worked around by an application it affects; or a bug in Ubuntu that is never going to be fixed for Dapper.)
Problems identified with these statuses:
- The meaning of "Confirmed" is unclear. Ideally it should mean "contains all necessary information for a developer to fix the bug", but many people interpret it as "has been experienced by more than one person".
- "Needs Info" is ambiguous. Some people
Design
- Launchpad should have these bug statuses:
- New: Initial status. Has not been processed by a developer or QA volunteer.
- Discussion: Nneeds clarification from the reporter, or discussion between developers on the appropriate way of solving the problem.
- Ready: Contains enough information for a developer to fix the bug.
- In Progress:
- Committed ()
- Fixed (launchpad-bazaar, buildd, or )
- Fix Verified (a QA person has verified that the bug is fixed).
Implementation
Code changes
Schema changes
Data migration
Unresolved issues
Committed, Fixed, and "Fix Verified"? That's a lot. The benefit of separating "Committed" and "Fixed" is that "Committed" bugs still show up in bug listings, so people are less likely to report duplicates of recently-fixed bugs. Is it worth the complexity?
Discussion
Definition of Bug Statuses
A bug workflow can move through the following logical states:
Untriaged means this bug report needs an experienced user or developer to evaluate the report and ensure it has enough information for a developer to reproduce the problem.
Triaging means the bug has been picked up by an experienced user or developer who is gathering enough information from the bug reporter (and possibly other people) to confirm or reject it.
Confirmed means an experienced user or developer has verified that the problem described by this bug report is a valid bug. It also means that there is enough preliminary information that a developer can reproduce or isolate the bug.
Rejected means this bug report is not a bug.
More Info means this bug needs more input to get fixed, e.g., from a UI specialist, DBA, etc. The bug may also turn out to have been trickier than it first seemed, and information gathered while Triaging was insufficient. This is distinct from Needs Info, because the bug has already been triaged.
In Progress means a developer is fixing this bug.
Fix Committed means the fix is available in the source code repository, but isn't yet available in an official release.
Fix Released means the bug has been fixed in an official release.
Closed/Verified means the bug has been fixed in an official release, and the fix verified by QA. See BugVerificationWorkflow.
Notes
Untriaged should be a status. Having Untriaged be a permission implies that you must know how important this bug is to fix to be able to say it's been triaged.
We don't currently have a Closed/Verified status, and Simon says there hasn't yet been a need for it. It's easy to imagine Closed/Verified being useful in a paid support scenario, but, because adding a new status is a quick change, we should wait until there is a pressing need for this status before adding it.
- Isolate the following categories of bugs, which should be addressed by Ubuntu developers:
- Bugs which are specific to Ubuntu
Rationale: Either we created these bugs, and so they are our responsibility, or they are only manifest in our environment, in which case we are best equipped to diagnose them.
- Other bugs which are very severe or relate to core goals of Ubuntu
Rationale: These bugs justify the direct attention of Ubuntu developers because they jeopardize our mission of producing high-quality releases
- Bugs which are specific to Ubuntu
- Pass on all other categories of bugs to the appropriate party:
- Complete bug reports which affect upstream should be made the responsibility of upstream (forwarded)
Rationale: The upstream community is better equipped to fix these bugs, and the fix should eventually go upstream anyway, so it's best for it to be fixed there in the first place
- Incomplete bug reports should be made the responsibility of the reporter by requesting further information ("Needs info")
Rationale: Bug reports must be reasonably complete in order to be diagnosed by a developer. Because the development team is relatively small compared to the community of bug reporters, the development team must focus on complete reports.
- Improper bug reports should be rejected
Rationale: Some bug reports are hopeless, for example if the reporter is unresponsive to questions, and must be abandoned in order for the bug system to remain manageable.
- Complete bug reports which affect upstream should be made the responsibility of upstream (forwarded)
attachment:bug-workflow.png
["CategoryBugSquad"]
BugWorkflow (last edited 2008-08-06 16:41:37 by localhost)