2017-07-03 66 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