2017-07-03 65 views
7

我目前正在嘗試分析Bugzilla,以便爲每個Firefox組件找到number of bugs : lines of code的比率。但是,我從來沒有使用過Bugzilla,也沒有關於Firefox代碼庫的知識。Firefox源代碼分析;每個組件的代碼行數

我該如何去查找每個Firefox組件的代碼行(因爲它們出現在Comp標題下的Bugzilla)?我試圖通過mozilla central來查看,但不知道哪些源文件與哪些組件相關。

編輯:德克斯特指出,在Mozilla中央樹中有一個指令BUG_COMPONENT,但這個指令看起來極其不完整,並沒有幫助。任何其他意見,或指針,我可以得到這樣的建議,將不勝感激。

回答

5

偉大的問題!我們最近將BUG_COMPONENT指令(請參閱meta bug)添加到Firefox代碼中:它位於源中每個目錄中包含的moz.build文件中。該指令允許將存儲庫中的每個文件鏈接到相關的Bugzilla組件。

例如,下面的指令發現here,告訴含測試/瀏覽器所有文件遙測字屬於上的Bugzilla工具包::遙測組件。

with Files("test/browser/*Telemetry*"): 
    BUG_COMPONENT = ("Toolkit", "Telemetry") 

您可以使用DXRsearchfox快速搜索Firefox的存儲庫。

更新了答案以解釋評論中的問題。

正如在評論中指出,一些部件被跟蹤的Bugzilla上(例如Activity Stream),但沒有直接映射到mozilla-central倉庫內的源文件(一個Firefox是從建)。這是因爲一些較新的組件不會搭乘「the trains」(約6周的開發週期),而是更頻繁地更新並作爲附加部署。

這些組件的代碼通常與其他項目一起存在於Mozilla github account之下。由於有相當多的項目,識別您可能感興趣的方法之一是將其限制爲JavaScript ones。如果您按照最後一個鏈接進行操作,您將看到測試飛行員活動流(加上其他插件)的存儲庫。

恐怕將GitHub項目與Bugzilla組件匹配的唯一方法是查看GitHub上的存儲庫名稱,並在Bugzilla中找到匹配的組件:您可以鍵入名稱here以獲取某些組件建議。如果你想要看起來,你也可以利用Bugzilla REST API

  1. 獲取JS GitHub項目的列表。
  2. 提取項目名稱。
  3. 使用REST API獲取component suggestion

我個人只考慮Mozilla的中央倉庫爲起點,因爲它主要是註釋:颳去源文件中的BUG_COMPONENT,它們映射到的路徑,然後使用REST API來獲取錯誤列表。

旁註:下載面板似乎是correctly annotated在主要的回購。

+0

完美,正是我所期待的。非常感謝! –

+1

我注意到一些Firefox組件(例如活動流,下載面板,擴展兼容性等)似乎沒有被編入索引。是否有這個原因,或BUG_COMPONENT指令尚未完成?查詢:https://dxr.mozilla.org/mozilla-central/search?q=BUG_COMPONENT+%3D+(%22Firefox%22%2C+%22Extensio&redirect=false –

+0

你提到的一些東西住在主Mozilla存儲庫之外。存儲在他們自己的github倉庫中,例如活動流生命[here](https://github.com/mozilla/activity-stream) – Dexter