我目前正在尝试分析Bugzilla,以便找到每个Firefox组件的number of bugs : lines of code
比率。但是,我以前从未使用过Bugzilla,也不了解Firefox的代码库。
我如何找到每个Firefox组件的代码行(因为它们出现在Comp标题下的Bugzilla上)?我试图查看mozilla central,但不知道哪些源文件与哪些组件相关。
编辑:Dexter指出mozilla-central树中有一个指令BUG_COMPONENT,但是这个指令看起来非常不完整,没有帮助。任何其他的建议,或指向我可以得到这样的建议的地方将非常感激。
答案 0 :(得分:6)
好问题!我们最近将BUG_COMPONENT
指令(请参阅meta bug)添加到Firefox代码中:它位于源中每个目录中包含的moz.build
文件中。该指令允许将存储库中的每个文件链接到相关的Bugzilla组件。
例如,以下指令here表示包含遥测字的 test / browser 中的所有文件都属于Toolkit :: Telemetry Bugzilla上的组件。
with Files("test/browser/*Telemetry*"):
BUG_COMPONENT = ("Toolkit", "Telemetry")
您可以使用DXR或searchfox快速搜索Firefox存储库。
更新了评论中问题的解答。
如评论中所述,某些组件在Bugzilla上被跟踪(例如Activity Stream),但没有直接映射到mozilla-central存储库中的源文件(一个Firefox是由其构建的)。这是因为一些较新的组件无法骑行" the trains" (约6周的开发周期),但更频繁地更新并作为插件部署。
这些组件的代码通常与其他项目一起位于Mozilla github account下。由于有很多项目,因此确定您可能感兴趣的项目的一种方法是将它们限制为JavaScript ones。如果您按照上一个链接进行操作,则会看到 test-pilot 和 Activity Stream (以及其他插件)的存储库。
我担心将GitHub项目与Bugzilla组件相匹配的唯一方法是在GitHub上查看存储库的名称并在Bugzilla中找到匹配的组件:您可以输入名称here来获取一些组件建议。如果你想获得幻想,你也可以利用Bugzilla REST API:
我个人只是将 mozilla-central 存储库视为一个起点,因为它主要是注释的:从源文件中抓取BUG_COMPONENT
,将它们映射到路径然后使用REST API来获取错误列表。
Sidenote :主要仓库中的下载面板似乎是correctly annotated。