【问题标题】:Firefox source code analysis; lines of code per component火狐源代码分析;每个组件的代码行数
【发布时间】:2017-12-07 02:18:59
【问题描述】:

我目前正在尝试分析 Bugzilla,以便找到每个 Firefox 组件的number of bugs : lines of code 比率。但是,我之前从未使用过 Bugzilla,并且对 Firefox 的代码库一无所知。

我将如何查找每个 Firefox 组件的代码行(因为它们出现在 Comp 标头下的 Bugzilla 上)?我尝试查看mozilla central,但不知道哪些源文件与哪些组件相关。

编辑:Dexter 指出在 mozilla-central 树中有一个指令 BUG_COMPONENT,但是这个指令似乎非常不完整并且没有帮助。任何其他建议或关于我可以从哪里获得此类建议的指示将不胜感激。

【问题讨论】:

    标签: firefox mozilla bugzilla


    【解决方案1】:

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

    例如,以下指令找到here,告诉test/browser 中所有包含Telemetry 字的文件属于Toolkit::Telemetry 组件Bugzilla。

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

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

    更新了答案以解决 cmets 中的问题。

    如 cmets 中所述,一些组件在 Bugzilla 上进行了跟踪(例如 Activity Stream),但没有直接映射到 mozilla-central 存储库(构建 Firefox 的那个)中的源文件。这是因为一些较新的组件不使用“the trains”(大约 6 周的开发周期),而是更频繁地更新并部署为插件。

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

    恐怕将 GitHub 项目与 Bugzilla 组件匹配的唯一方法是查看 GitHub 上的存储库名称并在 Bugzilla 中找到匹配的组件:您可以输入名称here 以获得一些组件建议。如果你想变得花哨,你也可以利用Bugzilla REST API

    1. 获取 JS GitHub 项目的列表。
    2. 提取项目名称。
    3. 使用 REST API 获取 component suggestion

    我个人只是将 mozilla-central 存储库作为起点,因为它大部分都带有注释:从源文件中刮取 BUG_COMPONENT,将它们映射到路径,然后使用 REST获取错误列表的 API。

    旁注:下载面板在主仓库中似乎是correctly annotated

    【讨论】:

    • 完美,正是我想要的。非常感谢!
    • 我注意到一些 Firefox 组件(例如活动流、下载面板、扩展兼容性等)似乎没有被索引。这是有原因的,还是 BUG_COMPONENT 指令尚未完成?查询:dxr.mozilla.org/mozilla-central/…
    • 你提到的一些东西存在于主 mozilla 存储库之外。它们存储在自己的 github 存储库中,例如活动直播here
    • 好的;我猜如果我想涵盖所有组件+源代码,那么可能需要付出更多的努力。如果我想实现这样的目标(例如其他明显的 repos、任何其他组件 -> src 映射或一般提示),您能否指出我正确的方向?感谢您迄今为止的帮助,非常感谢。
    • 非常感谢。我认为我无法实现我的目标,但你帮了大忙!
    猜你喜欢
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    相关资源
    最近更新 更多