为了使向 tradefederation 项目贡献非核心 src 的团队能够完全掌控审核流程,我们创建了以下项目,这些项目向所有团队开放了两项以上的权限。这样会减轻核心 tradefederation 团队的负担,让他们免去与核心框架无关的所有代码审核工作,同时也让其他团队能够在审核周期内更快地迭代。
非核心 src 是指不是 tradefederation 框架正常运行所必需的代码(例如,自定义测试、配置和特定测试实用程序)。
重要提示:非核心 src 不得扩展核心 tradefederation 类。这样做会影响未来的重构/清理。如果您不确定您的代码是属于核心代码还是 contrib 代码,请与 android-tradefed@ 联系,让他们为您解释清楚。核心 tradefederation 团队很乐意为您提供建议和接收功能请求。
例如,
com.google.android.tradefed.build
软件包中的任何类都是核心 tradefederation 类,如:com.google.android.tradefed.build.LaunchControlProvider
同样,如果您不清楚哪些类将被视为核心类,请与 android-tradefed@ 联系。
[TOC]
contrib 项目的路径
这些 contrib 项目的使用对象是谁?
如果您目前是编写测试/测试实用程序/配置的 tradefederation 项目组人员,那么这些 contrib 项目就是为您创建的。
contrib 项目中的代码审核
contrib 项目的目标是允许您在 Tradefed 中进行开发,而无需经过核心团队 (android-tradefed@) 的审核。因此,我们希望您的团队或任何熟悉您所处环境的人对您的 CL 执行代码审核。
如果您遇到难题或在特殊情况下需要指导,请随时与 android-tradefed@ 联系,而不要在默认情况下依赖它来执行 contrib 中的代码审核。对于 contrib 中的代码审核,Tradefed 团队未设定相应的 SLO。
我在哪里可以开始处理这些项目?
这些项目已添加到以下分支清单,并且已经是主平台签出的一部分,因此如果您没有在自己的环境中看到这些项目,那么说明您的代码库与贡献代码未同步。
- 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 项目的构建规则更新
build 规则 (makefile) 在它们自己的 build/
文件夹下,并且由 OWNERS
文件锁定,该文件将阻止您在未经核心团队额外审核的情况下修改这些规则。这是对 contrib 项目的唯一限制。
我们需要这一审核环节来确保在核心团队不知情或不同意的情况下,不会向整体 Tradefed 项目添加意外的依赖项。如果您确实需要添加一些新的依赖项,请与 android-tradefed@
联系,让他们调查您的用例并给出建议。