नॉन-कोर कोड में योगदान देना

जिन टीमों ने ट्रेडफ़ेडरेशन प्रोजेक्ट में, ग़ैर-ज़रूरी src को जोड़ा है उन्हें समीक्षा की प्रोसेस का पूरा मालिकाना हक देने के लिए, ये प्रोजेक्ट बनाए गए हैं. इनमें सभी टीमों के लिए, ओपन +2 के अधिकार दिए गए हैं. इससे, मुख्य ट्रेडफ़ेडरेशन टीम को मुख्य फ़्रेमवर्क से जुड़े सभी कोड की समीक्षा करने की ज़िम्मेदारी से राहत मिलती है. साथ ही, अन्य टीमों को समीक्षा के अपने साइकल में तेज़ी से काम करने की अनुमति मिलती है.

ग़ैर-ज़रूरी src का मतलब ऐसे कोड से है जो ट्रेडफ़ेडरेशन फ़्रेमवर्क के काम करने के लिए ज़रूरी नहीं है. जैसे, कस्टम टेस्ट, कॉन्फ़िगरेशन, खास टेस्ट यूटिलिटी.

अहम जानकारी ग़ैर-ज़रूरी src को मुख्य ट्रेडफ़ेडरेशन क्लास तक नहीं बढ़ाया जाना चाहिए. ऐसा करने से, आने वाले समय में रीफ़ैक्टरिंग/क्लीन अप पर असर पड़ता है. अगर आपको पक्का नहीं है कि आपका कोड मुख्य या कॉन्ट्रिब में शामिल है, तो साफ़ तौर पर जानकारी पाने के लिए android-tradefed@ से संपर्क करें. मुख्य ट्रेडफ़ेडरेशन टीम, सलाह देने और सुविधाओं के अनुरोध पाने में खुशी महसूस करती है.

मुख्य ट्रेडफ़ेडरेशन क्लास का उदाहरण, com.google.android.tradefed.build पैकेज में मौजूद कोई भी क्लास हो सकती है. जैसे: com.google.android.tradefed.build.LaunchControlProvider

अगर आपको यह समझ में नहीं आ रहा है कि किस क्लास को मुख्य क्लास माना जाएगा, तो कृपया android-tradefed@ से संपर्क करें.

[TOC]

कॉन्ट्रिब प्रोजेक्ट के पाथ

ये कॉन्ट्रिब प्रोजेक्ट किसके लिए हैं?

अगर फ़िलहाल, आप ट्रेडफ़ेडरेशन प्रोजेक्ट में टेस्ट/टेस्ट यूटिलिटी/कॉन्फ़िगरेशन लिखने का काम करते हैं, तो ये प्रोजेक्ट आपके लिए बनाए गए हैं.

कॉन्ट्रिब प्रोजेक्ट में कोड की समीक्षाएं

कॉन्ट्रिब प्रोजेक्ट का मकसद यह है कि आप Tradefed में डेवलपमेंट कर सकें. इसके लिए, आपको मुख्य टीम (android-tradefed@) से समीक्षा कराने की ज़रूरत नहीं होगी. इसलिए, हम उम्मीद करते हैं कि आपकी टीम या आपके कॉन्टेक्स्ट के बारे में जानने वाला कोई भी व्यक्ति, आपके सीएल पर कोड की समीक्षाएं करेगा.

अगर आपको किसी खास मामले में कोई समस्या आ रही है या आपको मदद की ज़रूरत है, तो बेझिझक android-tradefed@ से संपर्क करें. हालांकि, कॉन्ट्रिब में कोड रिव्यू करने के लिए, डिफ़ॉल्ट रूप से इस पर निर्भर न रहें. कॉन्ट्रिब में कोड की समीक्षाओं के लिए, Tradefed टीम के पास कोई एसएलओ नहीं है.

मैं इन प्रोजेक्ट पर काम करना कहां से शुरू कर सकता/सकती हूं?

इन्हें ब्रांच के इन मेनिफ़ेस्ट में जोड़ा गया है. साथ ही, ये पहले से ही मुख्य प्लैटफ़ॉर्म चेकआउट का हिस्सा हैं. इसलिए, अगर आपको अपने एनवायरमेंट में ये प्रोजेक्ट नहीं दिखते हैं, तो आपको योगदान देने के लिए, सिर्फ़ रेपो सिंक करना होगा.

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

डेवलपमेंट और टेस्टिंग

उम्मीद है कि कॉन्ट्रिब में डेवलपमेंट की क्वालिटी, Android के रिपॉज़िटरी में मौजूद अन्य प्रोजेक्ट के जैसी ही होगी:

  • Android के फ़ॉर्मैटिंग से जुड़े दिशा-निर्देशों का पालन करें
  • कोड की जांच की जाती है और इसे टेस्ट के साथ सबमिट किया जाता है
  • डिज़ाइन सोच-समझकर बनाया गया हो और वह काम का हो

मैं कॉन्ट्रिब में स्थानीय तौर पर टेस्ट कैसे करूं?

AOSP

aosp में, कॉन्ट्रिब के यूनिट टेस्ट, platform/tools/tradefederation/contrib/tests/src/ में मौजूद होते हैं. साथ ही, presubmit और स्थानीय टेस्टिंग स्क्रिप्ट में शामिल करने के लिए, यूनिट टेस्ट को com.android.tradefed.prodtests.UnitTests में जोड़ा जाना चाहिए.

lunch चलाने के बाद, aosp की स्थानीय स्क्रिप्ट:

tools/tradefederation/core/tests/run_tradefed_aosp_presubmit.sh

कॉन्ट्रिब प्रोजेक्ट के लिए, बिल्ड के नियमों का अपडेट

बिल्ड के नियम (मेकफ़ाइल), अपने build/ फ़ोल्डर में मौजूद होते हैं. साथ ही, इन्हें OWNERS फ़ाइल से लॉक किया जाता है. इससे, मुख्य टीम से अतिरिक्त समीक्षा कराए बिना, इनमें बदलाव नहीं किया जा सकेगा. कॉन्ट्रिब प्रोजेक्ट के लिए, यह एकमात्र पाबंदी है.

हमें इस समीक्षा की ज़रूरत इसलिए है, ताकि मुख्य टीम की जानकारी या सहमति के बिना, Tradefed के सभी प्रोजेक्ट में कोई अनचाही डिपेंडेंसी न जोड़ी जाए. अगर आपको सच में कुछ नई डिपेंडेंसी जोड़ने की ज़रूरत है, तो कृपया android-tradefed@ से संपर्क करें. इससे, आपके इस्तेमाल के उदाहरणों की जांच की जा सकेगी और आपको सलाह दी जा सकेगी.