贡献非核心代码

为了使向 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。

我在哪里可以开始处理这些项目?

这些项目已添加到以下分支清单,并且已经是主平台签出的一部分,因此如果您没有在自己的环境中看到这些项目,那么说明您的代码库与贡献代码未同步。

  • master
  • tradefed
  • oc-dev
  • oc-dev-plus-aosp
  • nyc-mr2-dev-plus-aosp
  • master-daydream-dev
  • master-without-vendor
  • wear-master

开发和测试

在 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@ 联系,让他们调查您的用例并给出建议。