Nicht zum Kern gehörenden Code beitragen

Damit Teams, die Nicht-Core-Quellcode zu den Tradefederation-Projekten beitragen, die volle Verantwortung für den Überprüfungsprozess übernehmen können, wurden die folgenden Projekte mit offenen +2-Rechten für alle Teams erstellt. Dadurch wird das Tradefederation-Kernteam von allen Code-Reviews entlastet, die nicht mit dem Kern-Framework zusammenhängen. Außerdem können die anderen Teams ihren Überprüfungszyklus schneller durchlaufen.

Nicht wesentliche Quellen sind Code, der nicht für die Funktion des Trade Federation-Frameworks erforderlich ist, z.B. benutzerdefinierte Tests, Konfigurationen und bestimmte Testdienstprogramme.

WICHTIG Nicht-Core-Quellen sollten keine Core-Tradefederation-Klassen erweitern. Dies wirkt sich auf zukünftige Refactorings und Bereinigungen aus. Wenn Sie sich nicht sicher sind, ob Ihr Code in „core“ oder „contrib“ gehört, wenden Sie sich bitte an android-tradefed@. Das Kernteam von Trade Federation berät Sie gern und nimmt Funktionsanfragen entgegen.

Ein Beispiel für eine Tradefederation-Kernklasse ist eine beliebige Klasse im Paket com.google.android.tradefed.build, z. B.: com.google.android.tradefed.build.LaunchControlProvider

Wenden Sie sich bitte an android-tradefed@, wenn Sie sich nicht sicher sind, was als Kernklasse gilt.

[TOC]

Pfade von Contrib-Projekten

Für wen sind diese Contrib-Projekte gedacht?

Wenn Sie derzeit in den Tradefederation-Projekten Tests, Test-Dienstprogramme oder Konfigurationen schreiben, wurden diese Projekte für Sie erstellt.

Code-Prüfungen in Contrib-Projekten

Ziel der Contrib-Projekte ist es, Ihnen die Entwicklung in Tradefed zu ermöglichen, ohne dass eine Überprüfung durch das Kernteam (android-tradefed@) erforderlich ist. Wir erwarten daher, dass Ihr Team oder jemand, der mit Ihrem Kontext vertraut ist, die Code-Reviews für Ihre CLs durchführt.

Sie können sich jederzeit an android-tradefed@ wenden, wenn Sie nicht weiterkommen oder Hilfe bei einem bestimmten Fall benötigen. Verlassen Sie sich jedoch nicht standardmäßig darauf, dass dort Ihr Code in contrib überprüft wird. Das Tradefed-Team hat kein SLO für Code-Reviews in contrib.

Wo kann ich mit der Arbeit an diesen Projekten beginnen?

Sie wurden den folgenden Branch-Manifesten hinzugefügt und sind bereits Teil des Hauptplattform-Checkouts. Wenn Sie die Projekte also nicht in Ihrer Umgebung sehen, müssen Sie nur noch einen Repo-Sync durchführen, um mit der Entwicklung zu beginnen.

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

Entwicklung und Tests

Die Entwicklung in „contrib“ sollte denselben Qualitätsstandard wie in anderen Android-Repositories haben:

  • Android-Formatierungsrichtlinien einhalten
  • Code wird getestet und mit Tests eingereicht
  • Das Design ist durchdacht und sinnvoll.

Wie teste ich lokal in contrib?

AOSP

In AOSP befinden sich die Unittests von „contrib“ unter platform/tools/tradefederation/contrib/tests/src/. Unittests sollten com.android.tradefed.prodtests.UnitTests hinzugefügt werden, damit sie in Presubmit- und lokalen Testskripts berücksichtigt werden.

Lokale AOSP-Skripts nach dem Ausführen von „lunch“:

tools/tradefederation/core/tests/run_tradefed_aosp_presubmit.sh

Regeln für Contrib-Projekte aktualisieren

Die Build-Regeln (Makefiles) befinden sich in einem eigenen build/-Ordner und sind durch eine OWNERS-Datei gesperrt. Dadurch können Sie sie nicht ohne zusätzliche Überprüfung durch das Core-Team ändern. Dies ist die einzige Einschränkung für das Contrib-Projekt.

Wir benötigen diese Überprüfung, um sicherzustellen, dass den Tradefed-Gesamtprojekten keine unerwarteten Abhängigkeiten hinzugefügt werden, ohne dass das Kernteam davon weiß oder zustimmt. Wenn Sie wirklich neue Abhängigkeiten hinzufügen müssen, wenden Sie sich bitte an android-tradefed@, damit Ihre Anwendungsfälle geprüft und Sie beraten werden können.