Contribuir com código não essencial

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

src não essencial é definido como código que não é exigido pela estrutura da tradefederation para ser funcional (por exemplo, testes personalizados, configurações, utilitários de teste específicos).

IMPORTANTE O src não essencial não deve estender as classes principais da tradefederation. Fazer isso impacta a refatoração/limpeza futura. Se você não tiver certeza se o seu código pertence ao núcleo ou ao contrib, entre em contato com android-tradefed@ para esclarecimentos. A equipe principal da tradefederation terá prazer 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

Novamente, 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ê atualmente trabalha em projetos da tradefederation escrevendo testes/utilitários de teste/configuração, esses projetos foram criados para você.

Revisões de código em projetos de contribuição

O objetivo dos projetos contrib é permitir que você faça desenvolvimento no Tradefed sem precisar da revisão da equipe principal (android-tradefed@). Portanto, esperamos que sua equipe ou alguém familiarizado com seu contexto realize as revisões de código em seus CLs.

Sinta-se sempre à vontade para entrar em contato com 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 sua revisão de código no contrib. A equipe Tradefed não tem SLO quando se trata de revisões 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 checkout da plataforma principal, portanto, se você não vir os projetos em seu ambiente, estará a uma sincronização do repositório de contribuir.

  • principal
  • negociado
  • oc-dev
  • oc-dev-plus-aosp
  • nyc-mr2-dev-plus-aosp
  • main-daydream-dev
  • principal sem fornecedor
  • desgaste principal

Desenvolvimento e testes

Espera-se que o desenvolvimento no contrib tenha a mesma barra de qualidade de qualquer outro lugar nos repositórios Android:

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

Como faço para testar localmente no contrib?

AOSP

No aosp, os testes unitários de contrib estão localizados em platform/tools/tradefederation/contrib/tests/src/ e os testes unitários devem ser adicionados a com.android.tradefed.prodtests.UnitTests para serem obtidos em scripts de pré-envio e de teste local.

Roteiros locais do Aosp após o almoço:

tools/tradefederation/core/tests/run_tradefed_aosp_presubmit.sh

Atualização de regras de compilação para projetos de contribuição

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

Precisamos desta revisão para garantir que não sejam adicionadas dependências inesperadas aos projectos globais do Tradefed sem o conhecimento ou acordo da equipa principal. Se você realmente precisa adicionar novas dependências, entre em contato com android-tradefed@ para analisar seus casos de uso e aconselhá-lo.