BugBot: Difference between revisions

166 bytes removed ,  26 April 2023
Change the bot's name from Autonag to BugBot
m (SuhaibMujahid moved page Bugbot to BugBot)
(Change the bot's name from Autonag to BugBot)
Line 1: Line 1:
{{ DISPLAYTITLE:Autonag: Bugzilla triaging bot and alerting system }}
{{ DISPLAYTITLE:BugBot: Bugzilla triaging bot and alerting system }}


<p style="font-size: larger; font-weight:bold;">
<p style="font-size: larger; font-weight:bold;">
This page lists all the actions done by the [https://github.com/mozilla/relman-auto-nag/ Autonag bot].</p>
This page lists all the actions done by the [https://github.com/mozilla/bugbot/ BugBot].</p>


= Introduction =
= Introduction =
Every day hundreds of tickets are opened in [https://bugzilla.mozilla.org Bugzilla] which track the tasks, defects and enhancements needed for the development of Firefox and other Mozilla projects.  
Every day hundreds of tickets are opened in [https://bugzilla.mozilla.org Bugzilla] which track the tasks, defects and enhancements needed for the development of Firefox and other Mozilla projects.
Triaging and priotirizing these bugs are an essential part of our development process and we automate part of this process so as to increase our development turn around and improve the quality of our bugs metadata. The set of scripts we use to improve the quality of our bugs, decrease our triaging time and help Release Management ship better quality software is called '''Autonag'''.
Triaging and priotirizing these bugs are an essential part of our development process and we automate part of this process so as to increase our development turn around and improve the quality of our bugs metadata. The set of tools we use to improve the quality of our bugs, decrease our triaging time and help Release Management ship better quality software is called '''BugBot''' (formerly known as Autonag).


Initially created as an alerting system (by email) to our triagers, Autonag rules now also make changes to our bugs metadata on Bugzilla so as to fix inconsistencies.  
Initially created as an alerting system (by email) to our triagers, BugBot rules now also make changes to our bugs metadata on Bugzilla so as to fix inconsistencies.


Rules that change automatically some data in Bugzilla (change a priority, needinfo somebody, close a bug…) are called "Rules with Autofix".
Rules that change automatically some data in Bugzilla (change a priority, needinfo somebody, close a bug…) are called "Rules with Autofix".
Line 18: Line 18:
= Rules =
= Rules =
== With autofix ==
== With autofix ==
{{AutonagRule
{{BugBotRule
   | Rule name = Variant Expiration
   | Rule name = Variant Expiration
   | Purpose  = Follow up on variants that need to be dropped or extended
   | Purpose  = Follow up on variants that need to be dropped or extended
Line 24: Line 24:
   | Source    = variant_expiration.py  
   | Source    = variant_expiration.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Detect spam bugs
   | Rule name = Detect spam bugs
   | Purpose  = Automatically detect and handle spam bugs
   | Purpose  = Automatically detect and handle spam bugs
Line 30: Line 30:
   | Source    = spambug.py  
   | Source    = spambug.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Wrong bug type
   | Rule name = Wrong bug type
   | Purpose  = Correct the bug type
   | Purpose  = Correct the bug type
Line 36: Line 36:
   | Source    = defectenhancementtask.py  
   | Source    = defectenhancementtask.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Enhancement or task with the "regression", "crash" or "assertion" keyword
   | Rule name = Enhancement or task with the "regression", "crash" or "assertion" keyword
   | Purpose  = Correct the bug type
   | Purpose  = Correct the bug type
Line 42: Line 42:
   | Source    = regression_but_type_enhancement_task.py  
   | Source    = regression_but_type_enhancement_task.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Closed bugs with dupeme keyword
   | Rule name = Closed bugs with dupeme keyword
   | Purpose  = Clean up the metadata
   | Purpose  = Clean up the metadata
Line 48: Line 48:
   | Source    = closed_dupeme.py  
   | Source    = closed_dupeme.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with dupeme in the whiteboard instead of keyword
   | Rule name = Bugs with dupeme in the whiteboard instead of keyword
   | Purpose  = Clean up the metadata
   | Purpose  = Clean up the metadata
Line 54: Line 54:
   | Source    = dupeme_whiteboard_keyword.py  
   | Source    = dupeme_whiteboard_keyword.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with no 'Has STR' and STR in the first comment
   | Rule name = Bugs with no 'Has STR' and STR in the first comment
   | Purpose  = Compleat missing metadata
   | Purpose  = Compleat missing metadata
Line 60: Line 60:
   | Source    = has_str_no_hasstr.py  
   | Source    = has_str_no_hasstr.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with STR and no regression range
   | Rule name = Bugs with STR and no regression range
   | Purpose  = Compleat missing metadata
   | Purpose  = Compleat missing metadata
Line 66: Line 66:
   | Source    = has_str_no_range.py  
   | Source    = has_str_no_range.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Copy metadata from duplicates
   | Rule name = Copy metadata from duplicates
   | Purpose  = Increase the visibility of important information after closing a bug as a duplicate
   | Purpose  = Increase the visibility of important information after closing a bug as a duplicate
Line 72: Line 72:
   | Source    = duplicate_copy_metadata.py  
   | Source    = duplicate_copy_metadata.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with small crash volume
   | Rule name = Bugs with small crash volume
   | Purpose  = Identify topcrash or high severity bugs that started getting small crash volume  
   | Purpose  = Identify topcrash or high severity bugs that started getting small crash volume  
Line 78: Line 78:
   | Source    = crash_small_volume.py  
   | Source    = crash_small_volume.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with higher severity duplicates
   | Rule name = Bugs with higher severity duplicates
   | Purpose  = Highlight inconsistency in the severity between a bug and its duplicates
   | Purpose  = Highlight inconsistency in the severity between a bug and its duplicates
Line 84: Line 84:
   | Source    = severity_higher_dups.py  
   | Source    = severity_higher_dups.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Regression on nightly
   | Rule name = Regression on nightly
   | Purpose  = Increase the visibility of regression bugs
   | Purpose  = Increase the visibility of regression bugs
Line 90: Line 90:
   | Source    = regression_new_set_nightly_affected.py  
   | Source    = regression_new_set_nightly_affected.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Remove <code>leave-open</code> keyword on closed bug
   | Rule name = Remove <code>leave-open</code> keyword on closed bug
   | Purpose  = Clean up a mismatch in metadata
   | Purpose  = Clean up a mismatch in metadata
Line 97: Line 97:
   | Source    = leave_open.py  
   | Source    = leave_open.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = [meta] in title but not in keywords
   | Rule name = [meta] in title but not in keywords
   | Purpose  = Improve metedata quality
   | Purpose  = Improve metedata quality
Line 104: Line 104:
   | Source    = meta_summary_missing.py  
   | Source    = meta_summary_missing.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Update Firefox Status flags for bugs reopened during Nightly cycle
   | Rule name = Update Firefox Status flags for bugs reopened during Nightly cycle
   | Purpose  = Avoids potential issues for sheriffs and release managers
   | Purpose  = Avoids potential issues for sheriffs and release managers
Line 111: Line 111:
   | Source    = nightly_reopened.py
   | Source    = nightly_reopened.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bug with no assignee but a patch landed
   | Rule name = Bug with no assignee but a patch landed
   | Purpose  = Attribute unassigned bug to the developer that fixed it
   | Purpose  = Attribute unassigned bug to the developer that fixed it
Line 118: Line 118:
   | Source    = no_assignee.py  
   | Source    = no_assignee.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Close crash bugs with no crashes over 12 weeks
   | Rule name = Close crash bugs with no crashes over 12 weeks
   | Purpose  = Reduce the backlog of bugs to check for Release Managers  
   | Purpose  = Reduce the backlog of bugs to check for Release Managers  
Line 125: Line 125:
   | Source    = no_crashes.py  
   | Source    = no_crashes.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Remove <code>stalled</code> keyword on closed bugs
   | Rule name = Remove <code>stalled</code> keyword on closed bugs
   | Purpose  = Fix inconsistency between metadata and bug status
   | Purpose  = Fix inconsistency between metadata and bug status
Line 132: Line 132:
   | Source    = stalled.py
   | Source    = stalled.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Has meta keyword but not [meta] in the bug title
   | Rule name = Has meta keyword but not [meta] in the bug title
   | Purpose  = Having [meta] in the bug title helps with quick search results
   | Purpose  = Having [meta] in the bug title helps with quick search results
Line 139: Line 139:
   | Source    = summary_meta_missing.py
   | Source    = summary_meta_missing.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Set a Firefox status flag for beta if there is one for nightly and release
   | Rule name = Set a Firefox status flag for beta if there is one for nightly and release
   | Purpose  = Fix inconsistency in Firefox status flags that can lead to a bug going undetected by Release Managers during the beta cycle
   | Purpose  = Fix inconsistency in Firefox status flags that can lead to a bug going undetected by Release Managers during the beta cycle
Line 146: Line 146:
   | Source    = missing_beta_status.py  
   | Source    = missing_beta_status.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Add <code>regression</code> keywords to bugs (uses Machine Learning)
   | Rule name = Add <code>regression</code> keywords to bugs (uses Machine Learning)
   | Purpose  = Surface regressions not filed as such
   | Purpose  = Surface regressions not filed as such
Line 153: Line 153:
   | Source    = regression.py  
   | Source    = regression.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Move untriaged bug into the correct component (uses machine learning)   
   | Rule name = Move untriaged bug into the correct component (uses machine learning)   
   | Purpose  = Decrease manual triage time
   | Purpose  = Decrease manual triage time
Line 160: Line 160:
   | Source    = component.py  
   | Source    = component.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Copy crash signature from duplicate bugs to main bugs
   | Rule name = Copy crash signature from duplicate bugs to main bugs
   | Purpose  = Crash bugs marked as duplicate of another one may have a different crash signature. We need to consolidate all signatures in the bug where a patch to fix them is being worked on, other wise we may not fix them all
   | Purpose  = Crash bugs marked as duplicate of another one may have a different crash signature. We need to consolidate all signatures in the bug where a patch to fix them is being worked on, other wise we may not fix them all
Line 167: Line 167:
   | Source    = copy_duplicate_info.py  
   | Source    = copy_duplicate_info.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Update release status flags based on info from the regressing bug
   | Rule name = Update release status flags based on info from the regressing bug
   | Purpose  = Automate setting the release status flags
   | Purpose  = Automate setting the release status flags
Line 173: Line 173:
   | Source    = regression_set_status_flags.py  
   | Source    = regression_set_status_flags.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Increase severity of bugs tracked by Release Managers
   | Rule name = Increase severity of bugs tracked by Release Managers
   | Purpose  = Fix inconsistency in metadata
   | Purpose  = Fix inconsistency in metadata
Line 179: Line 179:
   | Example  = 1538966
   | Example  = 1538966
   | Source    = tracked_bad_severity.py
   | Source    = tracked_bad_severity.py
   | Note      = Dropped in favor of [[Release Management/autonag#tracked_attention.py|Tracked bugs that need attention]]
   | Note      = Dropped in favor of [[BugBot#tracked_attention.py|Tracked bugs that need attention]]
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Nag triage owner to set severity on bugs
   | Rule name = Nag triage owner to set severity on bugs
   | Purpose  = Every defect should have a severity set. Also bugs with no severity set are harder to prioritize for Release Managers with regards to the release (see [https://firefox-source-docs.mozilla.org/bug-mgmt/policies/triage-bugzilla.html#what-do-you-triage what-do-you-triage])
   | Purpose  = Every defect should have a severity set. Also bugs with no severity set are harder to prioritize for Release Managers with regards to the release (see [https://firefox-source-docs.mozilla.org/bug-mgmt/policies/triage-bugzilla.html#what-do-you-triage what-do-you-triage])
Line 188: Line 188:
   | Source    = workflow/no_severity.py
   | Source    = workflow/no_severity.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Nag triage owner on P1 bugs with no activity
   | Rule name = Nag triage owner on P1 bugs with no activity
   | Purpose  = Since P1 means that the bug should be fixed for the next release (see [https://firefox-source-docs.mozilla.org/bug-mgmt/policies/triage-bugzilla.html#what-do-you-triage what-do-you-triage]), the bug needs to show any progress in its resolution (or maybe the priority should be decreased)
   | Purpose  = Since P1 means that the bug should be fixed for the next release (see [https://firefox-source-docs.mozilla.org/bug-mgmt/policies/triage-bugzilla.html#what-do-you-triage what-do-you-triage]), the bug needs to show any progress in its resolution (or maybe the priority should be decreased)
Line 195: Line 195:
   | Source    = workflow/p1_no_activity.py
   | Source    = workflow/p1_no_activity.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Nag triage owner to find an assignee for P1 bugs with no assignee and no activity
   | Rule name = Nag triage owner to find an assignee for P1 bugs with no assignee and no activity
   | Purpose  = Since P1 means that the bug should be fixed for the next release (see [https://firefox-source-docs.mozilla.org/bug-mgmt/policies/triage-bugzilla.html#what-do-you-triage what-do-you-triage]), the bug urgently needs to have an assignee (or the priority should be decreased)
   | Purpose  = Since P1 means that the bug should be fixed for the next release (see [https://firefox-source-docs.mozilla.org/bug-mgmt/policies/triage-bugzilla.html#what-do-you-triage what-do-you-triage]), the bug urgently needs to have an assignee (or the priority should be decreased)
Line 202: Line 202:
   | Source    = workflow/p1_no_assignee.py
   | Source    = workflow/p1_no_assignee.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Change the priority from P2 to P1 on assigned bug the merge day
   | Rule name = Change the priority from P2 to P1 on assigned bug the merge day
   | Purpose  = Since P2 means that the bug should be fixed for the next next release (see [https://firefox-source-docs.mozilla.org/bug-mgmt/policies/triage-bugzilla.html#what-do-you-triage what-do-you-triage]), when we are the merge day then this bug automatically becomes a P1.
   | Purpose  = Since P2 means that the bug should be fixed for the next next release (see [https://firefox-source-docs.mozilla.org/bug-mgmt/policies/triage-bugzilla.html#what-do-you-triage what-do-you-triage]), when we are the merge day then this bug automatically becomes a P1.
Line 209: Line 209:
   | Source    = workflow/p2_merge_day.py
   | Source    = workflow/p2_merge_day.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Patch not landed  
   | Rule name = Patch not landed  
   | Purpose  = Identify bugs with an unlanded r+ patch. Maybe the patch is now obsolete or the bug needs to have a sheriff land the code with the <code>checkin-needed</code> keyword set.
   | Purpose  = Identify bugs with an unlanded r+ patch. Maybe the patch is now obsolete or the bug needs to have a sheriff land the code with the <code>checkin-needed</code> keyword set.
Line 216: Line 216:
   | Source    = not_landed.py
   | Source    = not_landed.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Regression without regressed_by and some bug dependencies  
   | Rule name = Regression without regressed_by and some bug dependencies  
   | Purpose  = Identify regressions which have dependencies (blocks or depends_on) and an empty regressed_by, probably people forgot to use the new field.
   | Purpose  = Identify regressions which have dependencies (blocks or depends_on) and an empty regressed_by, probably people forgot to use the new field.
Line 223: Line 223:
   | Source    = regression_without_regressed_by.py
   | Source    = regression_without_regressed_by.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Product::Component changed after the priority has been set  
   | Rule name = Product::Component changed after the priority has been set  
   | Purpose  = Identify bugs where Product::Component changed after the priority has been set. The priority is probably no more up-to-date and so triage owner needs to set it.
   | Purpose  = Identify bugs where Product::Component changed after the priority has been set. The priority is probably no more up-to-date and so triage owner needs to set it.
Line 230: Line 230:
   | Source    = prod_comp_changed_with_priority.py
   | Source    = prod_comp_changed_with_priority.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Close intermittent test failure bugs  
   | Rule name = Close intermittent test failure bugs  
   | Purpose  = Close intermittent test failure bugs which are P5s, not marked <code>leave-open</code>, and have not had a new failure in 21 days.
   | Purpose  = Close intermittent test failure bugs which are P5s, not marked <code>leave-open</code>, and have not had a new failure in 21 days.
Line 237: Line 237:
   | Source    = close_intermittents.py
   | Source    = close_intermittents.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Ask for a beta uplift request  
   | Rule name = Ask for a beta uplift request  
   | Purpose  = Identify bugs where a patch fixed a bug in nightly and beta is marked as affected.
   | Purpose  = Identify bugs where a patch fixed a bug in nightly and beta is marked as affected.
Line 244: Line 244:
   | Source    = uplift_beta.py
   | Source    = uplift_beta.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Fuzzing bisection without regressed_by  
   | Rule name = Fuzzing bisection without regressed_by  
   | Purpose  = Identify bugs which contain a bisection made by fuzzing tools and an empty regressed_by, probably people forgot to set the field.
   | Purpose  = Identify bugs which contain a bisection made by fuzzing tools and an empty regressed_by, probably people forgot to set the field.
Line 250: Line 250:
   | Example  = 1683535
   | Example  = 1683535
   | Source    = fuzzing_bisection_without_regressed_by.py
   | Source    = fuzzing_bisection_without_regressed_by.py
   | Note      = Replaced with [[Release Management/autonag#bisection_without_regressed_by.py|Bisection without regressed_by]]
   | Note      = Replaced with [[BugBot#bisection_without_regressed_by.py|Bisection without regressed_by]]
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bisection without regressed_by  
   | Rule name = Bisection without regressed_by  
   | Purpose  = Identify bugs which contain a bisection made by mozregression or fuzzing tools and an empty regressed_by, probably people forgot to set the field.
   | Purpose  = Identify bugs which contain a bisection made by mozregression or fuzzing tools and an empty regressed_by, probably people forgot to set the field.
Line 259: Line 259:
   | Source    = bisection_without_regressed_by.py
   | Source    = bisection_without_regressed_by.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Unassign inactive bugs with the good-first-bug keyword
   | Rule name = Unassign inactive bugs with the good-first-bug keyword
   | Purpose  = Identify inactive good first bugs, to free them up for other contributors.
   | Purpose  = Identify inactive good first bugs, to free them up for other contributors.
Line 266: Line 266:
   | Source    = good_first_bug_unassign_inactive.py
   | Source    = good_first_bug_unassign_inactive.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with needinfo requests on inactive people
   | Rule name = Bugs with needinfo requests on inactive people
   | Purpose  = Identify bugs that have pending needinfo on inactive users.
   | Purpose  = Identify bugs that have pending needinfo on inactive users.
Line 273: Line 273:
   | Source    = inactive_ni_pending.py
   | Source    = inactive_ni_pending.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with top-crash signatures
   | Rule name = Bugs with top-crash signatures
   | Purpose  = Identify bugs that are missing topcrash or topcrash-startup keywords
   | Purpose  = Identify bugs that are missing topcrash or topcrash-startup keywords
Line 279: Line 279:
   | Source    = topcrash_add_keyword.py  
   | Source    = topcrash_add_keyword.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Approve tracking request for expiring telemetry
   | Rule name = Approve tracking request for expiring telemetry
   | Purpose  = Save time and eliminate unnecessary manual work
   | Purpose  = Save time and eliminate unnecessary manual work
Line 289: Line 289:




{{AutonagRule
{{BugBotRule
   | Rule name = Feature vs regression
   | Rule name = Feature vs regression
   | Purpose  = Fix inconsistency in bugs with both the <code>regression</code> and <code>feature</code> keywords set  
   | Purpose  = Fix inconsistency in bugs with both the <code>regression</code> and <code>feature</code> keywords set  
   | Source    = feature_regression.py
   | Source    = feature_regression.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Inactive bugs with the <code>leave-open</code> keyword set
   | Rule name = Inactive bugs with the <code>leave-open</code> keyword set
   | Purpose  = Help identify dead/inactive bugs
   | Purpose  = Help identify dead/inactive bugs
Line 301: Line 301:
   | Source    = leave_open_no_activity.py  
   | Source    = leave_open_no_activity.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Inactive Meta bugs
   | Rule name = Inactive Meta bugs
   | Purpose  = Help identify dead/inactive bugs
   | Purpose  = Help identify dead/inactive bugs
Line 307: Line 307:
   | Source    = meta_no_deps_no_activity.py  
   | Source    = meta_no_deps_no_activity.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Alert for lack of feedback in a bug
   | Rule name = Alert for lack of feedback in a bug
   | Purpose  = Increase reaction time on bugs prioritized by upper management or release managers
   | Purpose  = Increase reaction time on bugs prioritized by upper management or release managers
Line 313: Line 313:
   | Source    = ni_from_manager.py  
   | Source    = ni_from_manager.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with only one or two words in the summary
   | Rule name = Bugs with only one or two words in the summary
   | Purpose  = Make sure the bug is actually useful, a two-words summary often indicates a poor quality bug report
   | Purpose  = Make sure the bug is actually useful, a two-words summary often indicates a poor quality bug report
Line 319: Line 319:
   | Source    = one_two_word_summary.py  
   | Source    = one_two_word_summary.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Reporter not answering to Needinfo request
   | Rule name = Reporter not answering to Needinfo request
   | Purpose  = identify bugs stalled because we need more information fron the reporter to reproduce it
   | Purpose  = identify bugs stalled because we need more information fron the reporter to reproduce it
   | Source    = reporter_with_ni.py
   | Source    = reporter_with_ni.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Top crashers with low severity
   | Rule name = Top crashers with low severity
   | Purpose  = Consistency and help getting traction on top-crash bugs
   | Purpose  = Consistency and help getting traction on top-crash bugs
Line 331: Line 331:
   | Source    = topcrash_bad_severity.py  
   | Source    = topcrash_bad_severity.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Identify tracked bugs with a NeedInfo request
   | Rule name = Identify tracked bugs with a NeedInfo request
   | Purpose  = Make sure that bugs tracked for a release or nominated for tracking which also have a NeedInfo request do not get stuck
   | Purpose  = Make sure that bugs tracked for a release or nominated for tracking which also have a NeedInfo request do not get stuck
Line 337: Line 337:
   | Source    = tracked_needinfo.py  
   | Source    = tracked_needinfo.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Tracked bugs untouched for a week
   | Rule name = Tracked bugs untouched for a week
   | Purpose  = Identify important bugs for a release which are not being acted upon  
   | Purpose  = Identify important bugs for a release which are not being acted upon  
Line 343: Line 343:
   | Source    = tracking.py
   | Source    = tracking.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Identify unlanded uplifts to Beta and ESR
   | Rule name = Identify unlanded uplifts to Beta and ESR
   | Purpose  =  Make sure that we ship with the bugs that we need
   | Purpose  =  Make sure that we ship with the bugs that we need
Line 350: Line 350:
   | Source    = unlanded.py
   | Source    = unlanded.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with high severity in Firefox::Untriaged
   | Rule name = Bugs with high severity in Firefox::Untriaged
   | Purpose  = Identify potentially important issues left untriaged
   | Purpose  = Identify potentially important issues left untriaged
   | Source    = untriage_important_sev.py
   | Source    = untriage_important_sev.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Information about bugs landed during Soft Code Freeze
   | Rule name = Information about bugs landed during Soft Code Freeze
   | Purpose  = List fixed bug with patches  which landed in mozilla-central during the soft freeze week. The listing includes patch statistics.
   | Purpose  = List fixed bug with patches  which landed in mozilla-central during the soft freeze week. The listing includes patch statistics.
Line 361: Line 361:
   | Source    = code_freeze_week.py
   | Source    = code_freeze_week.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Hightlight Fixed bugs in nightly we may want to uplift
   | Rule name = Hightlight Fixed bugs in nightly we may want to uplift
   | Purpose  = Identify potentially upliftable  bugs.  
   | Purpose  = Identify potentially upliftable  bugs.  
Line 367: Line 367:
   | Source    = missed_uplifts.py
   | Source    = missed_uplifts.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = New user with a Needinfo request
   | Rule name = New user with a Needinfo request
   | Purpose  = Help identify potentially unactionnable bugs per lack of information
   | Purpose  = Help identify potentially unactionnable bugs per lack of information
Line 373: Line 373:
   | Source    = newbie_with_ni.py
   | Source    = newbie_with_ni.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Assignee is inactive
   | Rule name = Assignee is inactive
   | Purpose  = Help identify bugs that are assigned to inactive accounts
   | Purpose  = Help identify bugs that are assigned to inactive accounts
Line 379: Line 379:
   | Source    = assignee_no_login.py
   | Source    = assignee_no_login.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with inconsistent severity flags
   | Rule name = Bugs with inconsistent severity flags
   | Purpose  = Make sure that bugs severity is consistent with the [[Accessibility/Triage#Triaging_Firefox_and_Gecko_feature_defects|accessibility severity]] on the Whiteboard
   | Purpose  = Make sure that bugs severity is consistent with the [[Accessibility/Triage#Triaging_Firefox_and_Gecko_feature_defects|accessibility severity]] on the Whiteboard
Line 385: Line 385:
   | Source    = severity_inconsistency.py
   | Source    = severity_inconsistency.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Regression bugs where regressor author is not involved
   | Rule name = Regression bugs where regressor author is not involved
   | Purpose  = Highlight regressions to people who caused them
   | Purpose  = Highlight regressions to people who caused them
Line 391: Line 391:
   | Source    = needinfo_regression_author.py
   | Source    = needinfo_regression_author.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with high security keywords which are set to low severity
   | Rule name = Bugs with high security keywords which are set to low severity
   | Purpose  = Identify bugs whose severity field is set to S3 or S4 and at the same time have sec-high or sec-critical keywords
   | Purpose  = Identify bugs whose severity field is set to S3 or S4 and at the same time have sec-high or sec-critical keywords
Line 397: Line 397:
   | Source    = severity_high_security.py
   | Source    = severity_high_security.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Low severity bugs with tracking status
   | Rule name = Low severity bugs with tracking status
   | Purpose  = Suggest increasing the severity for bugs that are marked as blocking or are tracked for nightly, beta, or release
   | Purpose  = Suggest increasing the severity for bugs that are marked as blocking or are tracked for nightly, beta, or release
   | Action    = Needinfo the assignee or the triage owner if not assigned yet
   | Action    = Needinfo the assignee or the triage owner if not assigned yet
   | Source    = severity_tracked.py
   | Source    = severity_tracked.py
   | Note      = Dropped in favor of [[Release Management/autonag#tracked_attention.py|Tracked bugs that need attention]]
   | Note      = Dropped in favor of [[BugBot#tracked_attention.py|Tracked bugs that need attention]]
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with P1 WebCompat priority and severity set to low
   | Rule name = Bugs with P1 WebCompat priority and severity set to low
   | Purpose  = Consistency and getting traction on important web compatibility bugs
   | Purpose  = Consistency and getting traction on important web compatibility bugs
Line 410: Line 410:
   | Source    = severity_high_compat_priority.py  
   | Source    = severity_high_compat_priority.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Automatically confirm bugs that have an affected Firefox version flag
   | Rule name = Automatically confirm bugs that have an affected Firefox version flag
   | Purpose  = Fix inconsistency in the status of unconfirmed bugs
   | Purpose  = Fix inconsistency in the status of unconfirmed bugs
Line 416: Line 416:
   | Source    = affected_flag_confirm.py  
   | Source    = affected_flag_confirm.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Automatically confirm bugs that have a crash signature
   | Rule name = Automatically confirm bugs that have a crash signature
   | Purpose  = Fix inconsistency in the status of unconfirmed bugs
   | Purpose  = Fix inconsistency in the status of unconfirmed bugs
Line 422: Line 422:
   | Source    = crash_signature_confirm.py
   | Source    = crash_signature_confirm.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with patches after being closed
   | Rule name = Bugs with patches after being closed
   | Purpose  = Identify bugs that receive patches after being closed
   | Purpose  = Identify bugs that receive patches after being closed
Line 428: Line 428:
   | Source    = patch_closed_bug.py
   | Source    = patch_closed_bug.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with underestimated severity levels
   | Rule name = Bugs with underestimated severity levels
   | Purpose  = Identify bugs whose severity could be underestimated
   | Purpose  = Identify bugs whose severity could be underestimated
Line 434: Line 434:
   | Source    = severity_underestimated.py
   | Source    = severity_underestimated.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Components with triage owner need to be assigned
   | Rule name = Components with triage owner need to be assigned
   | Purpose  = Identify components whose triage owners are unassigned, disabled, or inactive
   | Purpose  = Identify components whose triage owners are unassigned, disabled, or inactive
Line 440: Line 440:
   | Source    = vacant_triage_owner.py
   | Source    = vacant_triage_owner.py
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Tracked bugs that need attention
   | Rule name = Tracked bugs that need attention
   | Purpose  = Notify about tracked bugs with no assignee, low severity, or low priority
   | Purpose  = Notify about tracked bugs with no assignee, low severity, or low priority
Line 446: Line 446:
   | Source    = tracked_attention.py  
   | Source    = tracked_attention.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with inactive patch reviewers
   | Rule name = Bugs with inactive patch reviewers
   | Purpose  = Unblock bugs by identifying patches that are waiting for review from or unavailable reviewers
   | Purpose  = Unblock bugs by identifying patches that are waiting for review from or unavailable reviewers
Line 452: Line 452:
   | Source    = inactive_reviewer.py  
   | Source    = inactive_reviewer.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Fuzz blocker bugs
   | Rule name = Fuzz blocker bugs
   | Purpose  = Bring attention to bugs that prevent fuzzing from making progress
   | Purpose  = Bring attention to bugs that prevent fuzzing from making progress
Line 458: Line 458:
   | Source    = fuzz_blockers.py  
   | Source    = fuzz_blockers.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Severity of performance impacting bugs
   | Rule name = Severity of performance impacting bugs
   | Purpose  = Consistency and help getting traction on bugs with a high impact on performance
   | Purpose  = Consistency and help getting traction on bugs with a high impact on performance
Line 464: Line 464:
   | Source    = severity_high_performance_impact.py  
   | Source    = severity_high_performance_impact.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with a high number of recent regressions  
   | Rule name = Bugs with a high number of recent regressions  
   | Purpose  = Highlight bugs that introduce a high number of regressions
   | Purpose  = Highlight bugs that introduce a high number of regressions
Line 470: Line 470:
   | Source    = warn_regressed_by.py  
   | Source    = warn_regressed_by.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs with whiteboard reminders
   | Rule name = Bugs with whiteboard reminders
   | Purpose  = Remind about future tasks
   | Purpose  = Remind about future tasks
Line 476: Line 476:
   | Source    = reminder.py  
   | Source    = reminder.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs to triage
   | Rule name = Bugs to triage
   | Purpose  = Highlight defect bugs that need to be triaged
   | Purpose  = Highlight defect bugs that need to be triaged
Line 482: Line 482:
   | Source    = to_triage.py  
   | Source    = to_triage.py  
}}
}}
{{AutonagRule
{{BugBotRule
   | Rule name = Bugs moved to Core::Performance
   | Rule name = Bugs moved to Core::Performance
   | Purpose  = Make sure the bug has the basic information needed for performance bugs.
   | Purpose  = Make sure the bug has the basic information needed for performance bugs.
Line 488: Line 488:
   | Source    = moved_to_performance.py  
   | Source    = moved_to_performance.py  
}}
}}
[[category:Release_Management|Autonag]]