Как внести вклад в разработку неосновного кода

Чтобы предоставить командам, которые вносят изменения в исходный код, не относящийся к основному, полный контроль над процессом проверки, были созданы следующие проекты с открытыми правами +2 для всех команд. Это позволяет основной команде Tradefed избежать необходимости проверять код, не связанный с основной структурой, а другим командам – быстрее выполнять проверку.

Неосновной код – это код, который не требуется для работы фреймворка Tradefed (например, специальные тесты, конфигурации, утилиты для тестирования).

ВАЖНО! Вспомогательные источники не должны расширять основные классы Tradefed. Это повлияет на дальнейший рефакторинг и очистку кода. Если вы не уверены, к какому проекту относится ваш код, обратитесь за разъяснениями по адресу android-tradefed@. Основная команда Tradefed готова консультировать и принимать запросы на добавление функций.

Примером основного класса Tradefed может быть любой класс в пакете com.google.android.tradefed.build, например: com.google.android.tradefed.build.LaunchControlProvider

Если вы не уверены, что относится к основным классам, напишите нам на адрес android-tradefed@.

[TOC]

Пути к проектам Contrib

Для кого предназначены эти проекты?

Если вы работаете над проектами tradefederation и пишете тесты, утилиты или конфигурации, эти проекты были созданы для вас.

Код-ревью в проектах, в которые вы вносите вклад

Цель проектов contrib – позволить вам разрабатывать в Tradefed без необходимости проверки основной команды (android-tradefed@). Поэтому мы ожидаем, что код-ревью в ваших списках изменений будет выполнять ваша команда или кто-то, кто знаком с контекстом.

Если у вас возникнут вопросы или вам потребуется помощь, вы всегда можете написать на адрес android-tradefed@. Однако не стоит рассчитывать, что специалисты, отвечающие на письма, будут проверять ваш код в contrib. У команды Tradefed нет SLO в отношении код-ревью в contrib.

Где можно начать работу над этими проектами?

Они добавлены в манифесты следующих веток и уже являются частью основной платформы оформления заказа. Если вы не видите проекты в своей среде, выполните синхронизацию репозитория.

  • основной
  • 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.

Локальные скрипты AOSP после запуска lunch:

tools/tradefederation/core/tests/run_tradefed_aosp_presubmit.sh

Правила сборки обновляются в проектах contrib

Правила сборки (файлы makefile) находятся в отдельной папке build/ и заблокированы файлом OWNERS, который не позволит вам изменять их без дополнительной проверки основной командой. Это единственное ограничение для проекта contrib.

Нам нужно проверить, не были ли добавлены в проекты Tradefed неожиданные зависимости без ведома или согласия основной команды. Если вам действительно нужно добавить новые зависимости, обратитесь в службу поддержки android-tradefed@, чтобы получить консультацию по вашим вариантам использования.