遥测审查指南¶
审查更改的一般指南¶
这些是我们审查更改时遵循的一般原则。
建设性地提出意见。 审查者和补丁作者都应该是盟友,目标是共同完成更改。
考虑影响。 我们提供关键数据,这些数据由许多系统和人员进行处理和使用。任何中断都应经过计划且有意为之。
尽职尽责。 所有更改都应在典型条件下进行测试。
了解自己的局限性。 在合理的情况下,将问题转交给其他同行或专家。
任何更改的主要考虑因素¶
对于任何更改,这些都是我们始终需要得到令人满意答案的基本问题。
其他考虑因素¶
除了上述基本考虑因素外,以下是一些有助于审查更改的其他详细考虑因素。
所有更改的考虑因素¶
遵循我们的标准和最佳实践。
Firefox 桌面版
移动版
这是否会对性能产生重大影响?
不要延迟应用程序初始化(除非绝对必要)。
不要阻塞网络请求。
尽可能使较长的任务异步化。
这是否比预期更广泛地影响产品?
考虑我们所有的平台:Windows、Mac、Linux、Android。
考虑我们所有的产品:Firefox、Fenix、Glean。
这是否违反了常见的架构缺陷?
除非编写解析器,否则优先使用采用非字符串类型的 API。
健全性检查
此更改在发布版本中的行为如何?您是否已测试过?
此更改是否包含测试覆盖率?我们要求对每个新代码、更改和错误修复进行测试覆盖率。
这是否需要更新文档?
后续操作
我们是否已提交验证错误?
所有 TODO 是否都已提交后续错误?
我们是否需要向我们的用户传达此信息?
fx-data-dev(主要的 Firefox 数据列表)
firefox-dev(Firefox 应用程序开发人员)
dev-platform(Gecko/平台开发人员)
mobile-firefox-dev(移动开发人员)
fx-team(Firefox 员工)
我们是否需要向其他群体传达此信息?
数据工程、数据科学、数据管理员……?
考虑对其他人的影响¶
此更改是否可能破坏上游管道作业?
此更改是否以未处理的方式更改了传出数据的格式?
例如,通过添加、删除或更改非指标有效负载字段的类型。
这是否需要更新 ping 模式?
这是否会破坏为指标解析注册表文件的作业?(Scalars.yaml、metrics.yaml 等)
我们是否需要让其他人参与?
数据格式、ping 内容、ping 语义等的更改需要让数据工程师参与。
对任何正在使用的传出数据进行更改都需要让利益相关者参与(例如,数据科学家)。
Firefox 桌面版的考虑因素¶
对于配置文件
使用不同的配置文件如何影响此更改?
在配置文件之间切换如何影响此更改?
用户在不同通道之间切换时会发生什么?
地雷
这是否对 Fennec 产生副作用?(统一遥测在那里已关闭,因此行为非常不同。)
您的代码是否基于首选项、构建信息、通道进行限制?测试应涵盖这一点。
如果测试基于 isUnified 进行限制,则代码也应如此(反之亦然)
测试其他情况
任何使用new Date()的代码都应受到额外的审查 - 使用new Date()的代码应使用 Policy 以便可以模拟 - 使用new Date()的测试应使用特定日期,而不是当前日期
这如何影响 Build Faster 支持/Artifact 构建/动态内置标量或事件?其他人能否在 Artifact 构建上测试此更改?
我们在公开环境中工作:更改是否包含可能吓到最终用户的词语?
此更改如何处理客户端 ID 重置?
此更改如何处理用户选择退出数据收集?