Contribuir com código não principal

Para permitir que as equipes que contribuem com src não principal para os projetos de tradefederation tenham a propriedade total do processo de revisão, os projetos a seguir foram criados com direitos abertos +2 para todas as equipes. Isso alivia a equipe principal da tradefederation da carga de todas as revisões de código não relacionadas à estrutura principal, permitindo que as outras equipes iterem mais rapidamente no ciclo de revisão.

src não principal é definido como código que não é necessário para que o framework tradefederation seja funcional (por exemplo, testes personalizados, configurações, utilitários específicos de teste).

IMPORTANTE O src não principal não pode estender as classes principais da Trade Federation. Isso afeta a refatoração/limpeza futura. Se você não tiver certeza se o código pertence ao core ou ao contrib, entre em contato com android-tradefed@ para esclarecimentos. A equipe principal da Trade Federation está feliz em aconselhar e receber solicitações de recursos.

Um exemplo de classe principal de tradefederation seria qualquer classe no pacote com.google.android.tradefed.build, como: com.google.android.tradefed.build.LaunchControlProvider

Entre em contato se não tiver certeza do que seria considerado uma classe principal para android-tradefed@.

[TOC]

Caminhos dos projetos de contribuição

Para quem são esses projetos de contribuição?

Se você trabalha em projetos de tradefederation escrevendo testes/utilitários/configurações de teste, esses projetos foram criados para você.

Análises de código em projetos contrib

O objetivo dos projetos de contribuição é permitir que você faça o desenvolvimento no Tradefed sem precisar da revisão da equipe principal (android-tradefed@). Portanto, esperamos que sua equipe ou qualquer pessoa familiarizada com seu contexto realize as análises de código nas CLs.

Entre em contato com o endereço de e-mail android-tradefed@ se tiver dúvidas ou precisar de orientação sobre um caso específico, mas não confie nele por padrão para fazer a análise do código no contrib. A equipe de Tradefed não tem SLO quando se trata de análises de código no contrib.

Onde posso começar a trabalhar nesses projetos?

Eles foram adicionados aos seguintes manifestos de ramificação e já fazem parte do processo de verificação da plataforma principal. Se você não encontrar os projetos no seu ambiente, faça uma sincronização do repositório para contribuir.

  • principal
  • tradefed
  • oc-dev
  • oc-dev-plus-aosp
  • nyc-mr2-dev-plus-aosp
  • main-daydream-dev
  • main-without-vendor
  • wear-main

Desenvolvimento e teste

O desenvolvimento em contrib precisa ter a mesma barra de qualidade que em qualquer outro repositório do Android:

  • Respeite as diretrizes de formatação do Android
  • O código é testado e enviado com testes
  • O design é inteligente e faz sentido

Como faço para testar localmente no contrib?

AOSP

No AOSP, os testes de unidade de contrib estão localizados em platform/tools/tradefederation/contrib/tests/src/ e os testes de unidade precisam ser adicionados a com.android.tradefed.prodtests.UnitTests para serem coletados nos scripts de pré-envio e de teste local.

Scripts locais do Aosp após a execução do almoço:

tools/tradefederation/core/tests/run_tradefed_aosp_presubmit.sh

Atualização das regras de build para projetos contrib

As regras de build (makefiles) estão na própria pasta build/ e bloqueadas por um arquivo OWNERS que impede que você as modifique sem uma revisão extra da equipe principal. Essa é a única limitação do projeto contrib.

Precisamos dessa revisão para garantir que nenhuma dependência inesperada seja adicionada aos projetos gerais do Tradefed sem o conhecimento ou acordo da equipe principal. Se você realmente precisar que algumas novas dependências sejam adicionadas, entre em contato com android-tradefed@ para analisar seus casos de uso e dar conselhos.