Jump to: navigation, search

Difference between revisions of "BugTriage"

Line 2: Line 2:
 
= How to triage [[OpenStack]] bugs =
 
= How to triage [[OpenStack]] bugs =
  
These are the bug triaging tasks, in descending order of priority. You should try to complete one before going to the next. It's quite difficult to reach the bottom of the list !
+
These are the bug triaging tasks, in descending order of priority. Some tasks are accessible to everyone, while some others require bug supervisor rights (usually limited to core teams).
  
== Prerequisites ==
+
== Task 1: Confirm new bugs (anyone) ==
  
If you want to triage random bugs but are not in the project Core teams, you need to join the relevant bug team:
+
When someone files a bug, its state is set to ''New''. The most important step in bug triaging is to provide feedback on that bug and make sure it's a genuine bug.
  
* https://launchpad.net/~nova-bugs
+
List at: https://bugs.launchpad.net/openstack/+bugs?field.status=NEW (replace ''openstack'' in URL with a specific project to get a project-only list)
* https://launchpad.net/~swift-bugs
 
* https://launchpad.net/~glance-bugs
 
* https://launchpad.net/~keystone-bugs
 
  
If you want to help, don't hesitate to ping an [https://launchpad.net/~openstack-admins/+members OpenStack admin] on IRC to get added.
+
* If the bug description is incomplete or the report is lacking the information necessary to reproduce the issue, you should ask the reporter to provide missing information, and set the bug status to ''Incomplete''
 +
* If the bug report contains enough information, you can reproduce it (or it looks valid), then you should set its status to ''Confirmed''
 +
* If the bug has security implications, you should set the security flag (under "This report is public" on the top right)
 +
* If the bug affects a specific area covered by an [[BugTags|official tag]], you should set the tag. For example, if the bug is likely to be quite easy to solve, add the ''low-hanging-fruit'' tag
  
== Priority 1: Triage new bugs ==
+
== Task 2: Prioritize confirmed bugs (bug supervisors) ==
  
When someone files a bug, its state is set to ''New''. The most important step in bug triaging is to provide feedback on that bug and make sure it's prioritized correctly.
+
When someone files a bug, its importance is set to ''Undecided''. Setting importance is pretty critical as it allows to prioritize all the rest of the work correctly.
  
List at: https://bugs.launchpad.net/openstack/+bugs?field.status=NEW&field.importance=UNDECIDED (replace ''openstack'' in URL with a specific project to get a project-only list)
+
List at: https://bugs.launchpad.net/openstack/+bugs?field.status=CONFIRMED&field.importance=UNDECIDED (replace ''openstack'' in URL with a specific project to get a project-only list)
  
Graph for: [http://webnumbr.com/untouched-nova-bugs Nova], [http://webnumbr.com/untouched-glance-bugs Glance], [http://webnumbr.com/untouched-swift-bugs Swift]
+
* Based on the bug information, set priority to:
 
 
* If the bug description is incomplete or the report is lacking the information necessary to reproduce the issue, you should ask the reporter to provide missing information, and set the bug status to ''Incomplete''
 
* If the bug report contains enough information, you should set priority to:
 
 
** ''Critical'' if the bug prevents a key feature from working properly (regression) for all users (or without a simple workaround) or result in data loss
 
** ''Critical'' if the bug prevents a key feature from working properly (regression) for all users (or without a simple workaround) or result in data loss
 
** ''High'' if the bug prevents a key feature from working properly for some users (or with a workaround)
 
** ''High'' if the bug prevents a key feature from working properly for some users (or with a workaround)
Line 30: Line 27:
 
** ''Low'' if the bug is mostly cosmetic
 
** ''Low'' if the bug is mostly cosmetic
 
** ''Wishlist'' if the bug is not really a bug, but rather a welcome change in behavior
 
** ''Wishlist'' if the bug is not really a bug, but rather a welcome change in behavior
* If the bug has security implications, you should set the security flag (under "This report is public" on the top right)
 
* If the bug affects a given subteam, you should set the appropriate tag (for example "ec2" for EC2 API issues)
 
* Set the bug status to ''Confirmed''
 
 
* If the bug contains the solution, or a patch, set the bug status to ''Triaged''
 
* If the bug contains the solution, or a patch, set the bug status to ''Triaged''
* If the bug is likely to be quite easy to solve, add the ''low-hanging-fruit'' tag
 
  
== Priority 2: Solve inconsistencies ==
+
== Task 3: Solve inconsistencies (anyone) ==
  
 
Some bugs might end up in an incorrect state. You should fix:
 
Some bugs might end up in an incorrect state. You should fix:
  
* [https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.importance=UNDECIDED Confirmed bugs with ''Undecided'' priority]: priority should be set (see above)
 
 
* [https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=NEW&field.importance%3Alist=CRITICAL&field.importance%3Alist=HIGH&field.importance%3Alist=MEDIUM&field.importance%3Alist=LOW&field.importance%3Alist=WISHLIST New bugs with a priority set]: status should be set to ''Confirmed'' (or ''In progress'' if an assignee is set)
 
* [https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=NEW&field.importance%3Alist=CRITICAL&field.importance%3Alist=HIGH&field.importance%3Alist=MEDIUM&field.importance%3Alist=LOW&field.importance%3Alist=WISHLIST New bugs with a priority set]: status should be set to ''Confirmed'' (or ''In progress'' if an assignee is set)
 
* In progress bugs without an assignee: an assignee should bet set, or the bug should return to ''Confirmed'' status
 
* In progress bugs without an assignee: an assignee should bet set, or the bug should return to ''Confirmed'' status
  
== Priority 3: Review incomplete bugs ==
+
== Task 4: Review incomplete bugs (anyone) ==
  
 
List at: https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=INCOMPLETE_WITH_RESPONSE&field.status%3Alist=INCOMPLETE_WITHOUT_RESPONSE
 
List at: https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=INCOMPLETE_WITH_RESPONSE&field.status%3Alist=INCOMPLETE_WITHOUT_RESPONSE
Line 63: Line 55:
  
  
== Priority 4: Review stale ''In Progress'' bugs ==
+
== Task 5: Review stale ''In Progress'' bugs (anyone) ==
  
Make sure ''In Progress'' bugs are actually in progress.
+
Make sure ''In Progress'' bugs are actually in progress. Unassign them and set them back to ''Confirmed'' or ''Triaged'' if not.
  
 
List: a tool will be provided to identify those bugs.
 
List: a tool will be provided to identify those bugs.
  
== Priority 5: Review bugs with a patch ==
+
== Task 6: Review bugs with a patch (bug supervisors) ==
  
 
Some bugs are filed with an attached patch. We should review if the patch looks indeed like a patch, and if yes, set the bug status to ''Triaged'' to show that it comes with a likely solution, ready to be implemented.
 
Some bugs are filed with an attached patch. We should review if the patch looks indeed like a patch, and if yes, set the bug status to ''Triaged'' to show that it comes with a likely solution, ready to be implemented.
Line 75: Line 67:
 
List: https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.has_patch=on
 
List: https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.has_patch=on
  
== Priority 6: Review Critical/High bugs ==
+
== Task 7: Review Critical/High bugs (bug supervisors) ==
  
 
We should review all ''Critical'' and ''High'' bugs to make sure they are still relevant and properly prioritized.
 
We should review all ''Critical'' and ''High'' bugs to make sure they are still relevant and properly prioritized.
Line 81: Line 73:
 
List: https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.importance%3Alist=CRITICAL&field.importance%3Alist=HIGH (replace ''openstack'' in URL with a specific project to get a project-only list)
 
List: https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.importance%3Alist=CRITICAL&field.importance%3Alist=HIGH (replace ''openstack'' in URL with a specific project to get a project-only list)
  
== Priority 7: Review Medium/Low bugs ==
+
== Task 8: Review Medium/Low bugs (bug supervisors) ==
  
 
We should review all ''Medium'' and ''Low'' bugs to make sure they are still relevant and properly prioritized.
 
We should review all ''Medium'' and ''Low'' bugs to make sure they are still relevant and properly prioritized.
Line 87: Line 79:
 
List: https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.importance%3Alist=MEDIUM&field.importance%3Alist=LOW (replace ''openstack'' in URL with a specific project to get a project-only list)
 
List: https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.importance%3Alist=MEDIUM&field.importance%3Alist=LOW (replace ''openstack'' in URL with a specific project to get a project-only list)
  
== Priority 8: Review wishlist bugs ==
+
== Task 9: Review wishlist bugs (bug supervisors) ==
  
 
We should review all ''Wishlist'' bugs to make sure they are still relevant and properly prioritized.
 
We should review all ''Wishlist'' bugs to make sure they are still relevant and properly prioritized.
Line 93: Line 85:
 
List: https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.importance=WISHLIST (replace ''openstack'' in URL with a specific project to get a project-only list)
 
List: https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.importance=WISHLIST (replace ''openstack'' in URL with a specific project to get a project-only list)
  
== Priority 9: Celebrate ! ==
+
== Task 10: Celebrate ! ==
  
 
If you've reached this step, have a beer, it's on me.
 
If you've reached this step, have a beer, it's on me.

Revision as of 14:31, 21 May 2012

How to triage OpenStack bugs

These are the bug triaging tasks, in descending order of priority. Some tasks are accessible to everyone, while some others require bug supervisor rights (usually limited to core teams).

Task 1: Confirm new bugs (anyone)

When someone files a bug, its state is set to New. The most important step in bug triaging is to provide feedback on that bug and make sure it's a genuine bug.

List at: https://bugs.launchpad.net/openstack/+bugs?field.status=NEW (replace openstack in URL with a specific project to get a project-only list)

  • If the bug description is incomplete or the report is lacking the information necessary to reproduce the issue, you should ask the reporter to provide missing information, and set the bug status to Incomplete
  • If the bug report contains enough information, you can reproduce it (or it looks valid), then you should set its status to Confirmed
  • If the bug has security implications, you should set the security flag (under "This report is public" on the top right)
  • If the bug affects a specific area covered by an official tag, you should set the tag. For example, if the bug is likely to be quite easy to solve, add the low-hanging-fruit tag

Task 2: Prioritize confirmed bugs (bug supervisors)

When someone files a bug, its importance is set to Undecided. Setting importance is pretty critical as it allows to prioritize all the rest of the work correctly.

List at: https://bugs.launchpad.net/openstack/+bugs?field.status=CONFIRMED&field.importance=UNDECIDED (replace openstack in URL with a specific project to get a project-only list)

  • Based on the bug information, set priority to:
    • Critical if the bug prevents a key feature from working properly (regression) for all users (or without a simple workaround) or result in data loss
    • High if the bug prevents a key feature from working properly for some users (or with a workaround)
    • Medium if the bug prevents a secondary feature from working properly
    • Low if the bug is mostly cosmetic
    • Wishlist if the bug is not really a bug, but rather a welcome change in behavior
  • If the bug contains the solution, or a patch, set the bug status to Triaged

Task 3: Solve inconsistencies (anyone)

Some bugs might end up in an incorrect state. You should fix:

  • New bugs with a priority set: status should be set to Confirmed (or In progress if an assignee is set)
  • In progress bugs without an assignee: an assignee should bet set, or the bug should return to Confirmed status

Task 4: Review incomplete bugs (anyone)

List at: https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=INCOMPLETE_WITH_RESPONSE&field.status%3Alist=INCOMPLETE_WITHOUT_RESPONSE

  • If the reporter provided the requested answer: bug status should be set to Confirmed
  • If the reporter did provide information, but more detail is required: ask for missing information
  • If the reporter did not answer within 2 weeks: Politely remind the reporter to provide missing information, for example:
We cannot solve the issue you reported without more information. Could you please provide the requested information ?
  • If the reporter did not answer the reminder for another 4 weeks: Set the bug status to Invalid with a comment, for example:
This bug lacks the necessary information to effectively reproduce and fix it, therefore it has been closed. Feel free to reopen the bug by providing the requested information and set the bug status back to ''New''.


Task 5: Review stale In Progress bugs (anyone)

Make sure In Progress bugs are actually in progress. Unassign them and set them back to Confirmed or Triaged if not.

List: a tool will be provided to identify those bugs.

Task 6: Review bugs with a patch (bug supervisors)

Some bugs are filed with an attached patch. We should review if the patch looks indeed like a patch, and if yes, set the bug status to Triaged to show that it comes with a likely solution, ready to be implemented.

List: https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.has_patch=on

Task 7: Review Critical/High bugs (bug supervisors)

We should review all Critical and High bugs to make sure they are still relevant and properly prioritized.

List: https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.importance%3Alist=CRITICAL&field.importance%3Alist=HIGH (replace openstack in URL with a specific project to get a project-only list)

Task 8: Review Medium/Low bugs (bug supervisors)

We should review all Medium and Low bugs to make sure they are still relevant and properly prioritized.

List: https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.importance%3Alist=MEDIUM&field.importance%3Alist=LOW (replace openstack in URL with a specific project to get a project-only list)

Task 9: Review wishlist bugs (bug supervisors)

We should review all Wishlist bugs to make sure they are still relevant and properly prioritized.

List: https://bugs.launchpad.net/openstack/+bugs?field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.importance=WISHLIST (replace openstack in URL with a specific project to get a project-only list)

Task 10: Celebrate !

If you've reached this step, have a beer, it's on me.