为了让向 tradefederation 项目贡献非核心 src 的团队完全拥有审核流程的所有权,我们创建了以下项目,并为所有团队开放了 +2 权限。这减轻了核心 tradefederation 团队在所有与核心框架无关的代码审核方面的负担,同时也让其他团队能够在审核周期中更快地迭代。
非核心 src 定义为 tradefederation 框架正常运行不需要的代码(例如,自定义测试、配置、特定测试实用程序)。
重要提示 非核心 src 不应扩展核心 tradefederation 类。这样做会影响未来的重构/清理。如果您不确定您的代码属于核心代码还是 contrib 代码,请联系 android-tradefed@ 进行澄清。核心 tradefederation 团队很乐意提供建议并接收功能请求。
核心 tradefederation 类的示例可以是
com.google.android.tradefed.build
软件包中的任何类,例如:com.google.android.tradefed.build.LaunchControlProvider
同样,如果您不清楚什么会被视为核心类,请联系 android-tradefed@。
[TOC]
Contrib 项目的路径
这些 contrib 项目面向哪些用户?
如果您目前在 tradefederation 项目中编写测试/测试实用程序/配置,则这些项目是为您创建的。
Contrib 项目中的代码审核
contrib 项目的目标是让您能够在 Tradefed 中进行开发,而无需核心团队 (android-tradefed@) 的审核。因此,我们希望您的团队或任何熟悉您环境的人员对您的 CL 执行代码审核。
如果遇到困难或需要特定情况的指导,请随时联系 android-tradefed@,但不要默认依赖它在 contrib 中进行代码审核。Tradefed 团队在 contrib 中的代码审核方面没有 SLO。
我在哪里可以开始处理这些项目?
它们已添加到以下分支清单中,并且已经是主平台检出的一部分,因此如果您在您的环境中没有看到这些项目,您只需进行 repo 同步即可开始贡献。
- main
- tradefed
- oc-dev
- oc-dev-plus-aosp
- nyc-mr2-dev-plus-aosp
- main-daydream-dev
- main-without-vendor
- wear-main
开发和测试
contrib 中的开发预计与 Android 代码库中任何其他地方具有相同的质量标准
- 遵守 Android 格式化指南
- 代码经过测试并随测试一起提交
- 设计周到且合理
如何在 contrib 中进行本地测试?
AOSP
在 aosp 中,contrib 的单元测试位于 platform/tools/tradefederation/contrib/tests/src/,单元测试应添加到 com.android.tradefed.prodtests.UnitTests,以便在预提交和本地测试脚本中被拾取。
运行 lunch 后的 Aosp 本地脚本
tools/tradefederation/core/tests/run_tradefed_aosp_presubmit.sh
更新 contrib 项目的构建规则
构建规则(makefile 文件)位于它们自己的 build/
文件夹下,并由 OWNERS
文件锁定,这将阻止您在没有核心团队的额外审查的情况下修改它们。这是对 contrib 项目的唯一限制。
我们需要此审查以确保在没有核心团队的知情或同意的情况下,不会向整个 Tradefed 项目添加意外的依赖项。如果您确实需要添加一些新的依赖项,请联系 android-tradefed@
以了解您的用例并为您提供建议。