Mengontribusikan kode non-inti

Untuk memungkinkan tim yang berkontribusi pada src non-inti ke project tradefederation memiliki kepemilikan penuh atas proses peninjauan, project berikut telah dibuat dengan hak +2 terbuka untuk semua tim. Hal ini membebaskan tim tradefederation inti dari beban semua peninjauan kode yang tidak terkait dengan framework inti sekaligus memungkinkan tim lain melakukan iterasi lebih cepat dalam siklus peninjauan mereka.

Src non-inti ditentukan sebagai kode yang tidak diperlukan oleh framework tradefederation agar berfungsi (misalnya, pengujian kustom, konfigurasi, utilitas pengujian tertentu).

PENTING Src non-inti tidak boleh memperluas class tradefederation inti. Tindakan ini akan memengaruhi pemfaktoran ulang/pembersihan di masa mendatang. Jika Anda tidak yakin apakah kode Anda termasuk dalam core atau contrib, hubungi android-tradefed@ untuk mendapatkan klarifikasi. Tim inti tradefederation dengan senang hati akan memberikan saran dan menerima permintaan fitur.

Contoh class tradefederation inti adalah class apa pun dalam paket com.google.android.tradefed.build seperti: com.google.android.tradefed.build.LaunchControlProvider

Sekali lagi, hubungi kami jika Anda tidak yakin apa yang akan dianggap sebagai class inti untuk android-tradefed@.

[TOC]

Jalur project kontrib

Untuk siapa project kontribusi ini?

Jika saat ini Anda bekerja di project tradefederation yang menulis pengujian/utilitas/konfigurasi pengujian, project ini dibuat untuk Anda.

Tinjauan kode dalam project contrib

Tujuan project contrib adalah untuk memungkinkan Anda melakukan pengembangan di Tradefed tanpa memerlukan peninjauan tim inti (android-tradefed@). Jadi, kami mengharapkan tim Anda atau siapa pun yang memahami konteks Anda untuk melakukan peninjauan kode pada CL Anda.

Jangan ragu untuk menghubungi android-tradefed@ jika mengalami kesulitan atau memerlukan panduan tentang kasus tertentu, tetapi jangan mengandalkannya secara default untuk melakukan peninjauan kode di contrib. Tim terkalahkan tidak memiliki SLO dalam hal peninjauan kode secara kontribusi.

Di mana saya bisa mulai mengerjakan proyek-proyek ini?

File tersebut telah ditambahkan ke manifes cabang berikut dan sudah menjadi bagian dari checkout platform utama. Jadi, jika Anda tidak melihat project di lingkungan, Anda hanya perlu melakukan sinkronisasi repo untuk berkontribusi.

  • utama
  • tradefed
  • oc-dev
  • oc-dev-plus-aosp
  • nyc-mr2-dev-plus-aosp
  • pengembangan-main-daydream
  • main-without-vendor
  • Wear-main

Pengembangan dan pengujian

Pengembangan di contrib diharapkan memiliki standar kualitas yang sama seperti di tempat lain di repositori Android:

  • Mengikuti panduan pemformatan Android
  • Kode diuji dan dikirim dengan pengujian
  • Desainnya cermat dan masuk akal

Bagaimana cara menguji secara lokal di contrib?

AOSP

Di aosp, pengujian unit kontribusi terletak di platform/tools/tradefederation/contrib/tests/src/ dan pengujian unit harus ditambahkan ke com.android.tradefed.prodtests.UnitTests untuk diambil dalam skrip pengujian lokal dan pra-pengiriman.

Skrip lokal Aosp setelah menjalankan makan siang:

tools/tradefederation/core/tests/run_tradefed_aosp_presubmit.sh

Memperbarui aturan build ke project kontribusi

Aturan build (makefile) berada di folder build/-nya sendiri dan dikunci oleh file OWNERS yang akan mencegah Anda mengubahnya tanpa peninjauan tambahan dari tim inti. Ini adalah satu-satunya batasan untuk project contrib.

Kami memerlukan peninjauan ini untuk memastikan tidak ada dependensi tak terduga yang ditambahkan ke keseluruhan project Tradefed tanpa sepengetahuan atau persetujuan dari tim inti. Jika Anda benar-benar memerlukan beberapa dependensi baru untuk ditambahkan, hubungi android-tradefed@ untuk memeriksa kasus penggunaan Anda dan memberikan saran.