火狐源码分析;每个组件的代码行数
Firefox source code analysis; lines of code per component
我目前正在尝试分析 Bugzilla,以便找到每个 Firefox 组件的 number of bugs : lines of code
比率。但是,我以前从未使用过 Bugzilla,对 Firefox 的代码库一无所知。
我将如何找到每个 Firefox 组件的代码行(因为它们出现在 Bugzilla under Comp header)? I have made an attempt at looking through mozilla central,但不知道哪些源文件与哪些组件相关。
编辑:Dexter 指出在 mozilla-central 树中有一个指令 BUG_COMPONENT,但是这个指令似乎非常不完整并且没有帮助。任何其他建议,或关于我可以在哪里获得此类建议的指示,将不胜感激。
好问题!我们最近在 Firefox 代码中添加了 BUG_COMPONENT
指令(参见 meta bug):它位于源代码中每个目录中包含的 moz.build
文件中。该指令允许 link 将存储库中的每个文件连接到相关的 Bugzilla 组件。
例如,找到 here 的以下指令表明 test/browser 中包含 Telemetry[=52] 的所有文件=] 词属于 Bugzilla 上的 Toolkit::Telemetry 组件。
with Files("test/browser/*Telemetry*"):
BUG_COMPONENT = ("Toolkit", "Telemetry")
您可以使用 DXR or searchfox 来快速搜索 Firefox 存储库。
更新了回答以说明评论中的问题。
如评论中所述,Bugzilla 上跟踪了一些组件(例如 Activity Stream) but do not have a direct mapping to source files within the mozilla-central repository (the one Firefox is built from). That's because some newer components do not ride "the trains”(~6 周的开发周期),但更频繁地更新并部署为插件。
这些组件的代码通常位于 Mozilla github account, along with other project. Since there are quite a number of projects, one way to identify the ones you might be interested in is to restrict them to JavaScript ones 下。如果你按照最后一个 link,你会看到 test-pilot 和 Activity Stream 的存储库(加上其他插件)。
恐怕将 GitHub 项目与 Bugzilla 组件匹配的唯一方法是查看 GitHub 上的存储库名称并在 Bugzilla 中找到匹配的组件:您可以键入姓名 here to get some component suggestions. If you want to get fancy, you might also leverage the Bugzilla REST API:
- 获取 JS GitHub 项目的列表。
- 提取项目名称。
- 使用 REST API 获取 component suggestion。
我个人认为 mozilla-central 存储库是一个起点,因为它主要有注释:从源文件中抓取 BUG_COMPONENT
,映射它们到路径,然后使用 REST API 获取错误列表。
旁注:下载面板似乎在主仓库中 correctly annotated。
我目前正在尝试分析 Bugzilla,以便找到每个 Firefox 组件的 number of bugs : lines of code
比率。但是,我以前从未使用过 Bugzilla,对 Firefox 的代码库一无所知。
我将如何找到每个 Firefox 组件的代码行(因为它们出现在 Bugzilla under Comp header)? I have made an attempt at looking through mozilla central,但不知道哪些源文件与哪些组件相关。
编辑:Dexter 指出在 mozilla-central 树中有一个指令 BUG_COMPONENT,但是这个指令似乎非常不完整并且没有帮助。任何其他建议,或关于我可以在哪里获得此类建议的指示,将不胜感激。
好问题!我们最近在 Firefox 代码中添加了 BUG_COMPONENT
指令(参见 meta bug):它位于源代码中每个目录中包含的 moz.build
文件中。该指令允许 link 将存储库中的每个文件连接到相关的 Bugzilla 组件。
例如,找到 here 的以下指令表明 test/browser 中包含 Telemetry[=52] 的所有文件=] 词属于 Bugzilla 上的 Toolkit::Telemetry 组件。
with Files("test/browser/*Telemetry*"):
BUG_COMPONENT = ("Toolkit", "Telemetry")
您可以使用 DXR or searchfox 来快速搜索 Firefox 存储库。
更新了回答以说明评论中的问题。
如评论中所述,Bugzilla 上跟踪了一些组件(例如 Activity Stream) but do not have a direct mapping to source files within the mozilla-central repository (the one Firefox is built from). That's because some newer components do not ride "the trains”(~6 周的开发周期),但更频繁地更新并部署为插件。
这些组件的代码通常位于 Mozilla github account, along with other project. Since there are quite a number of projects, one way to identify the ones you might be interested in is to restrict them to JavaScript ones 下。如果你按照最后一个 link,你会看到 test-pilot 和 Activity Stream 的存储库(加上其他插件)。
恐怕将 GitHub 项目与 Bugzilla 组件匹配的唯一方法是查看 GitHub 上的存储库名称并在 Bugzilla 中找到匹配的组件:您可以键入姓名 here to get some component suggestions. If you want to get fancy, you might also leverage the Bugzilla REST API:
- 获取 JS GitHub 项目的列表。
- 提取项目名称。
- 使用 REST API 获取 component suggestion。
我个人认为 mozilla-central 存储库是一个起点,因为它主要有注释:从源文件中抓取 BUG_COMPONENT
,映射它们到路径,然后使用 REST API 获取错误列表。
旁注:下载面板似乎在主仓库中 correctly annotated。