Compatibility/Diagnosis: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(→‎Not so fresh bugs: adjust link.)
(Update diagnosis documentation)
 
Line 1: Line 1:
This fits into the [[Compatibility/Guide|more general webcompat Guide]] and addresses only the Diagnosis process. Webcompat tooling is addressed in [[Compatibility/Tools|Diagnosis tooling]].
= Needs Diagnosis Queues by Team =
* [https://bugzilla.mozilla.org/buglist.cgi?v1=webcompat%3Aneeds-diagnosis&v2=diagnosis-team%3A\s*webcompat&order=Importance&query_format=advanced&resolution=---&f1=keywords&f2=cf_user_story&o1=substring&o2=regexp Web Compat]
* [https://bugzilla.mozilla.org/buglist.cgi?v1=webcompat%3Aneeds-diagnosis&v2=diagnosis-team%3A\s*domt&order=Importance&query_format=advanced&resolution=---&f1=keywords&f2=cf_user_story&o1=substring&o2=regexp DOM]
* [https://bugzilla.mozilla.org/buglist.cgi?v1=webcompat%3Aneeds-diagnosis&v2=diagnosis-team%3A\s*dom-storage&order=Importance&query_format=advanced&resolution=---&f1=keywords&f2=cf_user_story&o1=substring&o2=regexp DOM Storage]
* [https://bugzilla.mozilla.org/buglist.cgi?v1=webcompat%3Aneeds-diagnosis&v2=diagnosis-team%3A\s*graphics&order=Importance&query_format=advanced&resolution=---&f1=keywords&f2=cf_user_story&o1=substring&o2=regexp Graphics]
* [https://bugzilla.mozilla.org/buglist.cgi?v1=webcompat%3Aneeds-diagnosis&v2=diagnosis-team%3A\s*javascript&order=Importance&query_format=advanced&resolution=---&f1=keywords&f2=cf_user_story&o1=substring&o2=regexp Javascript]
* [https://bugzilla.mozilla.org/buglist.cgi?v1=webcompat%3Aneeds-diagnosis&v2=diagnosis-team%3A\s*layout&order=Importance&query_format=advanced&resolution=---&f1=keywords&f2=cf_user_story&o1=substring&o2=regexp Layout]
* [https://bugzilla.mozilla.org/buglist.cgi?v1=webcompat%3Aneeds-diagnosis&v2=diagnosis-team%3A\s*media&order=Importance&query_format=advanced&resolution=---&f1=keywords&f2=cf_user_story&o1=substring&o2=regexp Media]
* [https://bugzilla.mozilla.org/buglist.cgi?v1=webcompat%3Aneeds-diagnosis&v2=diagnosis-team%3A\s*networking&order=Importance&query_format=advanced&resolution=---&f1=keywords&f2=cf_user_story&o1=substring&o2=regexp Networking]
* [https://bugzilla.mozilla.org/buglist.cgi?v1=webcompat%3Aneeds-diagnosis&v2=diagnosis-team%3A\s*privacy&order=Importance&query_format=advanced&resolution=---&f1=keywords&f2=cf_user_story&o1=substring&o2=regexp Privacy]
* [https://bugzilla.mozilla.org/buglist.cgi?v1=webcompat%3Aneeds-diagnosis&v2=diagnosis-team%3A\s*video-conferencing&order=Importance&query_format=advanced&resolution=---&f1=keywords&f2=cf_user_story&o1=substring&o2=regexp Video Conferencing]
* [https://bugzilla.mozilla.org/buglist.cgi?f10=CP&f4=OP&f8=component&v1=impact%3A.%2A&o7=equals&order=Importance&f9=CP&o3=substring&v2=diagnosis-team%3A.%2A&o1=regexp&v7=Web%20Compatibility&f5=keywords&v3=webcompat%3Aneeds-diagnosis&list_id=17149682&o2=notregexp&o8=equals&v5=webcompat%3Asite-report&f7=product&query_format=advanced&j4=OR&f3=keywords&f1=cf_user_story&v8=Site%20Reports&o5=substring&resolution=---&f2=cf_user_story&classification=Client%20Software&classification=Developer%20Infrastructure&classification=Components&classification=Server%20Software&classification=Other&f6=OP&priority=P1&priority=P2 Unset P1/P2]


 
= Diagnosis Process =
= Some techniques to handle needsdiagnosis workload. =
 
Webcompat issues are distributed in two places. The story to prioritize work is slightly different at both places.
 
== Where are the bugs? ==
 
* [https://github.com/webcompat/web-bugs/issues GitHub]
* [https://bugzilla.mozilla.org/buglist.cgi?list_id=14716506&resolution=---&classification=Client%20Software&classification=Developer%20Infrastructure&classification=Components&classification=Server%20Software&classification=Other&query_format=advanced&component=Desktop&component=Mobile&product=Web%20Compatibility Mozilla bugzilla] (only Mozilla products)
* [https://bugs.chromium.org/p/chromium/issues/list?can=2&q=Hotlist%3DInterop+ Blink bug tracker] (only Blink derivatives products)
* [https://bugs.webkit.org/buglist.cgi?keywords=BrowserCompat Webkit BrowserCompat] (only WebKit issues, but probably slightly different and not everything is tracked under this keyword).
 
 
== Webcompat Bugs on GitHub ==
We will focus first on GitHub. Every issues which are required to be diagnosed are located in the [https://github.com/webcompat/web-bugs/issues?q=is%3Aopen+is%3Aissue+milestone%3Aneedsdiagnosis needsdiagnosis milestone]. As of 2019-05-16, there is a backlog of ~150 issues. Our goal is to maintain this at the [http://webcompat-dashboard.herokuapp.com/needsdiagnosis lowest number possible]. We had a pick at the end of 2017 which was around 1200 bugs. This should not happen again. Not all issues are equal with regards to the work we do and our priorities. Each browser vendor will probably focus on their own bugs. Mozilla issues represent the lion share, because of the direct reporting system available on Firefox Nightly and Firefox developer Edition.
 
=== Understand the priorities ===
It is possible to discriminate a bit more the issues when doing needsdiagnosis work. The system has a set of labels helping to create an additional layer of filtering. This is helpful for defining priorities when attacking the needsdiagnosis.
 
* priority-(normal|important|critical): This label is set depending on the ranking of the website domain name  where the issue is happening. A bug on a well-known website will probably affect a lot more people than an issue on a personal blog.
* severity-(minor|important|critical): This defines how bad the issue is for the usability of the website. A rounded corner issue doesn't have the same impact than a website totally blank.
 
Use your own judgement to make the right call with the help of these flags.
 
* browser-*: these are set to identified in which browser the issue is happening. Sometimes it can be multiple browsers. This would be useful to discriminate the issue if you are interested in the issues of a specific browser. For example, browser-firefox-mobile.
* engine-*: It defines the family of rendering engines the issue belongs to. Right now, only engine-gecko is available, but other vendors are welcome to add their own label.


== Document your diagnosis ==
== Document your diagnosis ==
During diagnosis document whatever progress you made. This will help anyone else looking at the bug to pick up where you left off.


When starting a diagnosis, document all your findings. You may not be able to finish the diagnosis. And all the comments you made will give hints and clues for the next person in line trying to crack the issue or for the website developer to understand why/where this is failing. It will help them to track down faster the issue in their own internal systems.
If you get stuck and need help from the webcompat team, set <code>diagnosis-team: webcompat</code> in the User Story field. If you think the issue is in another component you may set that component directly in the user story (using the [https://addons.mozilla.org/en-GB/firefox/addon/site-issue-triage/ site issue triage addon] is recommended to get the data format correct).
 
== What type of failures? ==
 
When diagnosing you may want to keep in mind the [https://wiki.mozilla.org/Compatibility#Web_Compatibility_Taxonomy Web Compatibility Taxonomy], which basically describe a broad category of scenarii. It answers why the site might be failing.  


== Diagnosis Done? ==
== Diagnosis Done? ==


Move the issue to the next step, be needscontact or contactready.
Once you understand the root cause of the issue:
Even sitewait, if in the process of diagnosing you already contacted someone.
* Remove the <code>webcompat:needs-diagnosis</code> keyword to indicate that diagnosis is complete
 
* If the root cause is a platform bug, set the <code>webcompat:platform-bug</code> keyword, and set the site report bug to depend on the platform bug(s) that cause the issue. These bugs should also have the <code>webcompat:platform-bug</code> keywords set.
= For Mozilla contributors and employees =
* If the root cause is a problem with the site (e.g. sending incorrect code to Firefox) then set either <code>webcompat:needs-contact</code> or <code>webcompat:contact-ready</code> keywords depending on whether we have an existing relationship with the site.
 
* If the problem might have a workaround (e.g. spoofing as another browser, or changing some CSS) set <code>webcompat:needs-sitepatch</code>.
== Workload Rotation System ==
* If the problem is an area where the spec is ambiguous, and the site depends on a specific behavior, or where Gecko is following the spec but other browsers are not, or some similar case where a Gecko bug might be marked as <code>WONTFIX</code>, file an issue in <code>Web Compatibility :: Knowledge Base</code> describing the problem, and linking to any spec issues, or issues on other browsers, and set the site report bug to depend on this knowledge base bug.
 
The core needsdiagnosis team at Mozilla is composed of Dennis (denschub), Karl (karlcow), Ksenia (ksy36) and Thomas (wisniewskit), but anyone is welcome to join. We have a system of [https://github.com/webcompat/web-bugs/projects/1 work rotation for incoming bugs].
 
This system doesn't prevent you to work on diagnosis when you are not on the rotation shift. See the Not So Fresh Bugs section below.
 
=== Fresh bugs ===
 
'''[https://github.com/webcompat/web-bugs/issues?utf8=%E2%9C%93&q=is%3Aissue+milestone%3Aneedsdiagnosis+sort%3Acomments-asc+label%3Aengine-gecko+is%3Aopen+-commenter%3Akarlcow+-commenter%3Adenschub+-commenter%3Awisniewskit+-commenter%3Aksy36+ List of fresh bugs]'''
 
 
When on '''rotation shift''' day, your job is to go through the pile of issues to diagnose for the full day (except emergencies, you may swap with someone else). A '''fresh bug''' is a bug which has not been diagnosed yet. It may include bugs which are a couple of weeks old. The date of creation or the date it landed in needsdiagnosis is meaningless. The criteria for freshness is:
 
'''Did anyone have started a diagnosis on this issue?'''
   
If the answer is no, then this is a fresh bug. You may not be able to go through all the bugs pile; '''It's normal'''. The important is to be able to do as much as possible so we don't build a backlog. Someone else will take care of the rest on the next day.
 
 
Think also about the priorities.
 
=== Not so fresh bugs ===
 
[https://github.com/webcompat/web-bugs/issues?q=is%3Aissue+milestone%3Aneedsdiagnosis+label%3Aengine-gecko+sort%3Acomments-asc List of all needsdiagnosis issues.]
 
During the rotation shift, and in the unlikely event, you have tackled the list of all fresh bugs, you may want to jump to the [https://github.com/webcompat/web-bugs/issues?q=is%3Aissue+milestone%3Aneedsdiagnosis+label%3Aengine-gecko+sort%3Acomments-asc rest of the issues]. These bugs need to be handled. The diagnosis has probably been started and/or the diagnoser met a dead end. Feel free to take over if you know how to solve it.
 
=== When Blocked With Diagnosis ===
 
Don't stay too long on a tough diagnosis, move to the next one. Some diagnosis may take longer. Just move to the next one, and you might have an idea in the next hour or the next couple of days on how to solve it and you can come back to it.
 
If your knowledge in a specific area is limited to not hesitate to ping someone else from the Mozilla Core Team and/or someone else from the Webcompat team. After years, we developed some skills in certain areas.
 
@@should we list here the name with the expertise for some of the domains@@
 
 


[[Category:Web Compatibility|Guide]]
[[Category:Web Compatibility|Guide]]

Latest revision as of 09:21, 15 August 2024

Needs Diagnosis Queues by Team

Diagnosis Process

Document your diagnosis

During diagnosis document whatever progress you made. This will help anyone else looking at the bug to pick up where you left off.

If you get stuck and need help from the webcompat team, set diagnosis-team: webcompat in the User Story field. If you think the issue is in another component you may set that component directly in the user story (using the site issue triage addon is recommended to get the data format correct).

Diagnosis Done?

Once you understand the root cause of the issue:

  • Remove the webcompat:needs-diagnosis keyword to indicate that diagnosis is complete
  • If the root cause is a platform bug, set the webcompat:platform-bug keyword, and set the site report bug to depend on the platform bug(s) that cause the issue. These bugs should also have the webcompat:platform-bug keywords set.
  • If the root cause is a problem with the site (e.g. sending incorrect code to Firefox) then set either webcompat:needs-contact or webcompat:contact-ready keywords depending on whether we have an existing relationship with the site.
  • If the problem might have a workaround (e.g. spoofing as another browser, or changing some CSS) set webcompat:needs-sitepatch.
  • If the problem is an area where the spec is ambiguous, and the site depends on a specific behavior, or where Gecko is following the spec but other browsers are not, or some similar case where a Gecko bug might be marked as WONTFIX, file an issue in Web Compatibility :: Knowledge Base describing the problem, and linking to any spec issues, or issues on other browsers, and set the site report bug to depend on this knowledge base bug.