Чтобы предоставить командам, которые вносят неосновной src в проекты tradefederation, полную ответственность за процесс проверки, были созданы следующие проекты с открытыми правами +2 для всех команд. Это избавляет основную команду tradefederation от бремени всех проверок кода, не связанных с основной структурой, а также позволяет другим командам выполнять итерации быстрее в своем цикле проверки.
Неосновной src определяется как код, который не требуется структурой tradefederation для функционирования (например, пользовательские тесты, конфигурации, специальные тестовые утилиты).
ВАЖНО Неосновной src не должен расширять базовые классы tradefederation. Это повлияет на будущий рефакторинг/очистку. Если вы не уверены, относится ли ваш код к core или contrib, обратитесь за разъяснениями по адресу 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-плюс-аосп
- мастер-мечта-разработчик
- мастер-без-поставщика
- мастер по износу
Разработка и тестирование
Ожидается, что разработка в contrib будет иметь такую же планку качества, как и везде в репозиториях Android:
- Соблюдайте правила форматирования Android
- Код протестирован и отправлен с тестами
- Дизайн продуман и имеет смысл
Как протестировать локально в contrib?
АОСП
В aosp модульные тесты contrib расположены в platform/tools/tradefederation/contrib/tests/src/ , а модульные тесты должны быть добавлены в com.android.tradefed.prodtests.UnitTests , чтобы их можно было использовать в сценариях предварительной отправки и локального тестирования.
Локальные скрипты Aosp после запуска обеда:
tools/tradefederation/core/tests/run_tradefed_aosp_presubmit.sh
Обновление правил сборки для проектов contrib
Правила сборки (makefiles) находятся в своей собственной build/
папке и заблокированы файлом OWNERS
, что не позволит вам изменить их без дополнительной проверки со стороны основной команды. Это единственное ограничение проекта contrib.
Нам нужен этот обзор, чтобы гарантировать, что в общие проекты Tradefed не будут добавлены неожиданные зависимости без ведома или согласия основной команды. Если вам действительно нужно добавить какие-то новые зависимости, свяжитесь с android-tradefed@
, чтобы изучить ваши варианты использования и дать вам совет.