贡献非核心代码

为了让向 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@ 以了解您的用例并为您提供建议。