Contribuir com código não principal

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

A origem não principal é definida como um código que não é exigido pelo framework tradefederation para ser funcional (por exemplo, testes personalizados, configurações, utilitários de teste específicos).

IMPORTANTE: src não principal não pode estender classes principais do Trade Federation. Isso afeta a refatoração/limpeza futura. Se você não tiver certeza se seu código pertence ao núcleo ou à contribuição, entre em contato com android-tradefed@ para esclarecimentos. A equipe principal do Trade Federation está à disposição para dar conselhos e receber solicitações de recursos.

Um exemplo de classe principal do Trade Federation 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 atualmente nos projetos do tradefederation escrevendo testes/utilitários/configurações de teste, esses projetos foram criados para você.

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

O objetivo dos projetos de contribuição é permitir que você desenvolva no Tradefed sem precisar da revisão da equipe principal (android-tradefed@). Por isso, esperamos que sua equipe ou qualquer pessoa familiarizada com seu contexto faça as revisões de código nas suas CLs.

Entre em contato com android-tradefed@ sempre que 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 em contrib. A equipe do Tradefed não tem SLO quando se trata de revisões de código em contribuições.

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 encontrar os projetos no seu ambiente, basta fazer 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 tem a mesma qualidade que em qualquer outro lugar nos repositórios do Android:

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

Como faço testes locais na contribuição?

AOSP

No AOSP, os testes de unidade de contrib ficam em platform/tools/tradefederation/contrib/tests/src/ e precisam ser adicionados a com.android.tradefed.prodtests.UnitTests para serem detectados em scripts de pré-envio e testes locais.

Scripts locais do AOSP após a execução do lunch:

tools/tradefederation/core/tests/run_tradefed_aosp_presubmit.sh

Atualização das regras de build para projetos de contribuição

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

Precisamos dessa revisão para garantir que nenhuma dependência inesperada seja adicionada aos projetos gerais do Tradefed sem o conhecimento ou a concordância da equipe principal. Se você realmente precisar adicionar novas dependências, entre em contato com android-tradefed@ para analisar seus casos de uso e dar orientações.