Чтобы команды, предоставляющие неосновной исходный код для проектов TradeFederation, могли полностью контролировать процесс проверки, были созданы следующие проекты с открытыми правами +2 для всех команд. Это освобождает основную команду TradeFederation от бремени всех проверок кода, не связанных с основной структурой, а также позволяет другим командам быстрее выполнять итерации в рамках цикла проверки.
Неосновной src определяется как код, который не требуется фреймворку tradefederation для функционирования (например, пользовательские тесты, конфигурации, специальные тестовые утилиты).
ВАЖНО! Неосновные классы исходного кода не должны расширять основные классы tradefederation. Это повлияет на будущий рефакторинг/очистку. Если вы не уверены, относится ли ваш код к основному или дополнительному коду, обратитесь за разъяснениями по адресу android-tradefed@. Команда разработчиков основного кода tradefederation с радостью проконсультирует вас и примет запросы на добавление функций.
Примером основного класса tradefederation может быть любой класс в пакете
com.google.android.tradefed.build
, например:com.google.android.tradefed.build.LaunchControlProvider
Опять же, если вам неясно, что следует считать основным классом, свяжитесь с android-tradefed@.
[Оглавление]
Пути Contrib-проектов
Для кого предназначены эти благотворительные проекты?
Если вы в настоящее время работаете в проектах tradefederation, пишете тесты/тестовые утилиты/конфигурации, то эти проекты созданы для вас.
Обзоры кода в contrib-проектах
Цель проектов Contrib — предоставить вам возможность заниматься разработкой в Tradefed без необходимости проверки основной командой (android-tradefed@). Поэтому мы ожидаем, что ваша команда или любой, кто знаком с вашей ситуацией, проведёт проверку кода в ваших CL.
Если возникнут трудности или вам понадобится помощь по конкретному вопросу, всегда обращайтесь к android-tradefed@, но не полагайтесь на него по умолчанию при проверке кода в Contrib. У команды Tradefed нет SLO для проверки кода в Contrib.
Где я могу начать работу над этими проектами?
Они были добавлены в следующие манифесты веток и уже являются частью проверки на основной платформе, так что если вы не видите проекты в своей среде, вам нужно синхронизировать репозиторий, чтобы внести свой вклад.
- основной
- трейдфед
- oc-dev
- oc-dev-plus-aosp
- nyc-mr2-dev-plus-aosp
- main-daydream-dev
- основной-без-поставщика
- износ-основной
Разработка и тестирование
Ожидается, что разработка в contrib будет иметь ту же планку качества, что и в других местах репозиториев Android:
- Соблюдайте правила форматирования Android.
- Код проверен и отправлен с тестами
- Дизайн продуман и имеет смысл.
Как провести локальное тестирование в contrib?
АОСП
В aosp модульные тесты contrib находятся в platform/tools/tradefederation/contrib/tests/src/, а модульные тесты следует добавлять в com.android.tradefed.prodtests.UnitTests для их использования в скриптах presubmit и локального тестирования.
Локальные скрипты Aosp после выполнения обеда:
tools/tradefederation/core/tests/run_tradefed_aosp_presubmit.sh
Обновление правил сборки для проектов Contrib
Правила сборки (makefiles) находятся в отдельной папке build/
и защищены файлом OWNERS
, который запрещает вносить в них изменения без дополнительной проверки основной командой. Это единственное ограничение для проекта contrib.
Эта проверка необходима нам для того, чтобы гарантировать отсутствие непредвиденных зависимостей в общих проектах Tradefed без ведома или согласия основной команды. Если вам действительно необходимо добавить новые зависимости, свяжитесь с android-tradefed@
чтобы мы могли рассмотреть ваши варианты использования и дать вам рекомендации.