Чтобы предоставить командам, которые вносят изменения в исходный код, не относящийся к основному, полный контроль над процессом проверки, были созданы следующие проекты с открытыми правами +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@, чтобы получить консультацию по вашим вариантам использования.