Firefox源代码分析; 每个组件的代码行

Fra*_*ice 7 firefox bugzilla mozilla

我目前正在尝试分析Bugzilla,以便找到number of bugs : lines of code每个Firefox组件的比例.但是,我以前从未使用过Bugzilla,也不了解Firefox的代码库.

我将如何找到每个Firefox组件的代码行(因为它们出现在Compz标题下的Bugzilla中)?我试图通过mozilla中心查看,但不知道哪些源文件与哪些组件相关.

编辑:Dexter指出mozilla-central树中有一个指令BUG_COMPONENT,但这个指令看起来非常不完整,没有帮助.任何其他建议,或指向我可以得到这样的建议的地方将非常感激.

Dex*_*ter 6

好问题!我们最近在Firefox代码中添加了BUG_COMPONENT指令(参见meta bug):它moz.build位于源代码中每个目录中包含的文件中.该指令允许将存储库中的每个文件链接到相关的Bugzilla组件.

例如,此处的以下指令告诉我们,包含遥测字的测试/浏览器中的所有文件都属于Bugzilla上的Toolkit :: Telemetry组件.

with Files("test/browser/*Telemetry*"):
    BUG_COMPONENT = ("Toolkit", "Telemetry")
Run Code Online (Sandbox Code Playgroud)

您可以使用DXRsearchfox快速搜索Firefox存储库.

更新了评论中问题的答案.

如评论中所述,某些组件在Bugzilla上进行跟踪(例如,活动流),但没有直接映射到mozilla-central存储库(Firefox是由其构建的)中的源文件.这是因为一些较新的组件不会乘坐" 火车 "(约6周的开发周期),而是更频繁地更新并作为插件部署.

这些组件的代码通常与其他项目一起存在于Mozilla github帐户下.由于有很多项目,因此识别您可能感兴趣的项目的一种方法是将它们限制为JavaScript项目.如果您按照最后一个链接,您将看到test-pilotActivity Stream(以及其他插件)的存储库.

我担心将GitHub项目与Bugzilla组件相匹配的唯一方法是在GitHub上查看存储库的名称并在Bugzilla中找到匹配的组件:您可以在此处键入名称以获取一些组件建议.如果您想获得想象力,您也可以利用Bugzilla REST API:

  1. 获取JS GitHub项目的列表.
  2. 提取项目的名称.
  3. 使用REST API获取组件建议.

我个人只是将mozilla-central存储库视为一个起点,因为它主要是注释:BUG_COMPONENT从源文件中删除它们,将它们映射到路径然后使用REST API来获取错误列表.

旁注:下载面板似乎在主回购中正确注释.